From 501aaf1a2617274692467372a32341997dbdb1ff Mon Sep 17 00:00:00 2001 From: lana-k Date: Wed, 11 Aug 2021 20:51:19 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20build=20from=20@=20lana-k/sqli?= =?UTF-8?q?teviz@4213e9df5ce012142494bad4233287f0e97f6ec1=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/{app.8d40a360.css => app.ffe937ae.css} | 2 +- dist.zip | Bin 3250440 -> 3250495 bytes index.html | 2 +- ...a.worker.js => _worker.289a3d4b.worker.js} | 4 ++-- js/_worker.289a3d4b.worker.js.map | 1 + js/_worker.5e0dd41a.worker.js.map | 1 - js/app.6b687a75.js | 2 ++ js/app.6b687a75.js.map | 1 + js/app.97da6287.js | 2 -- js/app.97da6287.js.map | 1 - service-worker.js | 2 +- service-worker.js.map | 2 +- 12 files changed, 10 insertions(+), 10 deletions(-) rename css/{app.8d40a360.css => app.ffe937ae.css} (97%) rename js/{_worker.5e0dd41a.worker.js => _worker.289a3d4b.worker.js} (96%) create mode 100644 js/_worker.289a3d4b.worker.js.map delete mode 100644 js/_worker.5e0dd41a.worker.js.map create mode 100644 js/app.6b687a75.js create mode 100644 js/app.6b687a75.js.map delete mode 100644 js/app.97da6287.js delete mode 100644 js/app.97da6287.js.map diff --git a/css/app.8d40a360.css b/css/app.ffe937ae.css similarity index 97% rename from css/app.8d40a360.css rename to css/app.ffe937ae.css index 513e4ef..5b1b6fe 100644 --- a/css/app.8d40a360.css +++ b/css/app.ffe937ae.css @@ -1 +1 @@ -@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Regular.8abbb9d9.woff2);font-weight:400;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-SemiBold.2595cae6.woff2);font-weight:600;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Bold.21b37d1a.woff2);font-weight:700;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Italic.ee451d9a.woff2);font-weight:400;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-SemiBoldItalic.40ca9121.woff2);font-weight:600;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-BoldItalic.95149f80.woff2);font-weight:700;font-style:italic}#app,.plotly_editor *,button,input,label{font-family:Open Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}.CodeMirror-hints{z-index:999!important}.splitpanes{display:flex;height:100%;position:relative}.splitpanes-vertical{flex-direction:row}.splitpanes-horizontal{flex-direction:column}.splitpanes-dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes-pane{width:100%;height:100%;overflow:auto}.splitpanes-vertical.splitpanes-dragging,.splitpanes-vertical>.splitpanes-splitter{cursor:col-resize}.splitpanes-horizontal.splitpanes-dragging,.splitpanes-horizontal>.splitpanes-splitter{cursor:row-resize}.splitpanes-splitter{touch-action:none;background-color:var(--color-bg-light);box-sizing:border-box;position:relative;flex-shrink:0;z-index:1}.splitpanes-horizontal>.splitpanes-splitter{border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.splitpanes-vertical>.splitpanes-splitter{border-left:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light)}.movable-splitter{position:absolute;background-color:rgba(162,177,198,.5)}.splitpanes-vertical>.movable-splitter,.splitpanes-vertical>.splitpanes-splitter{width:8px;z-index:5;height:100%}.splitpanes-horizontal>.movable-splitter,.splitpanes-horizontal>.splitpanes-splitter{height:8px;width:100%;z-index:5}.toggle-btns{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex}.splitpanes-vertical>.splitpanes-splitter .toggle-btns{flex-direction:column}.splitpanes-horizontal>.splitpanes-splitter .toggle-btns{flex-direction:row}.toggle-btn{background-color:var(--color-border-light);border-radius:var(--border-radius-small);border:1px solid var(--color-border);box-sizing:border-box;position:relative;cursor:pointer}.splitpanes-vertical>.splitpanes-splitter .toggle-btn{height:49px;width:8px}.splitpanes-horizontal>.splitpanes-splitter .toggle-btn{width:49px;height:8px}.toggle-btn .direction-icon{position:absolute;top:50%;left:50%}.splitpanes-horizontal>.splitpanes-splitter .toggle-btns.both .toggle-btn:first-child{border-radius:var(--border-radius-small) 0 0 var(--border-radius-small)}.splitpanes-horizontal>.splitpanes-splitter .toggle-btns.both .toggle-btn:last-child{border-radius:0 var(--border-radius-small) var(--border-radius-small) 0;margin-left:-1px}.splitpanes-vertical>.splitpanes-splitter .toggle-btns.both .toggle-btn:first-child{border-radius:var(--border-radius-small) var(--border-radius-small) 0 0}.splitpanes-vertical>.splitpanes-splitter .toggle-btns.both .toggle-btn:last-child{border-radius:0 0 var(--border-radius-small) var(--border-radius-small);margin-top:-1px}.chevron-icon[data-v-bfc135e8]{transition:transform .15s ease-in-out}.column[data-v-060be7fb],.table-name[data-v-060be7fb]{margin-top:11px}.table-name[data-v-060be7fb]:hover{cursor:pointer}.columns[data-v-060be7fb]{margin-left:24px}.column-type[data-v-060be7fb]{display:inline-block;background-color:var(--color-gray-light-4);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:2px 6px;font-size:11px;text-transform:uppercase}.hint-icon[data-v-30581f31]{display:block;cursor:pointer}.hint-icon:hover path[data-v-30581f31]{fill:var(--color-text-base)}.icon-tooltip[data-v-30581f31]{display:block;white-space:normal;height:auto;line-height:normal;padding:6px;box-sizing:border-box}input[data-v-59fd41a8]{background:var(--color-white);border:1px solid var(--color-border);color:var(--color-text-base);border-radius:var(--border-radius-medium-2);height:36px;padding:0 8px;font-size:13px;box-sizing:border-box;display:block}input[data-v-59fd41a8]::-moz-placeholder{color:var(--color-text-light-2)}input[data-v-59fd41a8]:-ms-input-placeholder{color:var(--color-text-light-2)}input[data-v-59fd41a8]::placeholder{color:var(--color-text-light-2)}input[data-v-59fd41a8]:focus{outline:none}input[data-v-59fd41a8]:disabled{background:var(--color-bg-light);color:var(--color-text-light-2);cursor:default}input.error[data-v-59fd41a8]{border-color:var(--color-text-error)}.text-field-label[data-v-59fd41a8]{font-size:12px;color:var(--color-text-base);padding-left:8px;margin-bottom:2px;display:inline-block;position:relative}.text-field-label .hint[data-v-59fd41a8]{position:absolute;top:-2px;right:-22px}.text-field-label.error[data-v-59fd41a8]{color:var(--color-text-error)}.text-field-label.disabled[data-v-59fd41a8]{color:var(--color-text-light-2)}.text-field-error[data-v-59fd41a8]{color:var(--color-text-error);font-size:12px;padding-left:8px;margin-top:2px;position:absolute}.text-field-error[data-v-59fd41a8]:first-letter{text-transform:uppercase}.db-edit-icon[data-v-2c7f445c]{display:block;cursor:pointer}.db-edit-icon:hover path[data-v-2c7f445c]{fill:var(--color-accent)}.icon[data-v-86f3a16c]{cursor:pointer}.disabled[data-v-86f3a16c]{pointer-events:none}.icon:hover path[data-v-86f3a16c]{fill:var(--color-text-base)}.chevron-icon[data-v-29bdb7bf]{cursor:pointer}.chevron-icon:hover path[data-v-29bdb7bf]{fill:var(--color-accent)}.disabled.chevron-icon[data-v-29bdb7bf]{cursor:default}.disabled.chevron-icon:hover path[data-v-29bdb7bf]{fill:#c8d4e3}.clear-icon[data-v-69060e4e]{cursor:pointer}.clear-icon:hover path[data-v-69060e4e]{fill:var(--color-danger)}.disabled.clear-icon[data-v-69060e4e]{cursor:default}.disabled.clear-icon:hover path[data-v-69060e4e]{fill:#c8d4e3}.delimiter-selector-container[data-v-44b0b048]{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius-medium-2);height:36px;padding:0 8px;font-size:12px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.value[data-v-44b0b048]{display:flex;align-items:center}.value .name[data-v-44b0b048]{color:var(--color-text-light-2);cursor:default;margin-left:4px}.controls[data-v-44b0b048]{display:flex;align-items:center}.options[data-v-44b0b048]{background:var(--color-white);border:1px solid var(--color-border);border-width:0 1px 1px 1px;color:var(--color-text-base);border-radius:var(--border-radius-medium-2);font-size:12px;box-sizing:border-box;position:absolute;z-index:2}.option[data-v-44b0b048]{display:flex;align-items:center;height:24px;padding:0 6px}.option[data-v-44b0b048]:hover{background-color:var(--color-bg-light);color:var(--color-text-active);cursor:pointer}.option pre[data-v-44b0b048]{background-color:var(--color-bg-warning);line-height:20px;margin-right:6px;-moz-tab-size:1;-o-tab-size:1;tab-size:1;font-family:monospace;width:16px;text-align:center}input[data-v-44b0b048]{background:var(--color-white);border:none;color:var(--color-text-base);height:20px;font-family:monospace;font-size:12px;box-sizing:border-box;width:16px;text-align:center}input.filled[data-v-44b0b048]{background:var(--color-bg-warning)}input[data-v-44b0b048]:focus{outline:none}input[data-v-44b0b048]:disabled{background:var(--color-bg-light);color:var(--color-text-light-2);cursor:default}.text-field-label[data-v-44b0b048]{font-size:12px;color:var(--color-text-base);padding-left:8px;margin-bottom:2px}.disabled .text-field-label[data-v-44b0b048]{color:var(--color-text-light-2)}.disabled .delimiter-selector-container[data-v-44b0b048]{background:var(--color-bg-light)}.checkbox-container[data-v-0dd86013]{display:inline-flex;cursor:pointer}.unchecked[data-v-0dd86013]{width:18px;height:18px;background-color:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-medium);box-sizing:border-box}.unchecked[data-v-0dd86013]:hover{background-color:var(--color-bg-light)}img[data-v-0dd86013]{display:block}.label[data-v-0dd86013]{margin-left:6px;color:var(--color-text-base)}.checked .label[data-v-0dd86013]{color:var(--color-text-active)}.disabled.checkbox-container[data-v-0dd86013]{cursor:default}.disabled .label[data-v-0dd86013]{color:var(--color-text-light-2)}.disabled .unchecked[data-v-0dd86013],.disabled .unchecked[data-v-0dd86013]:hover{background-color:var(--color-bg-light-2)}.paginator-continer[data-v-658886c7]{display:flex;align-items:center;line-height:10px}[data-v-658886c7] .paginator-page-link{padding:2px 3px;margin:0 5px;display:block;color:var(--color-text-base);font-size:11px}[data-v-658886c7] .paginator-page-link:hover{color:var(--color-text-active)}[data-v-658886c7] .paginator-next:active,[data-v-658886c7] .paginator-next:focus,[data-v-658886c7] .paginator-next:visited,[data-v-658886c7] .paginator-page-link:active,[data-v-658886c7] .paginator-page-link:focus,[data-v-658886c7] .paginator-page-link:visited,[data-v-658886c7] .paginator-prev:active,[data-v-658886c7] .paginator-prev:focus,[data-v-658886c7] .paginator-prev:visited{outline:none}[data-v-658886c7] .paginator-active-page,[data-v-658886c7] .paginator-active-page:hover{color:var(--color-accent)}[data-v-658886c7] .paginator-break:hover,[data-v-658886c7] .paginator-disabled:hover{cursor:default}[data-v-658886c7] .paginator-prev svg{transform:rotate(180deg)}[data-v-658886c7] .paginator-next:hover path,[data-v-658886c7] .paginator-prev:hover path{fill:var(--color-text-active)}[data-v-658886c7] .paginator-disabled:hover path,[data-v-658886c7] .paginator-disabled path{fill:var(--color-text-light-2)}.loader-svg[data-v-62096452]{position:absolute;left:0;right:0;top:0;bottom:0;fill:none;stroke-linecap:round;stroke:var(--color-accent)}.loader-svg.bg[data-v-62096452]{stroke:var(--color-gray-light-3)}.loading .loader-svg.front[data-v-62096452]{will-change:transform;-webkit-animation:fill-animation-loading-data-v-62096452 1s cubic-bezier(1,1,1,1) 0s infinite;animation:fill-animation-loading-data-v-62096452 1s cubic-bezier(1,1,1,1) 0s infinite;transform-origin:center}@-webkit-keyframes fill-animation-loading-data-v-62096452{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fill-animation-loading-data-v-62096452{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.progress .loader-svg.front[data-v-62096452]{transition:stroke-dasharray .2s}.progress .loader-svg.bg[data-v-62096452]{-webkit-animation:bg-animation-data-v-62096452 1.5s cubic-bezier(1,1,1,1) 0s infinite;animation:bg-animation-data-v-62096452 1.5s cubic-bezier(1,1,1,1) 0s infinite}@-webkit-keyframes bg-animation-data-v-62096452{0%{r:8}50%{stroke:var(--color-gray-light-2);r:9}to{r:8}}@keyframes bg-animation-data-v-62096452{0%{r:8}50%{stroke:var(--color-gray-light-2);r:9}to{r:8}}.logs-container[data-v-1c9f27dc]{background-color:var(--color-white);padding:0 5px;border-radius:5px;border:1px solid var(--color-border-light);box-sizing:border-box;overflow-y:auto;color:var(--color-text-base)}.msg[data-v-1c9f27dc]{padding:12px 7px;border-bottom:1px solid var(--color-border-light);display:flex;align-items:flex-start;font-family:monospace;font-size:13px}.msg[data-v-1c9f27dc]:last-child{border-bottom:none}.msg-text[data-v-1c9f27dc]{margin-left:6px;margin-top:2px}.dialog-body[data-v-68ef9d6c]{padding-bottom:0}.chars[data-v-68ef9d6c]{display:flex;align-items:flex-end;margin:24px 0 20px}.char-input[data-v-68ef9d6c]{margin-right:44px}.preview-table[data-v-68ef9d6c]{margin-top:18px}.import-csv-errors[data-v-68ef9d6c]{height:136px;margin-top:8px}.no-data[data-v-68ef9d6c]{margin-top:32px;background-color:#fff;border-radius:5px;position:relative;border:1px solid var(--color-border-light);box-sizing:border-box;height:147px;font-size:13px;color:var(--color-text-base);display:flex;justify-content:center;align-items:center}[data-v-68ef9d6c] .vm--modal{max-width:1152px;margin:auto;left:0!important}.db-uploader-container[data-v-eefa30c0]{position:relative}.drop-area-container[data-v-eefa30c0]{display:inline-block;border:1px dashed var(--color-border);padding:8px;border-radius:var(--border-radius-big);height:100%;width:100%;box-sizing:border-box}.drop-area[data-v-eefa30c0]{background-color:var(--color-bg-light-3);border-radius:var(--border-radius-big);color:var(--color-text-base);font-size:13px;text-align:center;box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}#img-container[data-v-eefa30c0]{position:absolute;top:54px;left:50%;transform:translate(-50%);width:450px;height:338px;pointer-events:none}#drop-file-top-img[data-v-eefa30c0]{width:450px;height:175px;position:absolute;top:0;left:0}#drop-file-bottom-img[data-v-eefa30c0]{width:450px;height:167px;position:absolute;bottom:0;left:0}#body-img[data-v-eefa30c0]{width:74px;position:absolute;top:94.05px;left:46px}#right-arm-img[data-v-eefa30c0]{width:106px;position:absolute;top:110.05px;left:78px}#left-arm-img[data-v-eefa30c0]{width:114px;position:absolute;top:69.05px;left:69px}#file-img[data-v-eefa30c0]{width:125px;position:absolute;top:15.66px;left:152px}.swing[data-v-eefa30c0]{-webkit-animation:swing-data-v-eefa30c0 .6s ease-in-out infinite alternate;animation:swing-data-v-eefa30c0 .6s ease-in-out infinite alternate}#left-arm-img.swing[data-v-eefa30c0]{transform-origin:9px 83px}#right-arm-img.swing[data-v-eefa30c0]{transform-origin:0 56px}#file-img.swing[data-v-eefa30c0]{transform-origin:-74px 139px}@-webkit-keyframes swing-data-v-eefa30c0{0%{transform:rotate(0deg)}to{transform:rotate(-7deg)}}@keyframes swing-data-v-eefa30c0{0%{transform:rotate(0deg)}to{transform:rotate(-7deg)}}#file-img.fly[data-v-eefa30c0]{-webkit-animation:fly-data-v-eefa30c0 1s ease-in-out 1 normal;animation:fly-data-v-eefa30c0 1s ease-in-out 1 normal;transform-origin:center center}@-webkit-keyframes fly-data-v-eefa30c0{to{transform:rotate(1turn) scale(.5);top:183px;left:225px}}@keyframes fly-data-v-eefa30c0{to{transform:rotate(1turn) scale(.5);top:183px;left:225px}}#file-img.hidden[data-v-eefa30c0]{display:none}.icon[data-v-15bea4a0]{display:block;margin:0 12px;cursor:pointer}.icon:hover path[data-v-15bea4a0]{fill:var(--color-accent)}.icon[data-v-0b825a18]{display:block;margin:0;cursor:pointer}.icon:hover path[data-v-0b825a18]{fill:var(--color-accent)}#schema-container[data-v-3fcc3d82]{position:relative;padding-bottom:24px}.schema[data-v-3fcc3d82]{margin-left:12px;padding:0 12px}#schema-filter[data-v-3fcc3d82]{padding:32px 12px;position:sticky;position:-webkit-sticky;top:0;width:100%;height:100px;box-sizing:border-box;background-image:linear-gradient(#fff 73%,hsla(0,0%,100%,0));z-index:2}.db-name[data-v-3fcc3d82],.schema[data-v-3fcc3d82]{color:var(--color-text-base);font-size:13px;white-space:nowrap}#db[data-v-3fcc3d82]{display:flex;align-items:center;margin-top:-5px;padding:0 12px}.db-name[data-v-3fcc3d82]{cursor:pointer;margin-right:6px;max-width:150px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.db-name:hover .chevron-icon path[data-v-3fcc3d82],[data-v-3fcc3d82] .table-name:hover .chevron-icon path{fill:var(--color-gray-dark)}.icon-btn[data-v-0c2b486e]{box-sizing:border-box;width:26px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.icon-btn[data-v-0c2b486e]:hover{border:1px solid var(--color-border);border-radius:var(--border-radius-medium-2)}.icon-btn.active .icon[data-v-0c2b486e] circle,.icon-btn.active .icon[data-v-0c2b486e] path,.icon-btn:hover .icon[data-v-0c2b486e] circle,.icon-btn:hover .icon[data-v-0c2b486e] path{fill:var(--color-accent)}.disabled.icon-btn .icon[data-v-0c2b486e] circle,.disabled.icon-btn .icon[data-v-0c2b486e] path{fill:var(--color-border)}.disabled.icon-btn[data-v-0c2b486e]{cursor:default;pointer-events:none}.disabled.icon-btn:hover .icon[data-v-0c2b486e] path{fill:var(--color-border)}.icon-in-progress[data-v-0c2b486e]{position:absolute;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-light);will-change:opacity;-webkit-animation:show-loader-data-v-0c2b486e 1s linear 0s 1;animation:show-loader-data-v-0c2b486e 1s linear 0s 1}@-webkit-keyframes show-loader-data-v-0c2b486e{0%{opacity:0}99%{opacity:0}to{opacity:1}}@keyframes show-loader-data-v-0c2b486e{0%{opacity:0}99%{opacity:0}to{opacity:1}}.icon[data-v-0c2b486e]{display:flex;align-items:center;justify-content:center}.side-tool-bar[data-v-3b6366bb]{background-color:var(--color-bg-light);border-left:1px solid var(--color-border-light);padding:6px}.side-tool-bar-divider[data-v-3b6366bb]{width:26px;height:1px;background:var(--color-border-light);margin:6px 0}.sql-editor-panel[data-v-c84dd870]{display:flex;flex-grow:1;height:100%;max-height:100%;box-sizing:border-box;overflow:hidden}.codemirror-container[data-v-c84dd870]{flex-grow:1;overflow:auto}[data-v-c84dd870] .CodeMirror,[data-v-c84dd870] .vue-codemirror{height:100%;max-height:100%}[data-v-c84dd870] .CodeMirror-cursor{width:1px;background:var(--color-text-base)}.chart-container[data-v-31be4117]{height:100%}.chart-warning[data-v-31be4117]{height:40px;line-height:40px;border-bottom:1px solid var(--color-border);box-sizing:border-box}.chart[data-v-31be4117]{min-height:242px}[data-v-31be4117] .editor_controls .sidebar__item:before{width:0}svg.asc[data-v-28a29e7a]{transform:rotate(180deg)}svg.horizontal[data-v-28a29e7a]{transform:rotate(-90deg)}svg.horizontal.asc[data-v-28a29e7a]{transform:rotate(90deg)}.pivot-sort-btn[data-v-e3801f08]{display:flex;justify-content:center;align-items:center;width:43px;height:27px;background-color:var(--color-bg-light-4);border-radius:var(--border-radius-medium-2);border:1px solid var(--color-border);cursor:pointer;font-size:11px;color:var(--color-text-base);line-height:8px;box-sizing:border-box}.pivot-sort-btn[data-v-e3801f08]:hover{color:var(--color-text-active);border-color:var(--color-border-dark)}.pivot-sort-btn[data-v-e3801f08]:hover .sort-icon path{fill:var(--color-text-active)}.pivot-sort-btn.col[data-v-e3801f08]{flex-direction:column;padding-top:5px}.pivot-sort-btn.row[data-v-e3801f08]{flex-direction:row}.pivot-sort-btn.row .sort-icon[data-v-e3801f08]{margin-left:2px}.pivot-ui[data-v-6d818ae0]{padding:12px 24px;color:var(--color-text-base);font-size:12px;border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-light)}.pivot-ui .row[data-v-6d818ae0]{display:flex;align-items:center;margin:12px 0}.pivot-ui .row label[data-v-6d818ae0]{width:76px;flex-shrink:0}.pivot-ui .row .sqliteviz-select.short[data-v-6d818ae0]{width:220px;flex-shrink:0}.pivot-ui .row .aggr-arg[data-v-6d818ae0]{margin-left:12px;max-width:220px}.pivot-ui .row .sort-btn[data-v-6d818ae0]{margin-left:12px;flex-shrink:0}.collapsed[data-v-6d818ae0]{display:none}.switcher[data-v-6d818ae0]{display:block;width:-webkit-min-content;width:-moz-min-content;width:min-content;white-space:nowrap;margin:auto;cursor:pointer}.switcher[data-v-6d818ae0]:hover{color:var(--color-accent)}.pivot-container[data-v-ca17e020]{height:100%;display:flex;flex-direction:column;background-color:var(--color-white)}.pivot-output[data-v-ca17e020]{flex-grow:1;width:100%;overflow:auto}.pivot-warning[data-v-ca17e020]{height:40px;line-height:40px;box-sizing:border-box}[data-v-ca17e020] .pvtTable{min-width:100%}[data-v-ca17e020] table.pvtTable tbody tr td,[data-v-ca17e020] table.pvtTable tbody tr th,[data-v-ca17e020] table.pvtTable thead tr th{border-color:var(--color-border-light)}[data-v-ca17e020] table.pvtTable tbody tr th,[data-v-ca17e020] table.pvtTable thead tr th{background-color:var(--color-bg-dark);color:var(--color-text-light)}[data-v-ca17e020] table.pvtTable tbody tr td{color:var(--color-text-base)}.pivot-output[data-v-ca17e020] textarea{color:var(--color-text-base);min-width:100%;height:100%!important;display:block;box-sizing:border-box;border-width:0}.pivot-output[data-v-ca17e020] textarea:focus-visible{outline:none}.data-view-panel[data-v-513fdbc5]{display:flex;width:100%;height:100%;overflow:hidden}.data-view-panel-content[data-v-513fdbc5]{position:relative;flex-grow:1;width:calc(100% - 39px);height:100%;overflow:auto}.run-result-panel[data-v-73e5054b]{display:flex;height:100%;overflow:hidden}.run-result-panel-content[data-v-73e5054b]{position:relative;flex-grow:1;height:100%;width:0;box-sizing:border-box}.table-preview[data-v-73e5054b]{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-base);font-size:13px}.result-in-progress[data-v-73e5054b]{display:flex;flex-direction:column;justify-content:center;align-items:center;will-change:opacity;-webkit-animation:show-loader-data-v-73e5054b 1s linear 0s 1;animation:show-loader-data-v-73e5054b 1s linear 0s 1}@-webkit-keyframes show-loader-data-v-73e5054b{0%{opacity:0}99%{opacity:0}to{opacity:1}}@keyframes show-loader-data-v-73e5054b{0%{opacity:0}99%{opacity:0}to{opacity:1}}.above[data-v-24244834]{height:100%;max-height:100%}.hidden-part[data-v-24244834]{display:none}.tab-content-container[data-v-24244834]{background-color:var(--color-white);border-top:1px solid var(--color-border-light);margin-top:-1px}.bottomPane[data-v-24244834]{height:100%;background-color:var(--color-bg-light)}.query-results-splitter[data-v-24244834]{height:calc(100vh - 104px);background-color:var(--color-bg-light)}#tabs{position:relative;height:100%;background-color:var(--color-bg-light)}#tabs-header{display:flex;margin:0;max-width:100%;overflow:hidden}#tabs-header .tab{height:36px;background-color:var(--color-bg-light);border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);line-height:36px;font-size:14px;color:var(--color-text-base);padding:0 12px;box-sizing:border-box;position:relative;max-width:200px;display:flex;flex-shrink:1;min-width:0}#tabs-header .tab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}#tabs-header .tab:hover{cursor:pointer}#tabs-header .tab-selected{color:var(--color-text-active);border-bottom:none;background-color:var(--color-white);position:relative}#tabs-header .tab-selected:after{content:"";width:100%;height:4px;background-color:var(--color-accent);position:absolute;left:0;bottom:0}#tabs-header .tab.tab-selected:hover{cursor:default}.close-icon{margin-left:5px}#start-guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-base);font-size:14px;text-align:center}.link{color:var(--color-accent);text-decoration:none;cursor:pointer;white-space:nowrap}.schema-tabs-splitter[data-v-de063d86]{height:100%;background-color:var(--color-white)}.icon[data-v-075cb800]{display:block;margin:0 12px}.icon:hover path[data-v-075cb800]{fill:var(--color-accent)}.icon[data-v-3a61cb73]{display:block;margin:0 12px}.icon:hover path[data-v-3a61cb73]{fill:var(--color-accent)}.icon[data-v-581e8819]{display:block;margin:0 12px}.icon:hover path[data-v-581e8819]{fill:var(--color-accent)}#start-guide[data-v-2b039cec]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-base);font-size:14px;text-align:center}#my-inquiries-content[data-v-2b039cec]{padding:52px;height:100%;box-sizing:border-box}#my-inquiries-toolbar[data-v-2b039cec]{display:flex;justify-content:space-between;margin-bottom:18px;margin:0 auto 8px;max-width:1500px;width:100%}.rounded-bg[data-v-2b039cec]{padding-top:40px;margin:0 auto;max-width:1500px;width:100%}.fixed-header[data-v-2b039cec]{padding:11px 24px}.fixed-header[data-v-2b039cec]:first-child{display:flex;align-items:center;padding-left:12px}.fixed-header:first-child .name-th[data-v-2b039cec]{margin-left:24px}table.sqliteviz-table[data-v-2b039cec]{margin-top:0}.sqliteviz-table tbody tr td[data-v-2b039cec]{min-width:0;height:40px}.sqliteviz-table tbody tr td[data-v-2b039cec]:first-child{width:70%;max-width:0;padding:0 12px}.sqliteviz-table tbody tr td[data-v-2b039cec]:last-child{width:30%;max-width:0;padding:0 24px}.sqliteviz-table tbody .cell-data[data-v-2b039cec]{display:flex;align-items:center;max-width:100%;width:100%}.sqliteviz-table tbody .cell-data div.name[data-v-2b039cec]{overflow:hidden;text-overflow:ellipsis;margin-left:24px}.sqliteviz-table tbody tr:hover td[data-v-2b039cec]{cursor:pointer;color:var(--color-text-active)}.sqliteviz-table .second-column[data-v-2b039cec]{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:100%}.icons-container[data-v-2b039cec]{display:none;margin-right:-12px}.date-container[data-v-2b039cec]{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sqliteviz-table tbody tr:hover .icons-container[data-v-2b039cec]{display:flex}.dialog input[data-v-2b039cec]{width:100%}button.toolbar[data-v-2b039cec]{margin-right:16px}.badge[data-v-2b039cec]{display:none;background-color:var(--color-gray-light-4);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:2px 6px;font-size:11px;line-height:normal;margin-left:12px}.sqliteviz-table tbody tr:hover .badge[data-v-2b039cec]{display:block}#note[data-v-2b039cec]{margin-top:24px}#note img[data-v-2b039cec]{vertical-align:middle}.icon-tooltip[data-v-2b039cec]{display:block;width:149px;white-space:normal;height:auto;line-height:normal;padding:6px}#dbloader-container[data-v-0da5ae79]{width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}#note[data-v-0da5ae79]{margin-top:27px;font-size:13px;color:var(--color-text-base)}#skip[data-v-0da5ae79]{margin-top:42px}[data-v-0da5ae79] .drop-area{width:706px;height:482px;padding:0 150px;position:relative}[data-v-0da5ae79] .drop-area .text{position:absolute;bottom:42px;max-width:300px}#app-info-icon[data-v-a80fbe8a]{cursor:pointer}#app-info-container[data-v-a80fbe8a]{display:flex;justify-content:center;margin-left:32px}.divider[data-v-a80fbe8a]{height:1px;background-color:var(--color-border);margin:4px 0}.options[data-v-a80fbe8a]{font-family:monospace;font-size:13px;margin-left:8px;overflow:auto;max-height:170px}.info-item[data-v-a80fbe8a]{margin-bottom:32px;font-size:14px}.info-item[data-v-a80fbe8a]:last-child{margin-bottom:0}nav[data-v-707ebea6]{height:68px;display:flex;justify-content:space-between;align-items:center;background-color:var(--color-bg-light);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-1);box-sizing:border-box;position:fixed;top:0;left:0;width:100vw;padding:0 16px 0 52px;z-index:999}a[data-v-707ebea6]{font-size:18px;color:var(--color-text-base);text-transform:none;text-decoration:none;margin-right:28px}a.router-link-active[data-v-707ebea6]{color:var(--color-accent)}button[data-v-707ebea6]{margin-left:16px}#save-note[data-v-707ebea6]{margin-bottom:24px;display:flex;align-items:flex-start}#save-note img[data-v-707ebea6]{margin:-3px 6px 0 0}#nav-buttons[data-v-707ebea6]{display:flex}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent;border-radius:5px}::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:10px}#main-view[data-v-25aa04f9]{margin-top:68px;height:calc(100vh - 68px);overflow-y:auto}:root{--color-white:#fff;--color-gray-light:#f3f6fa;--color-gray-light-2:#dfe8f3;--color-gray-light-3:#c8d4e3;--color-gray-light-4:#ebf0f8;--color-gray-light-5:#f8f8f9;--color-gray-medium:#a2b1c6;--color-gray-dark:#506784;--color-blue-medium:#119dff;--color-blue-dark:#0d76bf;--color-blue-dark-2:#2a3f5f;--color-red:#ef553b;--color-red-2:#de350b;--color-red-light:#ffbdad;--color-yellow:#fbefcb;--color-bg-light:var(--color-gray-light);--color-bg-light-2:var(--color-gray-light-2);--color-bg-light-3:var(--color-gray-light-5);--color-bg-light-4:var(--color-gray-light-4);--color-bg-dark:var(--color-gray-dark);--color-bg-warning:var(--color-yellow);--color-bg-danger:var(--color-red-light);--color-danger:var(--color-red-2);--color-accent:var(--color-blue-medium);--color-accent-shade:var(--color-blue-dark);--color-border-light:var(--color-gray-light-2);--color-border:var(--color-gray-light-3);--color-border-dark:var(--color-gray-medium);--color-text-light:var(--color-white);--color-text-light-2:var(--color-gray-medium);--color-text-base:var(--color-gray-dark);--color-text-active:var(--color-blue-dark-2);--color-text-error:var(--color-red);--shadow:0 1px 2px rgba(42,63,95,0.7);--shadow-1:0 2px 9px rgba(80,103,132,0.2);--border-radius-big:5px;--border-radius-medium:3px;--border-radius-medium-2:4px;--border-radius-small:2px}.plotly-editor--theme-provider{--sidebar-width:112px}button{box-sizing:border-box;height:36px;padding:0 12px;font-size:14px;font-weight:600;cursor:pointer}button:focus{outline:none}button.primary{background:var(--color-accent);border:1px solid var(--color-accent-shade);border-radius:var(--border-radius-big);min-width:83px}button.primary,button.primary:hover{color:var(--color-text-light);text-shadow:var(--shadow)}button.primary:hover{background:var(--color-accent-shade);border:1px solid var(--color-accent-shade)}button.secondary{background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-big);min-width:83px;color:var(--color-text-base)}button.secondary:hover{border:1px solid var(--color-text-light-2);color:var(--color-text-active)}button.toolbar{background:transparent;border:none;color:var(--color-text-base);padding:0}button.toolbar:hover{color:var(--color-accent)}button.primary:disabled,button.secondary:disabled{background:var(--color-bg-light-2);border:1px solid var(--color-border);color:var(--color-text-light-2);text-shadow:none;cursor:default}.rounded-bg{padding:35px 5px 5px;background-color:#fff;border-radius:5px;position:relative;border:1px solid var(--color-border-light);box-sizing:border-box}.straight .rounded-bg{border-radius:0;border-width:0 0 1px 0}.header-container{overflow:hidden;position:absolute;top:-1px;left:-1px;width:calc(100% + 2px);padding-left:7px;box-sizing:border-box;background-color:var(--color-bg-dark);border-radius:5px 5px 0 0}.straight .header-container{border-radius:0}.straight{height:100%}.straight .rounded-bg{height:calc(100% - 27px)}@supports (-moz-appearance:none){.header-container{top:0;padding-left:6px}}.header-container>div{display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding-right:30px}.table-container{width:100%;max-height:100%;overflow:auto}table.sqliteviz-table{min-width:100%;margin-top:-35px;border-collapse:collapse}.fixed-header,.sqliteviz-table thead th{font-size:14px;font-weight:600;background-color:var(--color-bg-dark);color:var(--color-text-light);overflow:hidden;text-overflow:ellipsis}.fixed-header,.sqliteviz-table tbody td,.sqliteviz-table thead th{box-sizing:border-box;border-right:1px solid var(--color-border-light)}.sqliteviz-table tbody td{font-size:13px;background-color:#fff;color:var(--color-text-base);border-bottom:1px solid var(--color-border-light)}.fixed-header,.sqliteviz-table td,.sqliteviz-table th{padding:8px 24px;white-space:nowrap}.header-container div .fixed-header:last-child,.sqliteviz-table tbody tr td:last-child,.sqliteviz-table thead tr th:last-child{border-right:none}.sqliteviz-table td>div.cell-data{width:-webkit-max-content;width:-moz-max-content;width:max-content;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-footer{display:flex;justify-content:space-between;padding:6px 12px}.table-footer-count{font-size:11px;color:var(--color-text-base)}.dialog{border-radius:var(--border-radius-big);box-shadow:0 2px 9px rgba(80,103,132,.8)}.dialog-header{height:46px;line-height:46px;padding:0 22px 0 12px;color:var(--color-text-base);font-size:16px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.dialog-body{min-height:60px;border-top:1px solid var(--color-border-light);color:var(--color-text-base);font-size:13px}.dialog-body,.dialog-buttons-container{background-color:var(--color-bg-light);padding:24px}.dialog-buttons-container{display:flex;justify-content:flex-end}.dialog-buttons-container button{margin-left:16px}.vm--overlay{background-color:rgba(162,177,198,.5)}.icon-tooltip{background-color:rgba(80,103,132,.85);color:#fff;text-align:center;font-size:12px;padding:0 6px;line-height:19px;position:fixed;height:19px;border-radius:var(--border-radius-medium);white-space:nowrap;z-index:999}.warning{background-color:var(--color-bg-warning);color:var(--color-text-base);font-size:13px;padding:0 24px}.sqliteviz-select,.sqliteviz-select .multiselect__tags{min-height:36px;color:var(--color-text-base)}.sqliteviz-select .multiselect__select{height:34px;min-height:34px;padding:6px;width:32px;height:32px;margin-top:1px}.sqliteviz-select .multiselect__tags{border-radius:var(--border-radius-medium-2);border:1px solid var(--color-border);padding:4px 32px 0 6px}.sqliteviz-select,.sqliteviz-select .multiselect__input,.sqliteviz-select .multiselect__placeholder,.sqliteviz-select .multiselect__single{font-size:12px}.sqliteviz-select .multiselect__input,.sqliteviz-select .multiselect__placeholder,.sqliteviz-select .multiselect__single{padding:0;margin-bottom:0;line-height:28px}.sqliteviz-select .multiselect__input{width:0!important;color:var(--color-text-base)}.sqliteviz-select.multiselect--active .multiselect__input{width:auto!important}.sqliteviz-select .multiselect__input::-moz-placeholder{color:var(--color-text-light-2)}.sqliteviz-select .multiselect__input:-ms-input-placeholder{color:var(--color-text-light-2)}.sqliteviz-select .multiselect__input::placeholder,.sqliteviz-select .multiselect__placeholder{color:var(--color-text-light-2)}.sqliteviz-select .multiselect__option.multiselect__option--highlight{background-color:var(--color-bg-light);color:var(--color-text-active)}.sqliteviz-select .multiselect__tag{background-color:var(--color-bg-light-4);border:1px solid var(--color-border);border-radius:var(--border-radius-small);color:var(--color-text-active);font-size:11.05px;margin:2px}.sqliteviz-select .multiselect__tag-icon:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjA0NCAxMC4zOTVhLjg0Ljg0IDAgMDEtMS4xODggMEw3IDguMjczbC0xLjg1NiAyLjEyYS44NC44NCAwIDExLTEuMTg4LTEuMTg3TDUuODg3IDcgMy45NTYgNC43OTRhLjg0Ljg0IDAgMTExLjE4OC0xLjE4N0w3IDUuNzI4bDEuODU2LTIuMTIxYS44NC44NCAwIDExMS4xODggMS4xODdMOC4xMTMgNy4wMDFsMS45MyAyLjIwNWEuODQuODQgMCAwMTAgMS4xODl6IiBmaWxsPSIjNTA2Nzg0Ii8+PC9zdmc+);height:14px;width:14px}.sqliteviz-select .multiselect__tag-icon:focus:after,.sqliteviz-select .multiselect__tag-icon:hover:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjA0NCAxMC4zOTRhLjg0Ljg0IDAgMDEtMS4xODggMEw3IDguMjc0bC0xLjg1NiAyLjEyYS44NC44NCAwIDExLTEuMTg4LTEuMTg4TDUuODg3IDcgMy45NTYgNC43OTRhLjg0Ljg0IDAgMTExLjE4OC0xLjE4OEw3IDUuNzI4bDEuODU2LTIuMTIyYS44NC44NCAwIDExMS4xODggMS4xODhMOC4xMTMgNy4wMDFsMS45MyAyLjIwNWEuODQuODQgMCAwMTAgMS4xODh6IiBmaWxsPSIjREUzNTBCIi8+PC9zdmc+)}.sqliteviz-select .multiselect__tag-icon:focus,.sqliteviz-select .multiselect__tag-icon:hover{background-color:var(--color-bg-danger);border-radius:var(--border-radius-small)}.sqliteviz-select .multiselect__option{min-height:29px;padding:8px 12px;line-height:13px}.sqliteviz-select .multiselect__option:after{line-height:29px}.sqliteviz-select .multiselect__content-wrapper{border-radius:var(--border-radius-medium-2);border:1px solid var(--color-border);box-shadow:var(--shadow-1);top:calc(100% - 1px);max-height:292px!important}.sqliteviz-select.multiselect--above .multiselect__content-wrapper{top:unset;bottom:calc(100% - 1px)}.sqliteviz-select .multiselect__select:before{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNTE2IDcuNTQ4Yy40MzYtLjQ0NiAxLjA0My0uNDgxIDEuNTc2IDBMMTAgMTEuMjk1bDMuOTA4LTMuNzQ3Yy41MzMtLjQ4MSAxLjE0LS40NDYgMS41NzQgMCAuNDM2LjQ0NS40MDggMS4xOTcgMCAxLjYxNS0uNDA2LjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMmExLjA5NSAxLjA5NSAwIDAxLTEuNTc2IDBTNC45MjQgOS41ODEgNC41MTYgOS4xNjNjLS40MDgtLjQxOC0uNDM2LTEuMTcgMC0xLjYxNXoiIGZpbGw9IiNDOEQ0RTMiLz48L3N2Zz4=);border:none;top:0}.sqliteviz-select.multiselect--active .multiselect__select{transform:none}.sqliteviz-select:hover .multiselect__tags{border-color:var(--color-border-dark)}.sqliteviz-select .multiselect__select:hover:before{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNTE2IDcuNTQ4Yy40MzYtLjQ0NiAxLjA0My0uNDgxIDEuNTc2IDBMMTAgMTEuMjk1bDMuOTA4LTMuNzQ3Yy41MzMtLjQ4MSAxLjE0LS40NDYgMS41NzQgMCAuNDM2LjQ0NS40MDggMS4xOTcgMCAxLjYxNS0uNDA2LjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMmExLjA5NSAxLjA5NSAwIDAxLTEuNTc2IDBTNC45MjQgOS41ODEgNC41MTYgOS4xNjNjLS40MDgtLjQxOC0uNDM2LTEuMTcgMC0xLjYxNXoiIGZpbGw9IiMxMTlERkYiLz48L3N2Zz4=)}.sqliteviz-select.multiselect--active .multiselect__tags{border-radius:var(--border-radius-medium-2)}.sqliteviz-select .multiselect__option .no-results{color:var(--color-text-light-2)}.sqliteviz-select.multiselect--disabled{opacity:unset}.sqliteviz-select.multiselect--disabled .multiselect__select{background:unset} \ No newline at end of file +@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Regular.8abbb9d9.woff2);font-weight:400;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-SemiBold.2595cae6.woff2);font-weight:600;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Bold.21b37d1a.woff2);font-weight:700;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-Italic.ee451d9a.woff2);font-weight:400;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-SemiBoldItalic.40ca9121.woff2);font-weight:600;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/OpenSans-BoldItalic.95149f80.woff2);font-weight:700;font-style:italic}#app,.plotly_editor *,button,input,label{font-family:Open Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}.CodeMirror-hints{z-index:999!important}.splitpanes{display:flex;height:100%;position:relative}.splitpanes-vertical{flex-direction:row}.splitpanes-horizontal{flex-direction:column}.splitpanes-dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes-pane{width:100%;height:100%;overflow:auto}.splitpanes-vertical.splitpanes-dragging,.splitpanes-vertical>.splitpanes-splitter{cursor:col-resize}.splitpanes-horizontal.splitpanes-dragging,.splitpanes-horizontal>.splitpanes-splitter{cursor:row-resize}.splitpanes-splitter{touch-action:none;background-color:var(--color-bg-light);box-sizing:border-box;position:relative;flex-shrink:0;z-index:1}.splitpanes-horizontal>.splitpanes-splitter{border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.splitpanes-vertical>.splitpanes-splitter{border-left:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light)}.movable-splitter{position:absolute;background-color:rgba(162,177,198,.5)}.splitpanes-vertical>.movable-splitter,.splitpanes-vertical>.splitpanes-splitter{width:8px;z-index:5;height:100%}.splitpanes-horizontal>.movable-splitter,.splitpanes-horizontal>.splitpanes-splitter{height:8px;width:100%;z-index:5}.toggle-btns{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex}.splitpanes-vertical>.splitpanes-splitter .toggle-btns{flex-direction:column}.splitpanes-horizontal>.splitpanes-splitter .toggle-btns{flex-direction:row}.toggle-btn{background-color:var(--color-border-light);border-radius:var(--border-radius-small);border:1px solid var(--color-border);box-sizing:border-box;position:relative;cursor:pointer}.splitpanes-vertical>.splitpanes-splitter .toggle-btn{height:49px;width:8px}.splitpanes-horizontal>.splitpanes-splitter .toggle-btn{width:49px;height:8px}.toggle-btn .direction-icon{position:absolute;top:50%;left:50%}.splitpanes-horizontal>.splitpanes-splitter .toggle-btns.both .toggle-btn:first-child{border-radius:var(--border-radius-small) 0 0 var(--border-radius-small)}.splitpanes-horizontal>.splitpanes-splitter .toggle-btns.both .toggle-btn:last-child{border-radius:0 var(--border-radius-small) var(--border-radius-small) 0;margin-left:-1px}.splitpanes-vertical>.splitpanes-splitter .toggle-btns.both .toggle-btn:first-child{border-radius:var(--border-radius-small) var(--border-radius-small) 0 0}.splitpanes-vertical>.splitpanes-splitter .toggle-btns.both .toggle-btn:last-child{border-radius:0 0 var(--border-radius-small) var(--border-radius-small);margin-top:-1px}.chevron-icon[data-v-bfc135e8]{transition:transform .15s ease-in-out}.column[data-v-060be7fb],.table-name[data-v-060be7fb]{margin-top:11px}.table-name[data-v-060be7fb]:hover{cursor:pointer}.columns[data-v-060be7fb]{margin-left:24px}.column-type[data-v-060be7fb]{display:inline-block;background-color:var(--color-gray-light-4);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:2px 6px;font-size:11px;text-transform:uppercase}.hint-icon[data-v-30581f31]{display:block;cursor:pointer}.hint-icon:hover path[data-v-30581f31]{fill:var(--color-text-base)}.icon-tooltip[data-v-30581f31]{display:block;white-space:normal;height:auto;line-height:normal;padding:6px;box-sizing:border-box}input[data-v-59fd41a8]{background:var(--color-white);border:1px solid var(--color-border);color:var(--color-text-base);border-radius:var(--border-radius-medium-2);height:36px;padding:0 8px;font-size:13px;box-sizing:border-box;display:block}input[data-v-59fd41a8]::-moz-placeholder{color:var(--color-text-light-2)}input[data-v-59fd41a8]:-ms-input-placeholder{color:var(--color-text-light-2)}input[data-v-59fd41a8]::placeholder{color:var(--color-text-light-2)}input[data-v-59fd41a8]:focus{outline:none}input[data-v-59fd41a8]:disabled{background:var(--color-bg-light);color:var(--color-text-light-2);cursor:default}input.error[data-v-59fd41a8]{border-color:var(--color-text-error)}.text-field-label[data-v-59fd41a8]{font-size:12px;color:var(--color-text-base);padding-left:8px;margin-bottom:2px;display:inline-block;position:relative}.text-field-label .hint[data-v-59fd41a8]{position:absolute;top:-2px;right:-22px}.text-field-label.error[data-v-59fd41a8]{color:var(--color-text-error)}.text-field-label.disabled[data-v-59fd41a8]{color:var(--color-text-light-2)}.text-field-error[data-v-59fd41a8]{color:var(--color-text-error);font-size:12px;padding-left:8px;margin-top:2px;position:absolute}.text-field-error[data-v-59fd41a8]:first-letter{text-transform:uppercase}.db-edit-icon[data-v-2c7f445c]{display:block;cursor:pointer}.db-edit-icon:hover path[data-v-2c7f445c]{fill:var(--color-accent)}.icon[data-v-86f3a16c]{cursor:pointer}.disabled[data-v-86f3a16c]{pointer-events:none}.icon:hover path[data-v-86f3a16c]{fill:var(--color-text-base)}.chevron-icon[data-v-29bdb7bf]{cursor:pointer}.chevron-icon:hover path[data-v-29bdb7bf]{fill:var(--color-accent)}.disabled.chevron-icon[data-v-29bdb7bf]{cursor:default}.disabled.chevron-icon:hover path[data-v-29bdb7bf]{fill:#c8d4e3}.clear-icon[data-v-69060e4e]{cursor:pointer}.clear-icon:hover path[data-v-69060e4e]{fill:var(--color-danger)}.disabled.clear-icon[data-v-69060e4e]{cursor:default}.disabled.clear-icon:hover path[data-v-69060e4e]{fill:#c8d4e3}.delimiter-selector-container[data-v-44b0b048]{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius-medium-2);height:36px;padding:0 8px;font-size:12px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.value[data-v-44b0b048]{display:flex;align-items:center}.value .name[data-v-44b0b048]{color:var(--color-text-light-2);cursor:default;margin-left:4px}.controls[data-v-44b0b048]{display:flex;align-items:center}.options[data-v-44b0b048]{background:var(--color-white);border:1px solid var(--color-border);border-width:0 1px 1px 1px;color:var(--color-text-base);border-radius:var(--border-radius-medium-2);font-size:12px;box-sizing:border-box;position:absolute;z-index:2}.option[data-v-44b0b048]{display:flex;align-items:center;height:24px;padding:0 6px}.option[data-v-44b0b048]:hover{background-color:var(--color-bg-light);color:var(--color-text-active);cursor:pointer}.option pre[data-v-44b0b048]{background-color:var(--color-bg-warning);line-height:20px;margin-right:6px;-moz-tab-size:1;-o-tab-size:1;tab-size:1;font-family:monospace;width:16px;text-align:center}input[data-v-44b0b048]{background:var(--color-white);border:none;color:var(--color-text-base);height:20px;font-family:monospace;font-size:12px;box-sizing:border-box;width:16px;text-align:center}input.filled[data-v-44b0b048]{background:var(--color-bg-warning)}input[data-v-44b0b048]:focus{outline:none}input[data-v-44b0b048]:disabled{background:var(--color-bg-light);color:var(--color-text-light-2);cursor:default}.text-field-label[data-v-44b0b048]{font-size:12px;color:var(--color-text-base);padding-left:8px;margin-bottom:2px}.disabled .text-field-label[data-v-44b0b048]{color:var(--color-text-light-2)}.disabled .delimiter-selector-container[data-v-44b0b048]{background:var(--color-bg-light)}.checkbox-container[data-v-0dd86013]{display:inline-flex;cursor:pointer}.unchecked[data-v-0dd86013]{width:18px;height:18px;background-color:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-medium);box-sizing:border-box}.unchecked[data-v-0dd86013]:hover{background-color:var(--color-bg-light)}img[data-v-0dd86013]{display:block}.label[data-v-0dd86013]{margin-left:6px;color:var(--color-text-base)}.checked .label[data-v-0dd86013]{color:var(--color-text-active)}.disabled.checkbox-container[data-v-0dd86013]{cursor:default}.disabled .label[data-v-0dd86013]{color:var(--color-text-light-2)}.disabled .unchecked[data-v-0dd86013],.disabled .unchecked[data-v-0dd86013]:hover{background-color:var(--color-bg-light-2)}.paginator-continer[data-v-658886c7]{display:flex;align-items:center;line-height:10px}[data-v-658886c7] .paginator-page-link{padding:2px 3px;margin:0 5px;display:block;color:var(--color-text-base);font-size:11px}[data-v-658886c7] .paginator-page-link:hover{color:var(--color-text-active)}[data-v-658886c7] .paginator-next:active,[data-v-658886c7] .paginator-next:focus,[data-v-658886c7] .paginator-next:visited,[data-v-658886c7] .paginator-page-link:active,[data-v-658886c7] .paginator-page-link:focus,[data-v-658886c7] .paginator-page-link:visited,[data-v-658886c7] .paginator-prev:active,[data-v-658886c7] .paginator-prev:focus,[data-v-658886c7] .paginator-prev:visited{outline:none}[data-v-658886c7] .paginator-active-page,[data-v-658886c7] .paginator-active-page:hover{color:var(--color-accent)}[data-v-658886c7] .paginator-break:hover,[data-v-658886c7] .paginator-disabled:hover{cursor:default}[data-v-658886c7] .paginator-prev svg{transform:rotate(180deg)}[data-v-658886c7] .paginator-next:hover path,[data-v-658886c7] .paginator-prev:hover path{fill:var(--color-text-active)}[data-v-658886c7] .paginator-disabled:hover path,[data-v-658886c7] .paginator-disabled path{fill:var(--color-text-light-2)}.loader-svg[data-v-62096452]{position:absolute;left:0;right:0;top:0;bottom:0;fill:none;stroke-linecap:round;stroke:var(--color-accent)}.loader-svg.bg[data-v-62096452]{stroke:var(--color-gray-light-3)}.loading .loader-svg.front[data-v-62096452]{will-change:transform;-webkit-animation:fill-animation-loading-data-v-62096452 1s cubic-bezier(1,1,1,1) 0s infinite;animation:fill-animation-loading-data-v-62096452 1s cubic-bezier(1,1,1,1) 0s infinite;transform-origin:center}@-webkit-keyframes fill-animation-loading-data-v-62096452{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fill-animation-loading-data-v-62096452{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.progress .loader-svg.front[data-v-62096452]{transition:stroke-dasharray .2s}.progress .loader-svg.bg[data-v-62096452]{-webkit-animation:bg-animation-data-v-62096452 1.5s cubic-bezier(1,1,1,1) 0s infinite;animation:bg-animation-data-v-62096452 1.5s cubic-bezier(1,1,1,1) 0s infinite}@-webkit-keyframes bg-animation-data-v-62096452{0%{r:8}50%{stroke:var(--color-gray-light-2);r:9}to{r:8}}@keyframes bg-animation-data-v-62096452{0%{r:8}50%{stroke:var(--color-gray-light-2);r:9}to{r:8}}.logs-container[data-v-1c9f27dc]{background-color:var(--color-white);padding:0 5px;border-radius:5px;border:1px solid var(--color-border-light);box-sizing:border-box;overflow-y:auto;color:var(--color-text-base)}.msg[data-v-1c9f27dc]{padding:12px 7px;border-bottom:1px solid var(--color-border-light);display:flex;align-items:flex-start;font-family:monospace;font-size:13px}.msg[data-v-1c9f27dc]:last-child{border-bottom:none}.msg-text[data-v-1c9f27dc]{margin-left:6px;margin-top:2px}.dialog-body[data-v-68ef9d6c]{padding-bottom:0}.chars[data-v-68ef9d6c]{display:flex;align-items:flex-end;margin:24px 0 20px}.char-input[data-v-68ef9d6c]{margin-right:44px}.preview-table[data-v-68ef9d6c]{margin-top:18px}.import-csv-errors[data-v-68ef9d6c]{height:136px;margin-top:8px}.no-data[data-v-68ef9d6c]{margin-top:32px;background-color:#fff;border-radius:5px;position:relative;border:1px solid var(--color-border-light);box-sizing:border-box;height:147px;font-size:13px;color:var(--color-text-base);display:flex;justify-content:center;align-items:center}[data-v-68ef9d6c] .vm--modal{max-width:1152px;margin:auto;left:0!important}.db-uploader-container[data-v-eefa30c0]{position:relative}.drop-area-container[data-v-eefa30c0]{display:inline-block;border:1px dashed var(--color-border);padding:8px;border-radius:var(--border-radius-big);height:100%;width:100%;box-sizing:border-box}.drop-area[data-v-eefa30c0]{background-color:var(--color-bg-light-3);border-radius:var(--border-radius-big);color:var(--color-text-base);font-size:13px;text-align:center;box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:100%;cursor:pointer}#img-container[data-v-eefa30c0]{position:absolute;top:54px;left:50%;transform:translate(-50%);width:450px;height:338px;pointer-events:none}#drop-file-top-img[data-v-eefa30c0]{width:450px;height:175px;position:absolute;top:0;left:0}#drop-file-bottom-img[data-v-eefa30c0]{width:450px;height:167px;position:absolute;bottom:0;left:0}#body-img[data-v-eefa30c0]{width:74px;position:absolute;top:94.05px;left:46px}#right-arm-img[data-v-eefa30c0]{width:106px;position:absolute;top:110.05px;left:78px}#left-arm-img[data-v-eefa30c0]{width:114px;position:absolute;top:69.05px;left:69px}#file-img[data-v-eefa30c0]{width:125px;position:absolute;top:15.66px;left:152px}.swing[data-v-eefa30c0]{-webkit-animation:swing-data-v-eefa30c0 .6s ease-in-out infinite alternate;animation:swing-data-v-eefa30c0 .6s ease-in-out infinite alternate}#left-arm-img.swing[data-v-eefa30c0]{transform-origin:9px 83px}#right-arm-img.swing[data-v-eefa30c0]{transform-origin:0 56px}#file-img.swing[data-v-eefa30c0]{transform-origin:-74px 139px}@-webkit-keyframes swing-data-v-eefa30c0{0%{transform:rotate(0deg)}to{transform:rotate(-7deg)}}@keyframes swing-data-v-eefa30c0{0%{transform:rotate(0deg)}to{transform:rotate(-7deg)}}#file-img.fly[data-v-eefa30c0]{-webkit-animation:fly-data-v-eefa30c0 1s ease-in-out 1 normal;animation:fly-data-v-eefa30c0 1s ease-in-out 1 normal;transform-origin:center center}@-webkit-keyframes fly-data-v-eefa30c0{to{transform:rotate(1turn) scale(.5);top:183px;left:225px}}@keyframes fly-data-v-eefa30c0{to{transform:rotate(1turn) scale(.5);top:183px;left:225px}}#file-img.hidden[data-v-eefa30c0]{display:none}.icon[data-v-15bea4a0]{display:block;margin:0 12px;cursor:pointer}.icon:hover path[data-v-15bea4a0]{fill:var(--color-accent)}.icon[data-v-0b825a18]{display:block;margin:0;cursor:pointer}.icon:hover path[data-v-0b825a18]{fill:var(--color-accent)}#schema-container[data-v-3fcc3d82]{position:relative;padding-bottom:24px}.schema[data-v-3fcc3d82]{margin-left:12px;padding:0 12px}#schema-filter[data-v-3fcc3d82]{padding:32px 12px;position:sticky;position:-webkit-sticky;top:0;width:100%;height:100px;box-sizing:border-box;background-image:linear-gradient(#fff 73%,hsla(0,0%,100%,0));z-index:2}.db-name[data-v-3fcc3d82],.schema[data-v-3fcc3d82]{color:var(--color-text-base);font-size:13px;white-space:nowrap}#db[data-v-3fcc3d82]{display:flex;align-items:center;margin-top:-5px;padding:0 12px}.db-name[data-v-3fcc3d82]{cursor:pointer;margin-right:6px;max-width:150px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.db-name:hover .chevron-icon path[data-v-3fcc3d82],[data-v-3fcc3d82] .table-name:hover .chevron-icon path{fill:var(--color-gray-dark)}.icon-btn[data-v-0c2b486e]{box-sizing:border-box;width:26px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.icon-btn[data-v-0c2b486e]:hover{border:1px solid var(--color-border);border-radius:var(--border-radius-medium-2)}.icon-btn.active .icon[data-v-0c2b486e] circle,.icon-btn.active .icon[data-v-0c2b486e] path,.icon-btn:hover .icon[data-v-0c2b486e] circle,.icon-btn:hover .icon[data-v-0c2b486e] path{fill:var(--color-accent)}.disabled.icon-btn .icon[data-v-0c2b486e] circle,.disabled.icon-btn .icon[data-v-0c2b486e] path{fill:var(--color-border)}.disabled.icon-btn[data-v-0c2b486e]{cursor:default;pointer-events:none}.disabled.icon-btn:hover .icon[data-v-0c2b486e] path{fill:var(--color-border)}.icon-in-progress[data-v-0c2b486e]{position:absolute;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-light);will-change:opacity;-webkit-animation:show-loader-data-v-0c2b486e 1s linear 0s 1;animation:show-loader-data-v-0c2b486e 1s linear 0s 1}@-webkit-keyframes show-loader-data-v-0c2b486e{0%{opacity:0}99%{opacity:0}to{opacity:1}}@keyframes show-loader-data-v-0c2b486e{0%{opacity:0}99%{opacity:0}to{opacity:1}}.icon[data-v-0c2b486e]{display:flex;align-items:center;justify-content:center}.side-tool-bar[data-v-3b6366bb]{background-color:var(--color-bg-light);border-left:1px solid var(--color-border-light);padding:6px}.side-tool-bar-divider[data-v-3b6366bb]{width:26px;height:1px;background:var(--color-border-light);margin:6px 0}.sql-editor-panel[data-v-c84dd870]{display:flex;flex-grow:1;height:100%;max-height:100%;box-sizing:border-box;overflow:hidden}.codemirror-container[data-v-c84dd870]{flex-grow:1;overflow:auto}[data-v-c84dd870] .CodeMirror,[data-v-c84dd870] .vue-codemirror{height:100%;max-height:100%}[data-v-c84dd870] .CodeMirror-cursor{width:1px;background:var(--color-text-base)}.chart-container[data-v-31be4117]{height:100%}.chart-warning[data-v-31be4117]{height:40px;line-height:40px;border-bottom:1px solid var(--color-border);box-sizing:border-box}.chart[data-v-31be4117]{min-height:242px}[data-v-31be4117] .editor_controls .sidebar__item:before{width:0}svg.asc[data-v-28a29e7a]{transform:rotate(180deg)}svg.horizontal[data-v-28a29e7a]{transform:rotate(-90deg)}svg.horizontal.asc[data-v-28a29e7a]{transform:rotate(90deg)}.pivot-sort-btn[data-v-e3801f08]{display:flex;justify-content:center;align-items:center;width:43px;height:27px;background-color:var(--color-bg-light-4);border-radius:var(--border-radius-medium-2);border:1px solid var(--color-border);cursor:pointer;font-size:11px;color:var(--color-text-base);line-height:8px;box-sizing:border-box}.pivot-sort-btn[data-v-e3801f08]:hover{color:var(--color-text-active);border-color:var(--color-border-dark)}.pivot-sort-btn[data-v-e3801f08]:hover .sort-icon path{fill:var(--color-text-active)}.pivot-sort-btn.col[data-v-e3801f08]{flex-direction:column;padding-top:5px}.pivot-sort-btn.row[data-v-e3801f08]{flex-direction:row}.pivot-sort-btn.row .sort-icon[data-v-e3801f08]{margin-left:2px}.pivot-ui[data-v-6d818ae0]{padding:12px 24px;color:var(--color-text-base);font-size:12px;border-bottom:1px solid var(--color-border-light);background-color:var(--color-bg-light)}.pivot-ui .row[data-v-6d818ae0]{display:flex;align-items:center;margin:12px 0}.pivot-ui .row label[data-v-6d818ae0]{width:76px;flex-shrink:0}.pivot-ui .row .sqliteviz-select.short[data-v-6d818ae0]{width:220px;flex-shrink:0}.pivot-ui .row .aggr-arg[data-v-6d818ae0]{margin-left:12px;max-width:220px}.pivot-ui .row .sort-btn[data-v-6d818ae0]{margin-left:12px;flex-shrink:0}.collapsed[data-v-6d818ae0]{display:none}.switcher[data-v-6d818ae0]{display:block;width:-webkit-min-content;width:-moz-min-content;width:min-content;white-space:nowrap;margin:auto;cursor:pointer}.switcher[data-v-6d818ae0]:hover{color:var(--color-accent)}.pivot-container[data-v-ca17e020]{height:100%;display:flex;flex-direction:column;background-color:var(--color-white)}.pivot-output[data-v-ca17e020]{flex-grow:1;width:100%;overflow:auto}.pivot-warning[data-v-ca17e020]{height:40px;line-height:40px;box-sizing:border-box}[data-v-ca17e020] .pvtTable{min-width:100%}[data-v-ca17e020] table.pvtTable tbody tr td,[data-v-ca17e020] table.pvtTable tbody tr th,[data-v-ca17e020] table.pvtTable thead tr th{border-color:var(--color-border-light)}[data-v-ca17e020] table.pvtTable tbody tr th,[data-v-ca17e020] table.pvtTable thead tr th{background-color:var(--color-bg-dark);color:var(--color-text-light)}[data-v-ca17e020] table.pvtTable tbody tr td{color:var(--color-text-base)}.pivot-output[data-v-ca17e020] textarea{color:var(--color-text-base);min-width:100%;height:100%!important;display:block;box-sizing:border-box;border-width:0}.pivot-output[data-v-ca17e020] textarea:focus-visible{outline:none}.data-view-panel[data-v-513fdbc5]{display:flex;width:100%;height:100%;overflow:hidden}.data-view-panel-content[data-v-513fdbc5]{position:relative;flex-grow:1;width:calc(100% - 39px);height:100%;overflow:auto}.run-result-panel[data-v-73e5054b]{display:flex;height:100%;overflow:hidden}.run-result-panel-content[data-v-73e5054b]{position:relative;flex-grow:1;height:100%;width:0;box-sizing:border-box}.table-preview[data-v-73e5054b]{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-base);font-size:13px}.result-in-progress[data-v-73e5054b]{display:flex;flex-direction:column;justify-content:center;align-items:center;will-change:opacity;-webkit-animation:show-loader-data-v-73e5054b 1s linear 0s 1;animation:show-loader-data-v-73e5054b 1s linear 0s 1}@-webkit-keyframes show-loader-data-v-73e5054b{0%{opacity:0}99%{opacity:0}to{opacity:1}}@keyframes show-loader-data-v-73e5054b{0%{opacity:0}99%{opacity:0}to{opacity:1}}.above[data-v-741ababb]{height:100%;max-height:100%}.hidden-part[data-v-741ababb]{display:none}.tab-content-container[data-v-741ababb]{background-color:var(--color-white);border-top:1px solid var(--color-border-light);margin-top:-1px}.bottomPane[data-v-741ababb]{height:100%;background-color:var(--color-bg-light)}.query-results-splitter[data-v-741ababb]{height:calc(100vh - 104px);background-color:var(--color-bg-light)}#tabs{position:relative;height:100%;background-color:var(--color-bg-light)}#tabs-header{display:flex;margin:0;max-width:100%;overflow:hidden}#tabs-header .tab{height:36px;background-color:var(--color-bg-light);border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);line-height:36px;font-size:14px;color:var(--color-text-base);padding:0 12px;box-sizing:border-box;position:relative;max-width:200px;display:flex;flex-shrink:1;min-width:0}#tabs-header .tab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}#tabs-header .tab:hover{cursor:pointer}#tabs-header .tab-selected{color:var(--color-text-active);border-bottom:none;background-color:var(--color-white);position:relative}#tabs-header .tab-selected:after{content:"";width:100%;height:4px;background-color:var(--color-accent);position:absolute;left:0;bottom:0}#tabs-header .tab.tab-selected:hover{cursor:default}.close-icon{margin-left:5px}#start-guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-base);font-size:14px;text-align:center}.link{color:var(--color-accent);text-decoration:none;cursor:pointer;white-space:nowrap}.schema-tabs-splitter[data-v-de063d86]{height:100%;background-color:var(--color-white)}.icon[data-v-075cb800]{display:block;margin:0 12px}.icon:hover path[data-v-075cb800]{fill:var(--color-accent)}.icon[data-v-3a61cb73]{display:block;margin:0 12px}.icon:hover path[data-v-3a61cb73]{fill:var(--color-accent)}.icon[data-v-581e8819]{display:block;margin:0 12px}.icon:hover path[data-v-581e8819]{fill:var(--color-accent)}#start-guide[data-v-2b039cec]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-base);font-size:14px;text-align:center}#my-inquiries-content[data-v-2b039cec]{padding:52px;height:100%;box-sizing:border-box}#my-inquiries-toolbar[data-v-2b039cec]{display:flex;justify-content:space-between;margin-bottom:18px;margin:0 auto 8px;max-width:1500px;width:100%}.rounded-bg[data-v-2b039cec]{padding-top:40px;margin:0 auto;max-width:1500px;width:100%}.fixed-header[data-v-2b039cec]{padding:11px 24px}.fixed-header[data-v-2b039cec]:first-child{display:flex;align-items:center;padding-left:12px}.fixed-header:first-child .name-th[data-v-2b039cec]{margin-left:24px}table.sqliteviz-table[data-v-2b039cec]{margin-top:0}.sqliteviz-table tbody tr td[data-v-2b039cec]{min-width:0;height:40px}.sqliteviz-table tbody tr td[data-v-2b039cec]:first-child{width:70%;max-width:0;padding:0 12px}.sqliteviz-table tbody tr td[data-v-2b039cec]:last-child{width:30%;max-width:0;padding:0 24px}.sqliteviz-table tbody .cell-data[data-v-2b039cec]{display:flex;align-items:center;max-width:100%;width:100%}.sqliteviz-table tbody .cell-data div.name[data-v-2b039cec]{overflow:hidden;text-overflow:ellipsis;margin-left:24px}.sqliteviz-table tbody tr:hover td[data-v-2b039cec]{cursor:pointer;color:var(--color-text-active)}.sqliteviz-table .second-column[data-v-2b039cec]{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:100%}.icons-container[data-v-2b039cec]{display:none;margin-right:-12px}.date-container[data-v-2b039cec]{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sqliteviz-table tbody tr:hover .icons-container[data-v-2b039cec]{display:flex}.dialog input[data-v-2b039cec]{width:100%}button.toolbar[data-v-2b039cec]{margin-right:16px}.badge[data-v-2b039cec]{display:none;background-color:var(--color-gray-light-4);border:1px solid var(--color-border);border-radius:var(--border-radius-small);padding:2px 6px;font-size:11px;line-height:normal;margin-left:12px}.sqliteviz-table tbody tr:hover .badge[data-v-2b039cec]{display:block}#note[data-v-2b039cec]{margin-top:24px}#note img[data-v-2b039cec]{vertical-align:middle}.icon-tooltip[data-v-2b039cec]{display:block;width:149px;white-space:normal;height:auto;line-height:normal;padding:6px}#dbloader-container[data-v-0da5ae79]{width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}#note[data-v-0da5ae79]{margin-top:27px;font-size:13px;color:var(--color-text-base)}#skip[data-v-0da5ae79]{margin-top:42px}[data-v-0da5ae79] .drop-area{width:706px;height:482px;padding:0 150px;position:relative}[data-v-0da5ae79] .drop-area .text{position:absolute;bottom:42px;max-width:300px}#app-info-icon[data-v-6bad2e0a]{cursor:pointer}#app-info-container[data-v-6bad2e0a]{display:flex;justify-content:center;margin-left:32px}.divider[data-v-6bad2e0a]{height:1px;background-color:var(--color-border);margin:4px 0}.options[data-v-6bad2e0a]{font-family:monospace;font-size:13px;margin-left:8px;overflow:auto;max-height:170px}.info-item[data-v-6bad2e0a]{margin-bottom:32px;font-size:14px}.info-item[data-v-6bad2e0a]:last-child{margin-bottom:0}nav[data-v-707ebea6]{height:68px;display:flex;justify-content:space-between;align-items:center;background-color:var(--color-bg-light);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-1);box-sizing:border-box;position:fixed;top:0;left:0;width:100vw;padding:0 16px 0 52px;z-index:999}a[data-v-707ebea6]{font-size:18px;color:var(--color-text-base);text-transform:none;text-decoration:none;margin-right:28px}a.router-link-active[data-v-707ebea6]{color:var(--color-accent)}button[data-v-707ebea6]{margin-left:16px}#save-note[data-v-707ebea6]{margin-bottom:24px;display:flex;align-items:flex-start}#save-note img[data-v-707ebea6]{margin:-3px 6px 0 0}#nav-buttons[data-v-707ebea6]{display:flex}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent;border-radius:5px}::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:10px}#main-view[data-v-25aa04f9]{margin-top:68px;height:calc(100vh - 68px);overflow-y:auto}:root{--color-white:#fff;--color-gray-light:#f3f6fa;--color-gray-light-2:#dfe8f3;--color-gray-light-3:#c8d4e3;--color-gray-light-4:#ebf0f8;--color-gray-light-5:#f8f8f9;--color-gray-medium:#a2b1c6;--color-gray-dark:#506784;--color-blue-medium:#119dff;--color-blue-dark:#0d76bf;--color-blue-dark-2:#2a3f5f;--color-red:#ef553b;--color-red-2:#de350b;--color-red-light:#ffbdad;--color-yellow:#fbefcb;--color-bg-light:var(--color-gray-light);--color-bg-light-2:var(--color-gray-light-2);--color-bg-light-3:var(--color-gray-light-5);--color-bg-light-4:var(--color-gray-light-4);--color-bg-dark:var(--color-gray-dark);--color-bg-warning:var(--color-yellow);--color-bg-danger:var(--color-red-light);--color-danger:var(--color-red-2);--color-accent:var(--color-blue-medium);--color-accent-shade:var(--color-blue-dark);--color-border-light:var(--color-gray-light-2);--color-border:var(--color-gray-light-3);--color-border-dark:var(--color-gray-medium);--color-text-light:var(--color-white);--color-text-light-2:var(--color-gray-medium);--color-text-base:var(--color-gray-dark);--color-text-active:var(--color-blue-dark-2);--color-text-error:var(--color-red);--shadow:0 1px 2px rgba(42,63,95,0.7);--shadow-1:0 2px 9px rgba(80,103,132,0.2);--border-radius-big:5px;--border-radius-medium:3px;--border-radius-medium-2:4px;--border-radius-small:2px}.plotly-editor--theme-provider{--sidebar-width:112px}button{box-sizing:border-box;height:36px;padding:0 12px;font-size:14px;font-weight:600;cursor:pointer}button:focus{outline:none}button.primary{background:var(--color-accent);border:1px solid var(--color-accent-shade);border-radius:var(--border-radius-big);min-width:83px}button.primary,button.primary:hover{color:var(--color-text-light);text-shadow:var(--shadow)}button.primary:hover{background:var(--color-accent-shade);border:1px solid var(--color-accent-shade)}button.secondary{background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-big);min-width:83px;color:var(--color-text-base)}button.secondary:hover{border:1px solid var(--color-text-light-2);color:var(--color-text-active)}button.toolbar{background:transparent;border:none;color:var(--color-text-base);padding:0}button.toolbar:hover{color:var(--color-accent)}button.primary:disabled,button.secondary:disabled{background:var(--color-bg-light-2);border:1px solid var(--color-border);color:var(--color-text-light-2);text-shadow:none;cursor:default}.rounded-bg{padding:35px 5px 5px;background-color:#fff;border-radius:5px;position:relative;border:1px solid var(--color-border-light);box-sizing:border-box}.straight .rounded-bg{border-radius:0;border-width:0 0 1px 0}.header-container{overflow:hidden;position:absolute;top:-1px;left:-1px;width:calc(100% + 2px);padding-left:7px;box-sizing:border-box;background-color:var(--color-bg-dark);border-radius:5px 5px 0 0}.straight .header-container{border-radius:0}.straight{height:100%}.straight .rounded-bg{height:calc(100% - 27px)}@supports (-moz-appearance:none){.header-container{top:0;padding-left:6px}}.header-container>div{display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding-right:30px}.table-container{width:100%;max-height:100%;overflow:auto}table.sqliteviz-table{min-width:100%;margin-top:-35px;border-collapse:collapse}.fixed-header,.sqliteviz-table thead th{font-size:14px;font-weight:600;background-color:var(--color-bg-dark);color:var(--color-text-light);overflow:hidden;text-overflow:ellipsis}.fixed-header,.sqliteviz-table tbody td,.sqliteviz-table thead th{box-sizing:border-box;border-right:1px solid var(--color-border-light)}.sqliteviz-table tbody td{font-size:13px;background-color:#fff;color:var(--color-text-base);border-bottom:1px solid var(--color-border-light)}.fixed-header,.sqliteviz-table td,.sqliteviz-table th{padding:8px 24px;white-space:nowrap}.header-container div .fixed-header:last-child,.sqliteviz-table tbody tr td:last-child,.sqliteviz-table thead tr th:last-child{border-right:none}.sqliteviz-table td>div.cell-data{width:-webkit-max-content;width:-moz-max-content;width:max-content;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-footer{display:flex;justify-content:space-between;padding:6px 12px}.table-footer-count{font-size:11px;color:var(--color-text-base)}.dialog{border-radius:var(--border-radius-big);box-shadow:0 2px 9px rgba(80,103,132,.8)}.dialog-header{height:46px;line-height:46px;padding:0 22px 0 12px;color:var(--color-text-base);font-size:16px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.dialog-body{min-height:60px;border-top:1px solid var(--color-border-light);color:var(--color-text-base);font-size:13px}.dialog-body,.dialog-buttons-container{background-color:var(--color-bg-light);padding:24px}.dialog-buttons-container{display:flex;justify-content:flex-end}.dialog-buttons-container button{margin-left:16px}.vm--overlay{background-color:rgba(162,177,198,.5)}.icon-tooltip{background-color:rgba(80,103,132,.85);color:#fff;text-align:center;font-size:12px;padding:0 6px;line-height:19px;position:fixed;height:19px;border-radius:var(--border-radius-medium);white-space:nowrap;z-index:999}.warning{background-color:var(--color-bg-warning);color:var(--color-text-base);font-size:13px;padding:0 24px}.sqliteviz-select,.sqliteviz-select .multiselect__tags{min-height:36px;color:var(--color-text-base)}.sqliteviz-select .multiselect__select{height:34px;min-height:34px;padding:6px;width:32px;height:32px;margin-top:1px}.sqliteviz-select .multiselect__tags{border-radius:var(--border-radius-medium-2);border:1px solid var(--color-border);padding:4px 32px 0 6px}.sqliteviz-select,.sqliteviz-select .multiselect__input,.sqliteviz-select .multiselect__placeholder,.sqliteviz-select .multiselect__single{font-size:12px}.sqliteviz-select .multiselect__input,.sqliteviz-select .multiselect__placeholder,.sqliteviz-select .multiselect__single{padding:0;margin-bottom:0;line-height:28px}.sqliteviz-select .multiselect__input{width:0!important;color:var(--color-text-base)}.sqliteviz-select.multiselect--active .multiselect__input{width:auto!important}.sqliteviz-select .multiselect__input::-moz-placeholder{color:var(--color-text-light-2)}.sqliteviz-select .multiselect__input:-ms-input-placeholder{color:var(--color-text-light-2)}.sqliteviz-select .multiselect__input::placeholder,.sqliteviz-select .multiselect__placeholder{color:var(--color-text-light-2)}.sqliteviz-select .multiselect__option.multiselect__option--highlight{background-color:var(--color-bg-light);color:var(--color-text-active)}.sqliteviz-select .multiselect__tag{background-color:var(--color-bg-light-4);border:1px solid var(--color-border);border-radius:var(--border-radius-small);color:var(--color-text-active);font-size:11.05px;margin:2px}.sqliteviz-select .multiselect__tag-icon:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjA0NCAxMC4zOTVhLjg0Ljg0IDAgMDEtMS4xODggMEw3IDguMjczbC0xLjg1NiAyLjEyYS44NC44NCAwIDExLTEuMTg4LTEuMTg3TDUuODg3IDcgMy45NTYgNC43OTRhLjg0Ljg0IDAgMTExLjE4OC0xLjE4N0w3IDUuNzI4bDEuODU2LTIuMTIxYS44NC44NCAwIDExMS4xODggMS4xODdMOC4xMTMgNy4wMDFsMS45MyAyLjIwNWEuODQuODQgMCAwMTAgMS4xODl6IiBmaWxsPSIjNTA2Nzg0Ii8+PC9zdmc+);height:14px;width:14px}.sqliteviz-select .multiselect__tag-icon:focus:after,.sqliteviz-select .multiselect__tag-icon:hover:after{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjA0NCAxMC4zOTRhLjg0Ljg0IDAgMDEtMS4xODggMEw3IDguMjc0bC0xLjg1NiAyLjEyYS44NC44NCAwIDExLTEuMTg4LTEuMTg4TDUuODg3IDcgMy45NTYgNC43OTRhLjg0Ljg0IDAgMTExLjE4OC0xLjE4OEw3IDUuNzI4bDEuODU2LTIuMTIyYS44NC44NCAwIDExMS4xODggMS4xODhMOC4xMTMgNy4wMDFsMS45MyAyLjIwNWEuODQuODQgMCAwMTAgMS4xODh6IiBmaWxsPSIjREUzNTBCIi8+PC9zdmc+)}.sqliteviz-select .multiselect__tag-icon:focus,.sqliteviz-select .multiselect__tag-icon:hover{background-color:var(--color-bg-danger);border-radius:var(--border-radius-small)}.sqliteviz-select .multiselect__option{min-height:29px;padding:8px 12px;line-height:13px}.sqliteviz-select .multiselect__option:after{line-height:29px}.sqliteviz-select .multiselect__content-wrapper{border-radius:var(--border-radius-medium-2);border:1px solid var(--color-border);box-shadow:var(--shadow-1);top:calc(100% - 1px);max-height:292px!important}.sqliteviz-select.multiselect--above .multiselect__content-wrapper{top:unset;bottom:calc(100% - 1px)}.sqliteviz-select .multiselect__select:before{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNTE2IDcuNTQ4Yy40MzYtLjQ0NiAxLjA0My0uNDgxIDEuNTc2IDBMMTAgMTEuMjk1bDMuOTA4LTMuNzQ3Yy41MzMtLjQ4MSAxLjE0LS40NDYgMS41NzQgMCAuNDM2LjQ0NS40MDggMS4xOTcgMCAxLjYxNS0uNDA2LjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMmExLjA5NSAxLjA5NSAwIDAxLTEuNTc2IDBTNC45MjQgOS41ODEgNC41MTYgOS4xNjNjLS40MDgtLjQxOC0uNDM2LTEuMTcgMC0xLjYxNXoiIGZpbGw9IiNDOEQ0RTMiLz48L3N2Zz4=);border:none;top:0}.sqliteviz-select.multiselect--active .multiselect__select{transform:none}.sqliteviz-select:hover .multiselect__tags{border-color:var(--color-border-dark)}.sqliteviz-select .multiselect__select:hover:before{content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuNTE2IDcuNTQ4Yy40MzYtLjQ0NiAxLjA0My0uNDgxIDEuNTc2IDBMMTAgMTEuMjk1bDMuOTA4LTMuNzQ3Yy41MzMtLjQ4MSAxLjE0LS40NDYgMS41NzQgMCAuNDM2LjQ0NS40MDggMS4xOTcgMCAxLjYxNS0uNDA2LjQxOC00LjY5NSA0LjUwMi00LjY5NSA0LjUwMmExLjA5NSAxLjA5NSAwIDAxLTEuNTc2IDBTNC45MjQgOS41ODEgNC41MTYgOS4xNjNjLS40MDgtLjQxOC0uNDM2LTEuMTcgMC0xLjYxNXoiIGZpbGw9IiMxMTlERkYiLz48L3N2Zz4=)}.sqliteviz-select.multiselect--active .multiselect__tags{border-radius:var(--border-radius-medium-2)}.sqliteviz-select .multiselect__option .no-results{color:var(--color-text-light-2)}.sqliteviz-select.multiselect--disabled{opacity:unset}.sqliteviz-select.multiselect--disabled .multiselect__select{background:unset} \ No newline at end of file diff --git a/dist.zip b/dist.zip index 91167d414e424148a14a9184adc953718867a8e2..10e220ad6f2ebc23b820b9e58b21edf0bc58d097 100644 GIT binary patch delta 201948 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�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ⅆ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%0A!)ay9yj9=3bVJBnI|NaTX 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 RrA3*?G&cyOO#qms{{d@Oy-)xE delta 202093 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∓Q8`oRr0sBv%^si@JLmjg16Lxwr#P@r(3I(L@SB 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
aze{7^ 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 diff --git a/index.html b/index.html index 68b10c7..c0db1fe 100644 --- a/index.html +++ b/index.html @@ -57,4 +57,4 @@ stroke-dasharray: 100px 402px; stroke-dashoffset: -502px; } - }
LOADING
\ No newline at end of file + }
LOADING
\ No newline at end of file diff --git a/js/_worker.5e0dd41a.worker.js b/js/_worker.289a3d4b.worker.js similarity index 96% rename from js/_worker.5e0dd41a.worker.js rename to js/_worker.289a3d4b.worker.js index b42eef8..f3ed522 100644 --- a/js/_worker.5e0dd41a.worker.js +++ b/js/_worker.289a3d4b.worker.js @@ -2,7 +2,7 @@ /*! safe-buffer. MIT License. Feross Aboukhadijeh */ var n=r("b639"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"===typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},"06cf":function(t,e,r){var n=r("83ab"),i=r("d1e7"),o=r("5c6c"),a=r("fc6a"),s=r("c04e"),u=r("5135"),h=r("0cfb"),f=Object.getOwnPropertyDescriptor;e.f=n?f:function(t,e){if(t=a(t),e=s(e,!0),h)try{return f(t,e)}catch(r){}if(u(t,e))return o(!i.f.call(t,e),t[e])}},"0706":function(module,exports){var indexOf=function(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0;r>>27}function f(t){return t<<30|t>>>2}function l(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=e[u-3]^e[u-8]^e[u-14]^e[u-16];for(var c=0;c<80;++c){var d=~~(c/20),p=h(r)+l(d,n,i,o)+s+e[c]+a[d]|0;s=o,o=i,i=f(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"0960":function(t,e,r){t.exports=r("b19a")},"09dc":function(t,e,r){"use strict";t.exports=f;var n=r("9d8a").codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r("e666");function h(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length=e.length){o++;break}var a=e.slice(2,i-1);if(("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++,a.length<8&&o++,o)throw new Error("decryption error");return e.slice(i)}function d(t,e){t=f.from(t),e=f.from(e);var r=0,n=t.length;t.length!==e.length&&(r++,n=Math.min(t.length,e.length));var i=-1;while(++id||new a(e).cmp(u.modulus)>=0)throw new Error("decryption error");o=r?h(new a(e),u):s(e,u);var p=f.alloc(d-o.length);if(o=f.concat([p,o],d),4===i)return l(u,o);if(1===i)return c(u,o,r);if(3===i)return o;throw new Error("unknown padding")}},1:function(t,e){},10:function(t,e){},"10d1":function(t,e,r){"use strict";var n,i=r("da84"),o=r("e2cc"),a=r("f183"),s=r("6d61"),u=r("acac"),h=r("861d"),f=r("69f3").enforce,l=r("7f9a"),c=!i.ActiveXObject&&"ActiveXObject"in i,d=Object.isExtensible,p=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},m=t.exports=s("WeakMap",p,u);if(l&&c){n=u.getConstructor(p,"WeakMap",!0),a.REQUIRED=!0;var v=m.prototype,b=v["delete"],g=v.has,y=v.get,w=v.set;o(v,{delete:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new n),b.call(this,t)||e.frozen["delete"](t)}return b.call(this,t)},has:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new n),g.call(this,t)||e.frozen.has(t)}return g.call(this,t)},get:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new n),g.call(this,t)?y.call(this,t):e.frozen.get(t)}return y.call(this,t)},set:function(t,e){if(h(t)&&!d(t)){var r=f(this);r.frozen||(r.frozen=new n),g.call(this,t)?w.call(this,t,e):r.frozen.set(t,e)}else w.call(this,t,e);return this}})}},11:function(t,e){},"116d":function(t,e,r){t.exports=r("b4e8")},"11dc":function(t,e,r){"use strict";(function(e,n){var i=65536,o=4294967295;function a(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}var s=r("8707").Buffer,u=e.crypto||e.msCrypto;function h(t,e){if(t>o)throw new RangeError("requested too many random bytes");var r=s.allocUnsafe(t);if(t>0)if(t>i)for(var a=0;a1||"".split(/.?/).length?function(t,r){var n=String(a(this)),o=void 0===r?m:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!i(t))return e.call(n,t,o);var s,u,h,f=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,v=new RegExp(t.source,c+"g");while(s=l.call(v,n)){if(u=v.lastIndex,u>p&&(f.push(n.slice(p,s.index)),s.length>1&&s.index=o))break;v.lastIndex===s.index&&v.lastIndex++}return p===n.length?!h&&v.test("")||f.push(""):f.push(n.slice(p)),f.length>o?f.slice(0,o):f}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var i=a(this),o=void 0==e?void 0:e[t];return void 0!==o?o.call(e,i,r):n.call(String(i),e,r)},function(t,i){var a=r(n,t,this,i,n!==e);if(a.done)return a.value;var l=o(t),c=String(this),d=s(l,RegExp),b=l.unicode,g=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(v?"y":"g"),y=new d(v?l:"^(?:"+l.source+")",g),w=void 0===i?m:i>>>0;if(0===w)return[];if(0===c.length)return null===f(y,c)?[c]:[];var M=0,_=0,E=[];while(_2?arguments[2]:void 0,l=a((void 0===f?s:i(f,s))-h,s-u),c=1;h0)h in r?r[u]=r[h]:delete r[u],u+=c,h+=c;return r}},"14c3":function(t,e,r){var n=r("c6b6"),i=r("9263");t.exports=function(t,e){var r=t.exec;if("function"===typeof r){var o=r.call(t,e);if("object"!==typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==n(t))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(t,e)}},1545:function(t,e,r){"use strict";e.utils=r("5ee7"),e.Cipher=r("0184"),e.DES=r("4e2b"),e.CBC=r("0da4"),e.EDE=r("1fec")},"159b":function(t,e,r){var n=r("da84"),i=r("fdbc"),o=r("17c2"),a=r("9112");for(var s in i){var u=n[s],h=u&&u.prototype;if(h&&h.forEach!==o)try{a(h,"forEach",o)}catch(f){h.forEach=o}}},"170b":function(t,e,r){"use strict";var n=r("ebb5"),i=r("50c4"),o=r("23cb"),a=r("4840"),s=n.aTypedArray,u=n.exportTypedArrayMethod;u("subarray",(function(t,e){var r=s(this),n=r.length,u=o(t,n);return new(a(r,r.constructor))(r.buffer,r.byteOffset+u*r.BYTES_PER_ELEMENT,i((void 0===e?n:o(e,n))-u))}))},"17c2":function(t,e,r){"use strict";var n=r("b727").forEach,i=r("a640"),o=r("ae40"),a=i("forEach"),s=o("forEach");t.exports=a&&s?[].forEach:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}},"182d":function(t,e,r){var n=r("f8cd");t.exports=function(t,e){var r=n(t);if(r%e)throw RangeError("Wrong offset");return r}},"19aa":function(t,e){t.exports=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t}},"19ea":function(t,e,r){"use strict";(function(e,n){function i(t){var e=this;this.next=null,this.entry=null,this.finish=function(){K(e,t)}}var o;t.exports=R,R.WritableState=x;var a={deprecate:r("b7d1")},s=r("5bbb"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("493f"),p=r("b9b5"),m=p.getHighWaterMark,v=r("9d8a").codes,b=v.ERR_INVALID_ARG_TYPE,g=v.ERR_METHOD_NOT_IMPLEMENTED,y=v.ERR_MULTIPLE_CALLBACK,w=v.ERR_STREAM_CANNOT_PIPE,M=v.ERR_STREAM_DESTROYED,_=v.ERR_STREAM_NULL_VALUES,E=v.ERR_STREAM_WRITE_AFTER_END,S=v.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function k(){}function x(t,e,n){o=o||r("e666"),t=t||{},"boolean"!==typeof n&&(n=e instanceof o),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){N(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function R(t){o=o||r("e666");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new x(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new E;A(t,r),n.nextTick(e,r)}function T(t,e,r,i){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new b("chunk",["string","Buffer"],r)),!o||(A(t,o),n.nextTick(i,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,n,i,o){if(!r){var a=I(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var n=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||H(this,n,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"1a2a":function(t,e,r){"use strict";var n=r("3fb5"),i=r("d424"),o=r("6430"),a=r("8707").Buffer,s=r("5a76"),u=r("b5ca"),h=r("69f2"),f=a.alloc(128);function l(t,e){o.call(this,"digest"),"string"===typeof e&&(e=a.from(e));var r="sha512"===t||"sha384"===t?128:64;if(this._alg=t,this._key=e,e.length>r){var n="rmd160"===t?new u:h(t);e=n.update(e).digest()}else e.length=51||!n((function(){var e=[],r=e.constructor={};return r[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},"1e3c":function(t,e,r){var n=r("6430"),i=r("1545"),o=r("3fb5"),a=r("8707").Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(t){n.call(this);var e,r=t.mode.toLowerCase(),i=s[r];e=t.decrypt?"decrypt":"encrypt";var o=t.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=a.concat([o,o.slice(0,8)]));var u=t.iv;a.isBuffer(u)||(u=a.from(u)),this._des=i.create({key:o,iv:u,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=u,o(u,n),u.prototype._update=function(t){return a.from(this._des.update(t))},u.prototype._final=function(){return a.from(this._des.final())}},"1fb5":function(t,e,r){"use strict";e.byteLength=f,e.toByteArray=c,e.fromByteArray=m;for(var n=[],i=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");-1===r&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function f(t){var e=h(t),r=e[0],n=e[1];return 3*(r+n)/4-n}function l(t,e,r){return 3*(e+r)/4-r}function c(t){var e,r,n=h(t),a=n[0],s=n[1],u=new o(l(t,a,s)),f=0,c=s>0?a-4:a;for(r=0;r>16&255,u[f++]=e>>8&255,u[f++]=255&e;return 2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[f++]=255&e),1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e),u}function d(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function p(t,e,r){for(var n,i=[],o=e;ou?u:s+a));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},"1fec":function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5"),o=r("0184"),a=r("4e2b");function s(t,e){n.equal(e.length,24,"Invalid key length");var r=e.slice(0,8),i=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:i}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:i}),a.create({type:"decrypt",key:r})]}function u(t){o.call(this,t);var e=new s(this.type,this.options.key);this._edeState=e}i(u,o),t.exports=u,u.create=function(t){return new u(t)},u.prototype._update=function(t,e,r,n){var i=this._edeState;i.ciphers[0]._update(t,e,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},2:function(t,e){},"206d":function(t,e,r){(function(e,n){var i,o=r("8707").Buffer,a=r("7d2a"),s=r("9f9d"),u=r("e07b"),h=r("8be6"),f=e.crypto&&e.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},c=[];function d(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==c[t])return c[t];i=i||o.alloc(8);var r=p(i,i,10,128,t).then((function(){return!0})).catch((function(){return!1}));return c[t]=r,r}function p(t,e,r,n,i){return f.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return f.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)})).then((function(t){return o.from(t)}))}function m(t,e){t.then((function(t){n.nextTick((function(){e(null,t)}))}),(function(t){n.nextTick((function(){e(t)}))}))}t.exports=function(t,r,i,o,f,c){"function"===typeof f&&(c=f,f=void 0),f=f||"sha1";var v=l[f.toLowerCase()];if(!v||"function"!==typeof e.Promise)return n.nextTick((function(){var e;try{e=u(t,r,i,o,f)}catch(n){return c(n)}c(null,e)}));if(a(i,o),t=h(t,s,"Password"),r=h(r,s,"Salt"),"function"!==typeof c)throw new Error("No callback provided to pbkdf2");m(d(v).then((function(e){return e?p(t,r,i,o,v):u(t,r,i,o,f)})),c)}}).call(this,r("c8ba"),r("4362"))},"20f6":function(t,e,r){var n=e;n.der=r("cfbd"),n.pem=r("8df7")},2137:function(t,e,r){"use strict";var n=r("c3c0"),i=r("da3e");function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(e,r))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;ep;p++)if(v=f?y(n(g=t[p])[0],g[1]):y(t[p]),v&&v instanceof h)return v;return new h(!1)}c=d.call(t)}b=c.next;while(!(g=b.call(c)).done)if(v=u(c,y,g.value,f),"object"==typeof v&&v&&v instanceof h)return v;return new h(!1)};f.stop=function(t){return new h(!0,t)}},"22ab":function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),r=this.head,n=0;while(r)p(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return ti.length?i.length:t;if(o===i.length?n+=i:n+=i.slice(0,t),t-=o,0===t){o===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),r=this.head,n=1;r.data.copy(e),t-=r.data.length;while(r=r.next){var i=r.data,o=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,o),t-=o,0===t){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,e}},{key:d,value:function(t,e){return c(this,i({},e,{depth:0,customInspect:!1}))}}]),t}()},"23cb":function(t,e,r){var n=r("a691"),i=Math.max,o=Math.min;t.exports=function(t,e){var r=n(t);return r<0?i(r+e,0):o(r,e)}},"23e7":function(t,e,r){var n=r("da84"),i=r("06cf").f,o=r("9112"),a=r("6eeb"),s=r("ce4e"),u=r("e893"),h=r("94ca");t.exports=function(t,e){var r,f,l,c,d,p,m=t.target,v=t.global,b=t.stat;if(f=v?n:b?n[m]||s(m,{}):(n[m]||{}).prototype,f)for(l in e){if(d=e[l],t.noTargetGet?(p=i(f,l),c=p&&p.value):c=f[l],r=h(v?l:m+(b?".":"#")+l,t.forced),!r&&void 0!==c){if(typeof d===typeof c)continue;u(d,c)}(t.sham||c&&c.sham)&&o(d,"sham",!0),a(f,l,d,t)}}},"241c":function(t,e,r){var n=r("ca84"),i=r("7839"),o=i.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,o)}},2532:function(t,e,r){"use strict";var n=r("23e7"),i=r("5a34"),o=r("1d80"),a=r("ab13");n({target:"String",proto:!0,forced:!a("includes")},{includes:function(t){return!!~String(o(this)).indexOf(i(t),arguments.length>1?arguments[1]:void 0)}})},"25a1":function(t,e,r){"use strict";var n=r("ebb5"),i=r("d58f").right,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("reduceRight",(function(t){return i(o(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},"25f0":function(t,e,r){"use strict";var n=r("6eeb"),i=r("825a"),o=r("d039"),a=r("ad6d"),s="toString",u=RegExp.prototype,h=u[s],f=o((function(){return"/a/b"!=h.call({source:"a",flags:"b"})})),l=h.name!=s;(f||l)&&n(RegExp.prototype,s,(function(){var t=i(this),e=String(t.source),r=t.flags,n=String(void 0===r&&t instanceof RegExp&&!("flags"in u)?a.call(t):r);return"/"+e+"/"+n}),{unsafe:!0})},2626:function(t,e,r){"use strict";var n=r("d066"),i=r("9bf2"),o=r("b622"),a=r("83ab"),s=o("species");t.exports=function(t){var e=n(t),r=i.f;a&&e&&!e[s]&&r(e,s,{configurable:!0,get:function(){return this}})}},"27bf":function(t,e,r){"use strict";t.exports=a;var n=r("b19a"),i=Object.create(r("3a7c"));function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},2954:function(t,e,r){"use strict";var n=r("ebb5"),i=r("4840"),o=r("d039"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod,h=[].slice,f=o((function(){new Int8Array(1).slice()}));u("slice",(function(t,e){var r=h.call(a(this),t,e),n=i(this,this.constructor),o=0,u=r.length,f=new(s(n))(u);while(u>o)f[o]=r[o++];return f}),f)},"2aee":function(t,e,r){var n=r("4111"),i=r("d70e"),o=r("4dd0"),a=r("fda6"),s=r("a099"),u=r("8707").Buffer;function h(t){var e;"object"!==typeof t||u.isBuffer(t)||(e=t.passphrase,t=t.key),"string"===typeof t&&(t=u.from(t));var r,i,a=o(t,e),s=a.tag,h=a.data;switch(s){case"CERTIFICATE":i=n.certificate.decode(h,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(i||(i=n.PublicKey.decode(h,"der")),r=i.algorithm.algorithm.join("."),r){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(i.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return i.subjectPrivateKey=i.subjectPublicKey,{type:"ec",data:i};case"1.2.840.10040.4.1":return i.algorithm.params.pub_key=n.DSAparam.decode(i.subjectPublicKey.data,"der"),{type:"dsa",data:i.algorithm.params};default:throw new Error("unknown key id "+r)}throw new Error("unknown key type "+s);case"ENCRYPTED PRIVATE KEY":h=n.EncryptedPrivateKey.decode(h,"der"),h=f(h,e);case"PRIVATE KEY":switch(i=n.PrivateKey.decode(h,"der"),r=i.algorithm.algorithm.join("."),r){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(i.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:i.algorithm.curve,privateKey:n.ECPrivateKey.decode(i.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return i.algorithm.params.priv_key=n.DSAparam.decode(i.subjectPrivateKey,"der"),{type:"dsa",params:i.algorithm.params};default:throw new Error("unknown key id "+r)}throw new Error("unknown key type "+s);case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(h,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(h,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(h,"der")};case"EC PRIVATE KEY":return h=n.ECPrivateKey.decode(h,"der"),{curve:h.parameters.value,privateKey:h.privateKey};default:throw new Error("unknown key type "+s)}}function f(t,e){var r=t.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=i[t.algorithm.decrypt.cipher.algo.join(".")],h=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,l=parseInt(o.split("-")[1],10)/8,c=s.pbkdf2Sync(e,r,n,l,"sha1"),d=a.createDecipheriv(o,c,h),p=[];return p.push(d.update(f)),p.push(d.final()),u.concat(p)}t.exports=h,h.signature=n.signature},"2c63":function(t,e,r){t.exports=r("dc14")},"2ca0":function(t,e,r){"use strict";var n=r("23e7"),i=r("06cf").f,o=r("50c4"),a=r("5a34"),s=r("1d80"),u=r("ab13"),h=r("c430"),f="".startsWith,l=Math.min,c=u("startsWith"),d=!h&&!c&&!!function(){var t=i(String.prototype,"startsWith");return t&&!t.writable}();n({target:"String",proto:!0,forced:!d&&!c},{startsWith:function(t){var e=String(s(this));a(t);var r=o(l(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return f?f.call(e,n,r):e.slice(r,r+n.length)===n}})},"2d00":function(t,e,r){var n,i,o=r("da84"),a=r("342f"),s=o.process,u=s&&s.versions,h=u&&u.v8;h?(n=h.split("."),i=n[0]+n[1]):a&&(n=a.match(/Edge\/(\d+)/),(!n||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/),n&&(i=n[1]))),t.exports=i&&+i},3:function(t,e){},3280:function(t,e,r){"use strict";var n=r("ebb5"),i=r("e58c"),o=n.aTypedArray,a=n.exportTypedArrayMethod;a("lastIndexOf",(function(t){return i.apply(o(this),arguments)}))},3300:function(t,e,r){"use strict";var n=r("f3a3"),i=r("80af"),o=r("3fb5"),a=r("ea53"),s=n.assert;function u(t){a.call(this,"short",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function h(t,e,r,n){a.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(t,e,r,n){a.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r,n;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var o=this._getEndoRoots(this.p);e=o[0].cmp(o[1])<0?o[0]:o[1],e=e.toRed(this.red)}if(t.lambda)r=new i(t.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(e))?r=a[0]:(r=a[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return n=t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(r),{beta:e,lambda:r,basis:n}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),r=new i(2).toRed(e).redInvm(),n=r.redNeg(),o=new i(3).toRed(e).redNeg().redSqrt().redMul(r),a=n.redAdd(o).fromRed(),s=n.redSub(o).fromRed();return[a,s]},u.prototype._getEndoBasis=function(t){var e,r,n,o,a,s,u,h,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,d=this.n.clone(),p=new i(1),m=new i(0),v=new i(0),b=new i(1),g=0;while(0!==c.cmpn(0)){var y=d.div(c);h=d.sub(y.mul(c)),f=v.sub(y.mul(p));var w=b.sub(y.mul(m));if(!n&&h.cmp(l)<0)e=u.neg(),r=p,n=h.neg(),o=f;else if(n&&2===++g)break;u=h,d=c,c=h,v=p,p=f,b=m,m=w}a=h.neg(),s=f;var M=n.sqr().add(o.sqr()),_=a.sqr().add(s.sqr());return _.cmp(M)>=0&&(a=e,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),h=o.mul(n.b),f=t.sub(a).sub(s),l=u.add(h).neg();return{k1:f,k2:l}},u.prototype.pointFromX=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(e&&!o||!e&&o)&&(n=n.redNeg()),this.point(t,n)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},h.prototype.isInfinity=function(){return this.inf},h.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},h.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},h.prototype.getX=function(){return this.x.fromRed()},h.prototype.getY=function(){return this.y.fromRed()},h.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},h.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},h.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},h.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},h.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t},o(f,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new f(this,t,e,r)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=s.redSqr(),f=h.redMul(s),l=n.redMul(h),c=u.redSqr().redIAdd(f).redISub(l).redISub(l),d=u.redMul(l.redISub(c)).redISub(o.redMul(f)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(c,d,p)},f.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),h=u.redMul(a),f=r.redMul(u),l=s.redSqr().redIAdd(h).redISub(f).redISub(f),c=s.redMul(f.redISub(l)).redISub(i.redMul(h)),d=this.z.redMul(a);return this.curve.jpoint(l,c,d)},f.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},3337:function(t,e,r){"use strict";var n=e;n.version=r("2801").version,n.utils=r("f3a3"),n.rand=r("fdac"),n.curve=r("4136"),n.curves=r("0cbb"),n.ec=r("b9a8"),n.eddsa=r("945d")},"334a":function(t,e,r){e=t.exports=r("4250"),e.Stream=e,e.Readable=e,e.Writable=r("19ea"),e.Duplex=r("e666"),e.Transform=r("09dc"),e.PassThrough=r("0ae3"),e.finished=r("ee93"),e.pipeline=r("fbd5")},"342f":function(t,e,r){var n=r("d066");t.exports=n("navigator","userAgent")||""},"343e":function(t,e,r){var n=e;n.der=r("3768"),n.pem=r("85b3")},"34d5":function(t,e,r){e=t.exports=r("cf35"),e.Stream=e,e.Readable=e,e.Writable=r("49ce"),e.Duplex=r("5e7d"),e.Transform=r("f1c8"),e.PassThrough=r("9d28"),e.finished=r("42a7"),e.pipeline=r("ac4f")},3505:function(t,e,r){var n=r("8707").Buffer,i=r("8c8a");function o(t,e,r){var o=e.length,a=i(e,t._cache);return t._cache=t._cache.slice(o),t._prev=n.concat([t._prev,r?e:a]),a}e.encrypt=function(t,e,r){var i,a=n.allocUnsafe(0);while(e.length){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){a=n.concat([a,o(t,e,r)]);break}i=t._cache.length,a=n.concat([a,o(t,e.slice(0,i),r)]),e=e.slice(i)}return a}},"35a1":function(t,e,r){var n=r("f5df"),i=r("3f8c"),o=r("b622"),a=o("iterator");t.exports=function(t){if(void 0!=t)return t[a]||t["@@iterator"]||i[n(t)]}},3768:function(t,e,r){var n=r("3fb5"),i=r("b639").Buffer,o=r("7f7a"),a=o.base,s=o.constants.der;function u(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new h,this.tree._init(t.body)}function h(t){a.Node.call(this,"der",t)}function f(t){return t<10?"0"+t:t}function l(t,e,r,n){var i;if("seqof"===t?t="seq":"setof"===t&&(t="set"),s.tagByName.hasOwnProperty(t))i=s.tagByName[t];else{if("number"!==typeof t||(0|t)!==t)return n.error("Unknown tag: "+t);i=t}return i>=31?n.error("Multi-octet tag encoding unsupported"):(e||(i|=32),i|=s.tagClassByName[r||"universal"]<<6,i)}t.exports=u,u.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},n(h,a.Node),h.prototype._encodeComposite=function(t,e,r,n){var o=l(t,e,r,this.reporter);if(n.length<128){var a=new i(2);return a[0]=o,a[1]=n.length,this._createEncoderBuffer([a,n])}for(var s=1,u=n.length;u>=256;u>>=8)s++;a=new i(2+s);a[0]=o,a[1]=128|s;u=1+s;for(var h=n.length;h>0;u--,h>>=8)a[u]=255&h;return this._createEncoderBuffer([a,n])},h.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new i(2*t.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var o=0;for(n=0;n=128;a>>=7)o++}var s=new i(o),u=s.length-1;for(n=t.length-1;n>=0;n--){a=t[n];s[u--]=127&a;while((a>>=7)>0)s[u--]=128|127&a}return this._createEncoderBuffer(s)},h.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[f(n.getFullYear()),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[f(n.getFullYear()%100),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},h.prototype._encodeNull=function(){return this._createEncoderBuffer("")},h.prototype._encodeInt=function(t,e){if("string"===typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!==typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new i(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=new i(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);n=1;for(var a=t;a>=256;a>>=8)n++;for(o=new Array(n),a=o.length-1;a>=0;a--)o[a]=255&t,t>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},h.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},h.prototype._use=function(t,e){return"function"===typeof t&&(t=t(e)),t._getEncoder("der").tree},h.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i["default"])return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i["default"],e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"37e8":function(t,e,r){var n=r("83ab"),i=r("9bf2"),o=r("825a"),a=r("df75");t.exports=n?Object.defineProperties:function(t,e){o(t);var r,n=a(e),s=n.length,u=0;while(s>u)i.f(t,r=n[u++],e[r]);return t}},"380f":function(t,e,r){"use strict";var n=r("f3a3"),i=n.assert,o=n.parseBytes,a=n.cachedProperty;function s(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var t=this.eddsa,e=this.hash(),r=t.encodingLength-1,n=e.slice(0,t.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return i(this._secret,"KeyPair is public only"),n.encode(this.secret(),t)},s.prototype.getPublic=function(t){return n.encode(this.pubBytes(),t)},t.exports=s},"399f":function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(11).Buffer}catch($){}function s(t,e,r){for(var i=0,o=Math.min(t.length,r),a=0,s=e;s=49&&h<=54?h-49+10:h>=17&&h<=22?h-17+10:h,i|=u,a|=u}return n(!(240&a),"Invalid character in "+t),i}function u(t,e,r,i){for(var o=0,a=0,s=Math.min(t.length,r),u=e;u=49?h-49+10:h>=17?h-17+10:h,n(h>=0&&a"}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this._strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this._strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!==typeof Symbol&&"function"===typeof Symbol.for?o.prototype[Symbol.for("nodejs.util.inspect.custom")]=f:o.prototype.inspect=f;var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?l[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=c[t],f=d[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modrn(f).toString(t);p=p.idivn(f),r=p.isZero()?m+r:l[h-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(a,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};var p=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)};function m(t){for(var e=new Array(t.bitLength()),r=0;r>>i&1}return e}function v(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r._strip()}o.prototype.toArrayLike=function(t,e,r){this._strip();var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0");var a=p(t,o),s="le"===e?"LE":"BE";return this["_toArrayLike"+s](a,i),a},o.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r=0&&(t[r--]=a>>8&255),r>=0&&(t[r--]=a>>16&255),6===o?(r>=0&&(t[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0){t[r--]=n;while(r>=0)t[r--]=0}},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function g(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function y(t,e,r){return g(t,e,r)}function w(t,e){this.x=t,this.y=e}Math.imul||(b=v),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?b(this,t,e):n<63?v(this,t,e):n<1024?g(this,t,e):y(this,t,e),r},w.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},w.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,r+=o/67108864|0,r+=a>>>26,this.words[i]=67108863&a}return 0!==r&&(this.words[i]=r,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=m(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(r*i+(0|this.words[o]))%t;return e?-i:i},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*r;this.words[i]=o/t|0,r=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new x(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var M={k256:null,p224:null,p192:null,p25519:null};function _(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function x(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function R(t){x.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},_.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(t,e){t.iushrn(this.n,0,e)},_.prototype.imulK=function(t){return t.imul(this.k)},i(E,_),E.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},E.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(M[t])return M[t];var e;if("k256"===t)e=new E;else if("p224"===t)e=new S;else if("p192"===t)e=new A;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return M[t]=e,e},x.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},x.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},x.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(h(t,t.umod(this.m)._forceRed(this)),t)},x.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},x.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},x.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},x.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},x.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},x.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},x.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},x.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},x.prototype.isqr=function(t){return this.imul(t,t.clone())},x.prototype.sqr=function(t){return this.mul(t,t)},x.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},x.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},x.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new R(t)},i(R,x),R.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},R.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},R.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},R.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},R.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"39a9":function(t,e,r){ /*! safe-buffer. MIT License. Feross Aboukhadijeh */ -var n=r("b639"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"===typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},"39f5":function(t,e,r){var n=r("8707").Buffer;function i(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,r=new Array(e),i=0;i>>24]^f[p>>>16&255]^l[m>>>8&255]^c[255&v]^e[b++],a=h[p>>>24]^f[m>>>16&255]^l[v>>>8&255]^c[255&d]^e[b++],s=h[m>>>24]^f[v>>>16&255]^l[d>>>8&255]^c[255&p]^e[b++],u=h[v>>>24]^f[d>>>16&255]^l[p>>>8&255]^c[255&m]^e[b++],d=o,p=a,m=s,v=u;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&v])^e[b++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[v>>>8&255]<<8|n[255&d])^e[b++],s=(n[m>>>24]<<24|n[v>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[b++],u=(n[v>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[b++],o>>>=0,a>>>=0,s>>>=0,u>>>=0,[o,a,s,u]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var h=s^s<<1^s<<2^s<<3^s<<4;h=h>>>8^255&h^99,r[a]=h,n[h]=a;var f=t[a],l=t[f],c=t[l],d=257*t[h]^16843008*h;i[0][a]=d<<24|d>>>8,i[1][a]=d<<16|d>>>16,i[2][a]=d<<8|d>>>24,i[3][a]=d,d=16843009*c^65537*l^257*f^16843008*a,o[0][h]=d<<24|d>>>8,o[1][h]=d<<16|d>>>16,o[2][h]=d<<8|d>>>24,o[3][h]=d,0===a?a=s=1:(a=f^t[t[t[c^f]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function h(t){this._key=i(t),this._reset()}h.blockSize=16,h.keySize=32,h.prototype.blockSize=h.blockSize,h.prototype.keySize=h.keySize,h.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e===4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-e]^a}for(var h=[],f=0;f>>24]]^u.INV_SUB_MIX[1][u.SBOX[c>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[c>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&c]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=h},h.prototype.encryptBlockRaw=function(t){return t=i(t),a(t,this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},h.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},h.prototype.decryptBlock=function(t){t=i(t);var e=t[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},h.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=h},"3a7b":function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").findIndex,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("findIndex",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},"3a7c":function(t,e,r){(function(t){function r(t){return Array.isArray?Array.isArray(t):"[object Array]"===v(t)}function n(t){return"boolean"===typeof t}function i(t){return null===t}function o(t){return null==t}function a(t){return"number"===typeof t}function s(t){return"string"===typeof t}function u(t){return"symbol"===typeof t}function h(t){return void 0===t}function f(t){return"[object RegExp]"===v(t)}function l(t){return"object"===typeof t&&null!==t}function c(t){return"[object Date]"===v(t)}function d(t){return"[object Error]"===v(t)||t instanceof Error}function p(t){return"function"===typeof t}function m(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function v(t){return Object.prototype.toString.call(t)}e.isArray=r,e.isBoolean=n,e.isNull=i,e.isNullOrUndefined=o,e.isNumber=a,e.isString=s,e.isSymbol=u,e.isUndefined=h,e.isRegExp=f,e.isObject=l,e.isDate=c,e.isError=d,e.isFunction=p,e.isPrimitive=m,e.isBuffer=t.isBuffer}).call(this,r("b639").Buffer)},"3bbe":function(t,e,r){var n=r("861d");t.exports=function(t){if(!n(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3c5d":function(t,e,r){"use strict";var n=r("ebb5"),i=r("50c4"),o=r("182d"),a=r("7b0b"),s=r("d039"),u=n.aTypedArray,h=n.exportTypedArrayMethod,f=s((function(){new Int8Array(1).set({})}));h("set",(function(t){u(this);var e=o(arguments.length>1?arguments[1]:void 0,1),r=this.length,n=a(t),s=i(n.length),h=0;if(s+e>r)throw RangeError("Wrong length");while(h=r.length?{value:void 0,done:!0}:(t=n(r,i),e.index+=t.length,{value:t,done:!1})}))},"3daf":function(t,e,r){"use strict";var n=r("f3a3"),i=r("80af"),o=r("3fb5"),a=r("ea53"),s=n.assert;function u(t){this.twisted=1!==(0|t.a),this.mOneA=this.twisted&&-1===(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1===(0|t.c)}function h(t,e,r,n,o){a.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},u.prototype.pointFromX=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(h,a.BasePoint),u.prototype.pointFromJSON=function(t){return h.fromJSON(this,t)},u.prototype.point=function(t,e,r,n){return new h(this,t,e,r,n)},h.fromJSON=function(t,e){return new h(t,e[0],e[1],e[2])},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},h.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),a=o.redSub(r),s=n.redSub(e),u=i.redMul(a),h=o.redMul(s),f=i.redMul(s),l=a.redMul(o);return this.curve.point(u,h,l,f)},h.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=this.curve._mulA(i),s=a.redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(a.redSub(o)),r=s.redSqr().redSub(s).redSub(s);else{var u=this.z.redSqr(),h=s.redSub(u).redISub(u);t=n.redSub(i).redISub(o).redMul(h),e=s.redMul(a.redSub(o)),r=s.redMul(h)}}else{a=i.redAdd(o),u=this.curve._mulC(this.z).redSqr(),h=a.redSub(u).redSub(u);t=this.curve._mulC(n.redISub(a)).redMul(h),e=this.curve._mulC(a).redMul(i.redISub(o)),r=a.redMul(h)}return this.curve.point(t,e,r)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},h.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(e),h=o.redMul(a),f=s.redMul(u),l=o.redMul(u),c=a.redMul(s);return this.curve.point(h,f,c,l)},h.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),h=i.redAdd(s),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),l=n.redMul(u).redMul(f);return this.curve.twisted?(e=n.redMul(h).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(h)):(e=n.redMul(h).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(h)),this.curve.point(l,e,r)},h.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},h.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},h.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},h.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},h.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()},h.prototype.getY=function(){return this.normalize(),this.y.fromRed()},h.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},h.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},h.prototype.toP=h.prototype.normalize,h.prototype.mixedAdd=h.prototype.add},"3e8f":function(t,e){},"3f62":function(t,e,r){var n=r("8707").Buffer,i=n.alloc(16,0);function o(t){return[t.readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)]}function a(t){var e=n.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}s.prototype.ghash=function(t){var e=-1;while(++e0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=a(i)},s.prototype.update=function(t){var e;this.cache=n.concat([this.cache,t]);while(this.cache.length>=16)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(a([0,t,0,e])),this.state},t.exports=s},"3f8c":function(t,e){t.exports={}},"3fb5":function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},"3fcc":function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").map,o=r("4840"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod;u("map",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(s(o(t,t.constructor)))(e)}))}))},4:function(t,e){},"409b":function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},4111:function(t,e,r){"use strict";var n=r("7f7a");e.certificate=r("56b5");var i=n.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=i;var o=n.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=n.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=u;var h=n.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=h;var f=n.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=f,e.DSAparam=n.define("DSAparam",(function(){this.int()}));var l=n.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(c),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=l;var c=n.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=n.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},4136:function(t,e,r){"use strict";var n=e;n.base=r("ea53"),n.short=r("3300"),n.mont=r("676f"),n.edwards=r("3daf")},4186:function(t,e,r){"use strict";(function(e){var n;function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r("ee93"),a=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),h=Symbol("ended"),f=Symbol("lastPromise"),l=Symbol("handlePromise"),c=Symbol("stream");function d(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var r=t[c].read();null!==r&&(t[f]=null,t[a]=null,t[s]=null,e(d(r,!1)))}}function m(t){e.nextTick(p,t)}function v(t,e){return function(r,n){t.then((function(){e[h]?r(d(void 0,!0)):e[l](r,n)}),n)}}var b=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((n={get stream(){return this[c]},next:function(){var t=this,r=this[u];if(null!==r)return Promise.reject(r);if(this[h])return Promise.resolve(d(void 0,!0));if(this[c].destroyed)return new Promise((function(r,n){e.nextTick((function(){t[u]?n(t[u]):r(d(void 0,!0))}))}));var n,i=this[f];if(i)n=new Promise(v(i,this));else{var o=this[c].read();if(null!==o)return Promise.resolve(d(o,!1));n=new Promise(this[l])}return this[f]=n,n}},i(n,Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var t=this;return new Promise((function(e,r){t[c].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),b),y=function(t){var e,r=Object.create(g,(e={},i(e,c,{value:t,writable:!0}),i(e,a,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,u,{value:null,writable:!0}),i(e,h,{value:t._readableState.endEmitted,writable:!0}),i(e,l,{value:function(t,e){var n=r[c].read();n?(r[f]=null,r[a]=null,r[s]=null,t(d(n,!1))):(r[a]=t,r[s]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[s];return null!==e&&(r[f]=null,r[a]=null,r[s]=null,e(t)),void(r[u]=t)}var n=r[a];null!==n&&(r[f]=null,r[a]=null,r[s]=null,n(d(void 0,!0))),r[h]=!0})),t.on("readable",m.bind(null,r)),r};t.exports=y}).call(this,r("4362"))},"41df":function(t,e,r){var n=e;n.Reporter=r("d1c8").Reporter,n.DecoderBuffer=r("6283").DecoderBuffer,n.EncoderBuffer=r("6283").EncoderBuffer,n.Node=r("8360")},4228:function(t,e,r){var n=r("82f0"),i=r("8707").Buffer,o=r("bac2"),a=r("09f5"),s=r("6430"),u=r("39f5"),h=r("ae84"),f=r("3fb5");function l(t,e,r){s.call(this),this._cache=new c,this._last=void 0,this._cipher=new u.AES(e),this._prev=i.from(r),this._mode=t,this._autopadding=!0}function c(){this.cache=i.allocUnsafe(0)}function d(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var r=-1;while(++r16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},c.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=m,e.createDecipheriv=p},4250:function(t,e,r){"use strict";(function(e,n){var i;t.exports=$,$.ReadableState=R;r("faa1").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=r("5bbb"),s=r("b639").Buffer,u=e.Uint8Array||function(){};function h(t){return s.from(t)}function f(t){return s.isBuffer(t)||t instanceof u}var l,c=r(0);l=c&&c.debuglog?c.debuglog("stream"):function(){};var d,p,m,v=r("96a5"),b=r("493f"),g=r("b9b5"),y=g.getHighWaterMark,w=r("9d8a").codes,M=w.ERR_INVALID_ARG_TYPE,_=w.ERR_STREAM_PUSH_AFTER_EOF,E=w.ERR_METHOD_NOT_IMPLEMENTED,S=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r("3fb5")($,a);var A=b.errorOrDestroy,k=["error","close","destroy","pause","resume"];function x(t,e,r){if("function"===typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}function R(t,e,n){i=i||r("e666"),t=t||{},"boolean"!==typeof n&&(n=e instanceof i),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=y(this,t,"readableHighWaterMark",n),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=r("7d72").StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function $(t){if(i=i||r("e666"),!(this instanceof $))return new $(t);var e=this instanceof i;this._readableState=new R(t,this,e),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function T(t,e,r,n,i){l("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,N(t,a);else if(i||(o=O(a,e)),o)A(t,o);else if(a.objectMode||e&&e.length>0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),n)a.endEmitted?A(t,new S):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):j(t,a)):I(t,a,e,!1)}else n||(a.reading=!1,j(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function L(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=B(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function N(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,D(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,n.nextTick(D,t))}function D(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function j(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function H(t,e){e.resumeScheduled||(e.resumeScheduled=!0,n.nextTick(K,t,e))}function K(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function G(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,n.nextTick(Y,e,t))}function Y(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function V(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?G(this):P(this),null;if(t=L(t,e),0===t&&e.ended)return 0===e.length&&G(this),null;var n,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t0?Z(t,e):null,null===n?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&G(this)),null!==n&&this.emit("data",n),n},$.prototype._read=function(t){A(this,new E("_read()"))},$.prototype.pipe=function(t,e){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t);break}i.pipesCount+=1,l("pipe count=%d opts=%j",i.pipesCount,e);var a=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}i.endEmitted?n.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",v),t.removeListener("finish",b),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var n=t.write(e);l("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==V(i.pipes,t))&&!c&&(l("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function v(){t.removeListener("finish",b),g()}function b(){l("onfinish"),t.removeListener("close",v),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),x(t,"error",m),t.once("close",v),t.once("finish",b),t.emit("pipe",r),i.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,l("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&n.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,H(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){if(l("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var o=e.push(i);o||(n=!0,t.pause())}})),t)void 0===this[i]&&"function"===typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},4930:function(t,e,r){var n=r("d039");t.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},"493f":function(t,e,r){"use strict";(function(e){function r(t,r){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(r?r(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(a,this,t)):e.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!r&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(i,o):(o._writableState.errorEmitted=!0,e.nextTick(n,o,t)):e.nextTick(n,o,t):r?(e.nextTick(i,o),r(t)):e.nextTick(i,o)})),this)}function n(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(t,e){t.emit("error",e)}function s(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}t.exports={destroy:r,undestroy:o,errorOrDestroy:s}}).call(this,r("4362"))},"49ce":function(t,e,r){"use strict";(function(e,n){function i(t){var e=this;this.next=null,this.entry=null,this.finish=function(){K(e,t)}}var o;t.exports=R,R.WritableState=x;var a={deprecate:r("b7d1")},s=r("f12a"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("9019"),p=r("05f0"),m=p.getHighWaterMark,v=r("d113").codes,b=v.ERR_INVALID_ARG_TYPE,g=v.ERR_METHOD_NOT_IMPLEMENTED,y=v.ERR_MULTIPLE_CALLBACK,w=v.ERR_STREAM_CANNOT_PIPE,M=v.ERR_STREAM_DESTROYED,_=v.ERR_STREAM_NULL_VALUES,E=v.ERR_STREAM_WRITE_AFTER_END,S=v.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function k(){}function x(t,e,n){o=o||r("5e7d"),t=t||{},"boolean"!==typeof n&&(n=e instanceof o),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){N(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function R(t){o=o||r("5e7d");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new x(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new E;A(t,r),n.nextTick(e,r)}function T(t,e,r,i){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new b("chunk",["string","Buffer"],r)),!o||(A(t,o),n.nextTick(i,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,n,i,o){if(!r){var a=I(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var n=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||H(this,n,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"4a9b":function(t,e,r){var n=r("74e8");n("Float64",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},"4d64":function(t,e,r){var n=r("fc6a"),i=r("50c4"),o=r("23cb"),a=function(t){return function(e,r,a){var s,u=n(e),h=i(u.length),f=o(a,h);if(t&&r!=r){while(h>f)if(s=u[f++],s!=s)return!0}else for(;h>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4dd0":function(t,e,r){var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m,a=r("ae84"),s=r("fda6"),u=r("8707").Buffer;t.exports=function(t,e){var r,h=t.toString(),f=h.match(n);if(f){var l="aes"+f[1],c=u.from(f[2],"hex"),d=u.from(f[3].replace(/[\r\n]/g,""),"base64"),p=a(e,c.slice(0,8),parseInt(f[1],10)).key,m=[],v=s.createDecipheriv(l,p,c);m.push(v.update(d)),m.push(v.final()),r=u.concat(m)}else{var b=h.match(o);r=new u(b[2].replace(/[\r\n]/g,""),"base64")}var g=h.match(i)[1];return{tag:g,data:r}}},"4de4":function(t,e,r){"use strict";var n=r("23e7"),i=r("b727").filter,o=r("1dde"),a=r("ae40"),s=o("filter"),u=a("filter");n({target:"Array",proto:!0,forced:!s||!u},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,r){"use strict";var n=r("0366"),i=r("7b0b"),o=r("9bdd"),a=r("e95a"),s=r("50c4"),u=r("8418"),h=r("35a1");t.exports=function(t){var e,r,f,l,c,d,p=i(t),m="function"==typeof this?this:Array,v=arguments.length,b=v>1?arguments[1]:void 0,g=void 0!==b,y=h(p),w=0;if(g&&(b=n(b,v>2?arguments[2]:void 0,2)),void 0==y||m==Array&&a(y))for(e=s(p.length),r=new m(e);e>w;w++)d=g?b(p[w],w):p[w],u(r,w,d);else for(l=y.call(p),c=l.next,r=new m;!(f=c.call(l)).done;w++)d=g?o(l,b,[f.value,w],!0):f.value,u(r,w,d);return r.length=w,r}},"4e2b":function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5"),o=r("5ee7"),a=r("0184");function s(){this.tmp=new Array(2),this.keys=null}function u(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}i(u,a),t.exports=u,u.create=function(t){return new u(t)};var h=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(t,e){t.keys=new Array(32),n.equal(e.length,this.blockSize,"Invalid key length");var r=o.readUInt32BE(e,0),i=o.readUInt32BE(e,4);o.pc1(r,i,t.tmp,0),r=t.tmp[0],i=t.tmp[1];for(var a=0;a>>1];r=o.r28shl(r,s),i=o.r28shl(i,s),o.pc2(r,i,t.keys,a)}},u.prototype._update=function(t,e,r,n){var i=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(r,a,n),o.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n>>0,a=d}o.rip(s,a,n,i)},u.prototype._decrypt=function(t,e,r,n,i){for(var a=r,s=e,u=t.keys.length-2;u>=0;u-=2){var h=t.keys[u],f=t.keys[u+1];o.expand(a,t.tmp,0),h^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(h,f),c=o.permute(l),d=a;a=(s^c)>>>0,s=d}o.rip(a,s,n,i)}},"4ef2":function(t,e,r){"use strict";r.r(e);var n=r("a692"),i=r.n(n);r("a4d3"),r("e01a"),r("d3b7"),r("d28b"),r("3ca3"),r("ddb0"),r("fb6a"),r("b0c0"),r("a630");function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==r["return"]||r["return"]()}finally{if(u)throw o}}}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var r=0;r4&&void 0!==arguments[4]?arguments[4]:1500;null===this.db&&this.createDb();var o=Object.keys(e),a=e[o[0]].length;this.db.exec(w.getCreateStatement(t,e));var u=w.generateChunks(e,i),h=Math.ceil(a/i),f=0,l=w.getInsertStmt(t,o),c=this.db.prepare(l);n({progress:0,id:r});var d,p=s(u);try{for(p.s();!(d=p.n()).done;){var m=d.value;this.db.exec("BEGIN");var v,b=s(m);try{for(b.s();!(v=b.n()).done;){var g=v.value;c.run(g)}}catch(y){b.e(y)}finally{b.f()}this.db.exec("COMMIT"),f++,n({progress:f/h*100,id:r})}}catch(y){p.e(y)}finally{p.f()}return{finish:!0}}},{key:"export",value:function(){return this.db.export()}},{key:"close",value:function(){return this.db&&this.db.close(),{finished:!0}}}],[{key:"build",value:function(){return _.then((function(){return new t}))}}]),t}();const A=S.build();function k(t){const e=this;switch(e&&e.action){case"open":return t.open(e.buffer);case"reopen":return t.open(t.export());case"exec":return t.exec(e.sql,e.params);case"import":return t.import(e.tabName,e.data,e.progressCounterId,postMessage);case"export":return t.export();case"close":return t.close();default:throw new Error("Invalid action : "+(e&&e.action))}}function x(t){return{error:t.message}}i()(t=>A.then(k.bind(t)).catch(x))},"4fd1":function(t,e,r){var n=r("3fb5"),i=r("b672"),o=r("8707").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function h(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function c(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function v(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function b(t,e){return t>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,g=0|this._gh,y=0|this._hh,w=0|this._al,M=0|this._bl,_=0|this._cl,E=0|this._dl,S=0|this._el,A=0|this._fl,k=0|this._gl,x=0|this._hl,R=0;R<32;R+=2)e[R]=t.readInt32BE(4*R),e[R+1]=t.readInt32BE(4*R+4);for(;R<160;R+=2){var $=e[R-30],T=e[R-30+1],I=d($,T),O=p(T,$);$=e[R-4],T=e[R-4+1];var C=m($,T),B=v(T,$),L=e[R-14],N=e[R-14+1],P=e[R-32],D=e[R-32+1],j=O+N|0,q=I+L+b(j,O)|0;j=j+B|0,q=q+C+b(j,B)|0,j=j+D|0,q=q+P+b(j,D)|0,e[R]=q,e[R+1]=j}for(var U=0;U<160;U+=2){q=e[U],j=e[U+1];var F=f(r,n,i),z=f(w,M,_),H=l(r,w),K=l(w,r),W=c(s,S),Z=c(S,s),G=a[U],Y=a[U+1],V=h(s,u,g),X=h(S,A,k),J=x+Z|0,Q=y+W+b(J,x)|0;J=J+X|0,Q=Q+V+b(J,X)|0,J=J+Y|0,Q=Q+G+b(J,Y)|0,J=J+j|0,Q=Q+q+b(J,j)|0;var tt=K+z|0,et=H+F+b(tt,K)|0;y=g,x=k,g=u,k=A,u=s,A=S,S=E+J|0,s=o+Q+b(S,E)|0,o=i,E=_,i=n,_=M,n=r,M=w,w=J+tt|0,r=Q+et+b(w,J)|0}this._al=this._al+w|0,this._bl=this._bl+M|0,this._cl=this._cl+_|0,this._dl=this._dl+E|0,this._el=this._el+S|0,this._fl=this._fl+A|0,this._gl=this._gl+k|0,this._hl=this._hl+x|0,this._ah=this._ah+r+b(this._al,w)|0,this._bh=this._bh+n+b(this._bl,M)|0,this._ch=this._ch+i+b(this._cl,_)|0,this._dh=this._dh+o+b(this._dl,E)|0,this._eh=this._eh+s+b(this._el,S)|0,this._fh=this._fh+u+b(this._fl,A)|0,this._gh=this._gh+g+b(this._gl,k)|0,this._hh=this._hh+y+b(this._hl,x)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},5:function(t,e){},"50c4":function(t,e,r){var n=r("a691"),i=Math.min;t.exports=function(t){return t>0?i(n(t),9007199254740991):0}},5135:function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},5165:function(t,e,r){(function(t){var n=r("8c8a");function i(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,r){while(e._cache.length>s%8,t._prev=o(t._prev,r?i:a);return h}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);t=n.concat([t,n.from([e])]);while(++i>7;return o}e.encrypt=function(t,e,r){var o=e.length,a=n.allocUnsafe(o),s=-1;while(++s]*>)/g,m=/\$([$&'`]|\d\d?)/g,v=function(t){return void 0===t?t:String(t)};n("replace",2,(function(t,e,r,n){var b=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=n.REPLACE_KEEPS_$0,y=b?"$":"$0";return[function(r,n){var i=u(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,i,n):e.call(String(i),r,n)},function(t,n){if(!b&&g||"string"===typeof n&&-1===n.indexOf(y)){var o=r(e,t,this,n);if(o.done)return o.value}var u=i(t),d=String(this),p="function"===typeof n;p||(n=String(n));var m=u.global;if(m){var M=u.unicode;u.lastIndex=0}var _=[];while(1){var E=f(u,d);if(null===E)break;if(_.push(E),!m)break;var S=String(E[0]);""===S&&(u.lastIndex=h(d,a(u.lastIndex),M))}for(var A="",k=0,x=0;x<_.length;x++){E=_[x];for(var R=String(E[0]),$=l(c(s(E.index),d.length),0),T=[],I=1;I=k&&(A+=d.slice(k,$)+B,k=$+R.length)}return A+d.slice(k)}];function w(t,r,n,i,a,s){var u=n+t.length,h=i.length,f=m;return void 0!==a&&(a=o(a),f=p),e.call(s,f,(function(e,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,n);case"'":return r.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return e;if(f>h){var l=d(f/10);return 0===l?e:l<=h?void 0===i[l-1]?o.charAt(1):i[l-1]+o.charAt(1):e}s=i[f-1]}return void 0===s?"":s}))}}))},5377:function(t,e,r){var n=r("83ab"),i=r("9bf2"),o=r("ad6d"),a=r("9f7f").UNSUPPORTED_Y;n&&("g"!=/./g.flags||a)&&i.f(RegExp.prototype,"flags",{configurable:!0,get:o})},"561d":function(t,e,r){(function(e){var n=r("48e6"),i=r("7a10"),o=new i,a=new n(24),s=new n(11),u=new n(10),h=new n(3),f=new n(7),l=r("58a2"),c=r("11dc");function d(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._pub=new n(t),this}function p(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._priv=new n(t),this}t.exports=b;var m={};function v(t,e){var r=e.toString("hex"),n=[r,t.toString(16)].join("_");if(n in m)return m[n];var i,c=0;if(t.isEven()||!l.simpleSieve||!l.fermatTest(t)||!o.test(t))return c+=1,c+="02"===r||"05"===r?8:4,m[n]=c,c;switch(o.test(t.shrn(1))||(c+=2),r){case"02":t.mod(a).cmp(s)&&(c+=8);break;case"05":i=t.mod(u),i.cmp(h)&&i.cmp(f)&&(c+=8);break;default:c+=4}return m[n]=c,c}function b(t,e,r){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=d,this.setPrivateKey=p):this._primeCode=8}function g(t,r){var n=new e(t.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!==typeof this._primeCode&&(this._primeCode=v(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(c(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(t){t=new n(t),t=t.toRed(this._prime);var r=t.redPow(this._priv).fromRed(),i=new e(r.toArray()),o=this.getPrime();if(i.lengtht)r.ishrn(1);if(r.isEven()&&r.iadd(u),r.testn(1)||r.iadd(h),e.cmp(h)){if(!e.cmp(f))while(r.mod(l).cmp(c))r.iadd(p)}else while(r.mod(o).cmp(d))r.iadd(p);if(a=r.shrn(1),b(a)&&b(r)&&g(a)&&g(r)&&s.test(a)&&s.test(r))return r}}},"58a8":function(t,e,r){var n=r("1d80"),i=r("5899"),o="["+i+"]",a=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),u=function(t){return function(e){var r=String(n(e));return 1&t&&(r=r.replace(a,"")),2&t&&(r=r.replace(s,"")),r}};t.exports={start:u(1),end:u(2),trim:u(3)}},5919:function(t,e,r){"use strict";e.sha1=r("13e2"),e.sha224=r("07f2"),e.sha256=r("6eed"),e.sha384=r("8b95"),e.sha512=r("b525")},"5a34":function(t,e,r){var n=r("44e7");t.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},"5a76":function(t,e,r){var n=r("f576");t.exports=function(t){return(new n).update(t).digest()}},"5bbb":function(t,e,r){t.exports=r("faa1").EventEmitter},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5cc6":function(t,e,r){var n=r("74e8");n("Uint8",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},"5e1a":function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=r("8707").Buffer,o=r(3);function a(t,e,r){t.copy(e,r)}t.exports=function(){function t(){n(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;var e=i.allocUnsafe(t>>>0),r=this.head,n=0;while(r)a(r.data,e,n),n+=r.data.length,r=r.next;return e},t}(),o&&o.inspect&&o.inspect.custom&&(t.exports.prototype[o.inspect.custom]=function(){var t=o.inspect({length:this.length});return this.constructor.name+" "+t})},"5e7d":function(t,e,r){"use strict";(function(e){var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var i=r("cf35"),o=r("49ce");r("3fb5")(h,i);for(var a=n(o.prototype),s=0;s>>0},e.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},e.ip=function(t,e,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},e.rip=function(t,e,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=e>>>s+a&1,i<<=1,i|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.pc1=function(t,e,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.r28shl=function(t,e){return t<>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,r,i){for(var o=0,a=0,s=n.length>>>1,u=0;u>>n[u]&1;for(u=s;u>>n[u]&1;r[i+0]=o>>>0,r[i+1]=a>>>0},e.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var r=0,n=0;n<4;n++){var o=t>>>18-6*n&63,a=i[64*n+o];r<<=4,r|=a}for(n=0;n<4;n++){o=e>>>18-6*n&63,a=i[256+64*n+o];r<<=4,r|=a}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},e.padSplit=function(t,e,r){var n=t.toString(2);while(n.length>8&255]},D=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},j=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},q=function(t){return B(t,23,4)},U=function(t){return B(t,52,8)},F=function(t,e){b(t[A],e,{get:function(){return M(this)[e]}})},z=function(t,e,r,n){var i=c(r),o=M(t);if(i+e>o.byteLength)throw C(x);var a=M(o.buffer).bytes,s=i+o.byteOffset,u=a.slice(s,s+e);return n?u:u.reverse()},H=function(t,e,r,n,i,o){var a=c(r),s=M(t);if(a+e>s.byteLength)throw C(x);for(var u=M(s.buffer).bytes,h=a+s.byteOffset,f=n(+i),l=0;lG;)(K=Z[G++])in $||a($,K,R[K]);W.constructor=$}m&&p(I)!==O&&m(I,O);var Y=new T(new $(2)),V=I.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||s(I,{setInt8:function(t,e){V.call(this,t,e<<24>>24)},setUint8:function(t,e){V.call(this,t,e<<24>>24)}},{unsafe:!0})}else $=function(t){h(this,$,E);var e=c(t);_(this,{bytes:g.call(new Array(e),0),byteLength:e}),i||(this.byteLength=e)},T=function(t,e,r){h(this,T,S),h(t,$,S);var n=M(t).byteLength,o=f(e);if(o<0||o>n)throw C("Wrong offset");if(r=void 0===r?n-o:l(r),o+r>n)throw C(k);_(this,{buffer:t,byteLength:r,byteOffset:o}),i||(this.buffer=t,this.byteLength=r,this.byteOffset=o)},i&&(F($,"byteLength"),F(T,"buffer"),F(T,"byteLength"),F(T,"byteOffset")),s(T[A],{getInt8:function(t){return z(this,1,t)[0]<<24>>24},getUint8:function(t){return z(this,1,t)[0]},getInt16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return j(z(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return j(z(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return L(z(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return L(z(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){H(this,1,t,N,e)},setUint8:function(t,e){H(this,1,t,N,e)},setInt16:function(t,e){H(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){H(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){H(this,4,t,D,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){H(this,4,t,D,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){H(this,4,t,q,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){H(this,8,t,U,e,arguments.length>2?arguments[2]:void 0)}});y($,E),y(T,S),t.exports={ArrayBuffer:$,DataView:T}},6283:function(t,e,r){var n=r("3fb5"),i=r("41df").Reporter,o=r("b639").Buffer;function a(t,e){i.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof s||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"===typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"===typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}n(a,i),e.DecoderBuffer=a,a.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},a.prototype.restore=function(t){var e=new a(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,i.prototype.restore.call(this,t.reporter),e},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},a.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},a.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.prototype.join=function(t,e){return t||(t=new o(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"===typeof this.value?t[e]=this.value:"string"===typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},62831:function(t,e,r){var n; +var n=r("b639"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"===typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},"39f5":function(t,e,r){var n=r("8707").Buffer;function i(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,r=new Array(e),i=0;i>>24]^f[p>>>16&255]^l[m>>>8&255]^c[255&v]^e[b++],a=h[p>>>24]^f[m>>>16&255]^l[v>>>8&255]^c[255&d]^e[b++],s=h[m>>>24]^f[v>>>16&255]^l[d>>>8&255]^c[255&p]^e[b++],u=h[v>>>24]^f[d>>>16&255]^l[p>>>8&255]^c[255&m]^e[b++],d=o,p=a,m=s,v=u;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&v])^e[b++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[v>>>8&255]<<8|n[255&d])^e[b++],s=(n[m>>>24]<<24|n[v>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[b++],u=(n[v>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[b++],o>>>=0,a>>>=0,s>>>=0,u>>>=0,[o,a,s,u]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var h=s^s<<1^s<<2^s<<3^s<<4;h=h>>>8^255&h^99,r[a]=h,n[h]=a;var f=t[a],l=t[f],c=t[l],d=257*t[h]^16843008*h;i[0][a]=d<<24|d>>>8,i[1][a]=d<<16|d>>>16,i[2][a]=d<<8|d>>>24,i[3][a]=d,d=16843009*c^65537*l^257*f^16843008*a,o[0][h]=d<<24|d>>>8,o[1][h]=d<<16|d>>>16,o[2][h]=d<<8|d>>>24,o[3][h]=d,0===a?a=s=1:(a=f^t[t[t[c^f]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function h(t){this._key=i(t),this._reset()}h.blockSize=16,h.keySize=32,h.prototype.blockSize=h.blockSize,h.prototype.keySize=h.keySize,h.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e===4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-e]^a}for(var h=[],f=0;f>>24]]^u.INV_SUB_MIX[1][u.SBOX[c>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[c>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&c]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=h},h.prototype.encryptBlockRaw=function(t){return t=i(t),a(t,this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},h.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},h.prototype.decryptBlock=function(t){t=i(t);var e=t[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},h.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=h},"3a7b":function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").findIndex,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("findIndex",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},"3a7c":function(t,e,r){(function(t){function r(t){return Array.isArray?Array.isArray(t):"[object Array]"===v(t)}function n(t){return"boolean"===typeof t}function i(t){return null===t}function o(t){return null==t}function a(t){return"number"===typeof t}function s(t){return"string"===typeof t}function u(t){return"symbol"===typeof t}function h(t){return void 0===t}function f(t){return"[object RegExp]"===v(t)}function l(t){return"object"===typeof t&&null!==t}function c(t){return"[object Date]"===v(t)}function d(t){return"[object Error]"===v(t)||t instanceof Error}function p(t){return"function"===typeof t}function m(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function v(t){return Object.prototype.toString.call(t)}e.isArray=r,e.isBoolean=n,e.isNull=i,e.isNullOrUndefined=o,e.isNumber=a,e.isString=s,e.isSymbol=u,e.isUndefined=h,e.isRegExp=f,e.isObject=l,e.isDate=c,e.isError=d,e.isFunction=p,e.isPrimitive=m,e.isBuffer=t.isBuffer}).call(this,r("b639").Buffer)},"3bbe":function(t,e,r){var n=r("861d");t.exports=function(t){if(!n(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3c5d":function(t,e,r){"use strict";var n=r("ebb5"),i=r("50c4"),o=r("182d"),a=r("7b0b"),s=r("d039"),u=n.aTypedArray,h=n.exportTypedArrayMethod,f=s((function(){new Int8Array(1).set({})}));h("set",(function(t){u(this);var e=o(arguments.length>1?arguments[1]:void 0,1),r=this.length,n=a(t),s=i(n.length),h=0;if(s+e>r)throw RangeError("Wrong length");while(h=r.length?{value:void 0,done:!0}:(t=n(r,i),e.index+=t.length,{value:t,done:!1})}))},"3daf":function(t,e,r){"use strict";var n=r("f3a3"),i=r("80af"),o=r("3fb5"),a=r("ea53"),s=n.assert;function u(t){this.twisted=1!==(0|t.a),this.mOneA=this.twisted&&-1===(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1===(0|t.c)}function h(t,e,r,n,o){a.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},u.prototype.pointFromX=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(h,a.BasePoint),u.prototype.pointFromJSON=function(t){return h.fromJSON(this,t)},u.prototype.point=function(t,e,r,n){return new h(this,t,e,r,n)},h.fromJSON=function(t,e){return new h(t,e[0],e[1],e[2])},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},h.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),a=o.redSub(r),s=n.redSub(e),u=i.redMul(a),h=o.redMul(s),f=i.redMul(s),l=a.redMul(o);return this.curve.point(u,h,l,f)},h.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=this.curve._mulA(i),s=a.redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(a.redSub(o)),r=s.redSqr().redSub(s).redSub(s);else{var u=this.z.redSqr(),h=s.redSub(u).redISub(u);t=n.redSub(i).redISub(o).redMul(h),e=s.redMul(a.redSub(o)),r=s.redMul(h)}}else{a=i.redAdd(o),u=this.curve._mulC(this.z).redSqr(),h=a.redSub(u).redSub(u);t=this.curve._mulC(n.redISub(a)).redMul(h),e=this.curve._mulC(a).redMul(i.redISub(o)),r=a.redMul(h)}return this.curve.point(t,e,r)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},h.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(e),h=o.redMul(a),f=s.redMul(u),l=o.redMul(u),c=a.redMul(s);return this.curve.point(h,f,c,l)},h.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),h=i.redAdd(s),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),l=n.redMul(u).redMul(f);return this.curve.twisted?(e=n.redMul(h).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(h)):(e=n.redMul(h).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(h)),this.curve.point(l,e,r)},h.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},h.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},h.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},h.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},h.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()},h.prototype.getY=function(){return this.normalize(),this.y.fromRed()},h.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},h.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},h.prototype.toP=h.prototype.normalize,h.prototype.mixedAdd=h.prototype.add},"3e8f":function(t,e){},"3f62":function(t,e,r){var n=r("8707").Buffer,i=n.alloc(16,0);function o(t){return[t.readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)]}function a(t){var e=n.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}s.prototype.ghash=function(t){var e=-1;while(++e0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=a(i)},s.prototype.update=function(t){var e;this.cache=n.concat([this.cache,t]);while(this.cache.length>=16)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(a([0,t,0,e])),this.state},t.exports=s},"3f8c":function(t,e){t.exports={}},"3fb5":function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},"3fcc":function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").map,o=r("4840"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod;u("map",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(s(o(t,t.constructor)))(e)}))}))},4:function(t,e){},"409b":function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},4111:function(t,e,r){"use strict";var n=r("7f7a");e.certificate=r("56b5");var i=n.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=i;var o=n.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=n.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=u;var h=n.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=h;var f=n.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=f,e.DSAparam=n.define("DSAparam",(function(){this.int()}));var l=n.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(c),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=l;var c=n.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=n.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},4136:function(t,e,r){"use strict";var n=e;n.base=r("ea53"),n.short=r("3300"),n.mont=r("676f"),n.edwards=r("3daf")},4186:function(t,e,r){"use strict";(function(e){var n;function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r("ee93"),a=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),h=Symbol("ended"),f=Symbol("lastPromise"),l=Symbol("handlePromise"),c=Symbol("stream");function d(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var r=t[c].read();null!==r&&(t[f]=null,t[a]=null,t[s]=null,e(d(r,!1)))}}function m(t){e.nextTick(p,t)}function v(t,e){return function(r,n){t.then((function(){e[h]?r(d(void 0,!0)):e[l](r,n)}),n)}}var b=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((n={get stream(){return this[c]},next:function(){var t=this,r=this[u];if(null!==r)return Promise.reject(r);if(this[h])return Promise.resolve(d(void 0,!0));if(this[c].destroyed)return new Promise((function(r,n){e.nextTick((function(){t[u]?n(t[u]):r(d(void 0,!0))}))}));var n,i=this[f];if(i)n=new Promise(v(i,this));else{var o=this[c].read();if(null!==o)return Promise.resolve(d(o,!1));n=new Promise(this[l])}return this[f]=n,n}},i(n,Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var t=this;return new Promise((function(e,r){t[c].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),b),y=function(t){var e,r=Object.create(g,(e={},i(e,c,{value:t,writable:!0}),i(e,a,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,u,{value:null,writable:!0}),i(e,h,{value:t._readableState.endEmitted,writable:!0}),i(e,l,{value:function(t,e){var n=r[c].read();n?(r[f]=null,r[a]=null,r[s]=null,t(d(n,!1))):(r[a]=t,r[s]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[s];return null!==e&&(r[f]=null,r[a]=null,r[s]=null,e(t)),void(r[u]=t)}var n=r[a];null!==n&&(r[f]=null,r[a]=null,r[s]=null,n(d(void 0,!0))),r[h]=!0})),t.on("readable",m.bind(null,r)),r};t.exports=y}).call(this,r("4362"))},"41df":function(t,e,r){var n=e;n.Reporter=r("d1c8").Reporter,n.DecoderBuffer=r("6283").DecoderBuffer,n.EncoderBuffer=r("6283").EncoderBuffer,n.Node=r("8360")},4228:function(t,e,r){var n=r("82f0"),i=r("8707").Buffer,o=r("bac2"),a=r("09f5"),s=r("6430"),u=r("39f5"),h=r("ae84"),f=r("3fb5");function l(t,e,r){s.call(this),this._cache=new c,this._last=void 0,this._cipher=new u.AES(e),this._prev=i.from(r),this._mode=t,this._autopadding=!0}function c(){this.cache=i.allocUnsafe(0)}function d(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var r=-1;while(++r16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},c.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=m,e.createDecipheriv=p},4250:function(t,e,r){"use strict";(function(e,n){var i;t.exports=$,$.ReadableState=R;r("faa1").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=r("5bbb"),s=r("b639").Buffer,u=e.Uint8Array||function(){};function h(t){return s.from(t)}function f(t){return s.isBuffer(t)||t instanceof u}var l,c=r(0);l=c&&c.debuglog?c.debuglog("stream"):function(){};var d,p,m,v=r("96a5"),b=r("493f"),g=r("b9b5"),y=g.getHighWaterMark,w=r("9d8a").codes,M=w.ERR_INVALID_ARG_TYPE,_=w.ERR_STREAM_PUSH_AFTER_EOF,E=w.ERR_METHOD_NOT_IMPLEMENTED,S=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r("3fb5")($,a);var A=b.errorOrDestroy,k=["error","close","destroy","pause","resume"];function x(t,e,r){if("function"===typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}function R(t,e,n){i=i||r("e666"),t=t||{},"boolean"!==typeof n&&(n=e instanceof i),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=y(this,t,"readableHighWaterMark",n),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=r("7d72").StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function $(t){if(i=i||r("e666"),!(this instanceof $))return new $(t);var e=this instanceof i;this._readableState=new R(t,this,e),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function T(t,e,r,n,i){l("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,N(t,a);else if(i||(o=O(a,e)),o)A(t,o);else if(a.objectMode||e&&e.length>0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),n)a.endEmitted?A(t,new S):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):j(t,a)):I(t,a,e,!1)}else n||(a.reading=!1,j(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function L(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=B(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function N(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,D(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,n.nextTick(D,t))}function D(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function j(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function H(t,e){e.resumeScheduled||(e.resumeScheduled=!0,n.nextTick(K,t,e))}function K(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function G(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,n.nextTick(Y,e,t))}function Y(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function V(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?G(this):P(this),null;if(t=L(t,e),0===t&&e.ended)return 0===e.length&&G(this),null;var n,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t0?Z(t,e):null,null===n?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&G(this)),null!==n&&this.emit("data",n),n},$.prototype._read=function(t){A(this,new E("_read()"))},$.prototype.pipe=function(t,e){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t);break}i.pipesCount+=1,l("pipe count=%d opts=%j",i.pipesCount,e);var a=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}i.endEmitted?n.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",v),t.removeListener("finish",b),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var n=t.write(e);l("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==V(i.pipes,t))&&!c&&(l("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function v(){t.removeListener("finish",b),g()}function b(){l("onfinish"),t.removeListener("close",v),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),x(t,"error",m),t.once("close",v),t.once("finish",b),t.emit("pipe",r),i.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,l("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&n.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,H(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){if(l("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var o=e.push(i);o||(n=!0,t.pause())}})),t)void 0===this[i]&&"function"===typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},4930:function(t,e,r){var n=r("d039");t.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},"493f":function(t,e,r){"use strict";(function(e){function r(t,r){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(r?r(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(a,this,t)):e.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!r&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(i,o):(o._writableState.errorEmitted=!0,e.nextTick(n,o,t)):e.nextTick(n,o,t):r?(e.nextTick(i,o),r(t)):e.nextTick(i,o)})),this)}function n(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(t,e){t.emit("error",e)}function s(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}t.exports={destroy:r,undestroy:o,errorOrDestroy:s}}).call(this,r("4362"))},"49ce":function(t,e,r){"use strict";(function(e,n){function i(t){var e=this;this.next=null,this.entry=null,this.finish=function(){K(e,t)}}var o;t.exports=R,R.WritableState=x;var a={deprecate:r("b7d1")},s=r("f12a"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("9019"),p=r("05f0"),m=p.getHighWaterMark,v=r("d113").codes,b=v.ERR_INVALID_ARG_TYPE,g=v.ERR_METHOD_NOT_IMPLEMENTED,y=v.ERR_MULTIPLE_CALLBACK,w=v.ERR_STREAM_CANNOT_PIPE,M=v.ERR_STREAM_DESTROYED,_=v.ERR_STREAM_NULL_VALUES,E=v.ERR_STREAM_WRITE_AFTER_END,S=v.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function k(){}function x(t,e,n){o=o||r("5e7d"),t=t||{},"boolean"!==typeof n&&(n=e instanceof o),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){N(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function R(t){o=o||r("5e7d");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new x(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new E;A(t,r),n.nextTick(e,r)}function T(t,e,r,i){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new b("chunk",["string","Buffer"],r)),!o||(A(t,o),n.nextTick(i,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,n,i,o){if(!r){var a=I(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var n=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||H(this,n,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"4a9b":function(t,e,r){var n=r("74e8");n("Float64",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},"4d64":function(t,e,r){var n=r("fc6a"),i=r("50c4"),o=r("23cb"),a=function(t){return function(e,r,a){var s,u=n(e),h=i(u.length),f=o(a,h);if(t&&r!=r){while(h>f)if(s=u[f++],s!=s)return!0}else for(;h>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4dd0":function(t,e,r){var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m,a=r("ae84"),s=r("fda6"),u=r("8707").Buffer;t.exports=function(t,e){var r,h=t.toString(),f=h.match(n);if(f){var l="aes"+f[1],c=u.from(f[2],"hex"),d=u.from(f[3].replace(/[\r\n]/g,""),"base64"),p=a(e,c.slice(0,8),parseInt(f[1],10)).key,m=[],v=s.createDecipheriv(l,p,c);m.push(v.update(d)),m.push(v.final()),r=u.concat(m)}else{var b=h.match(o);r=new u(b[2].replace(/[\r\n]/g,""),"base64")}var g=h.match(i)[1];return{tag:g,data:r}}},"4de4":function(t,e,r){"use strict";var n=r("23e7"),i=r("b727").filter,o=r("1dde"),a=r("ae40"),s=o("filter"),u=a("filter");n({target:"Array",proto:!0,forced:!s||!u},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,r){"use strict";var n=r("0366"),i=r("7b0b"),o=r("9bdd"),a=r("e95a"),s=r("50c4"),u=r("8418"),h=r("35a1");t.exports=function(t){var e,r,f,l,c,d,p=i(t),m="function"==typeof this?this:Array,v=arguments.length,b=v>1?arguments[1]:void 0,g=void 0!==b,y=h(p),w=0;if(g&&(b=n(b,v>2?arguments[2]:void 0,2)),void 0==y||m==Array&&a(y))for(e=s(p.length),r=new m(e);e>w;w++)d=g?b(p[w],w):p[w],u(r,w,d);else for(l=y.call(p),c=l.next,r=new m;!(f=c.call(l)).done;w++)d=g?o(l,b,[f.value,w],!0):f.value,u(r,w,d);return r.length=w,r}},"4e2b":function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5"),o=r("5ee7"),a=r("0184");function s(){this.tmp=new Array(2),this.keys=null}function u(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}i(u,a),t.exports=u,u.create=function(t){return new u(t)};var h=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(t,e){t.keys=new Array(32),n.equal(e.length,this.blockSize,"Invalid key length");var r=o.readUInt32BE(e,0),i=o.readUInt32BE(e,4);o.pc1(r,i,t.tmp,0),r=t.tmp[0],i=t.tmp[1];for(var a=0;a>>1];r=o.r28shl(r,s),i=o.r28shl(i,s),o.pc2(r,i,t.keys,a)}},u.prototype._update=function(t,e,r,n){var i=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(r,a,n),o.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n>>0,a=d}o.rip(s,a,n,i)},u.prototype._decrypt=function(t,e,r,n,i){for(var a=r,s=e,u=t.keys.length-2;u>=0;u-=2){var h=t.keys[u],f=t.keys[u+1];o.expand(a,t.tmp,0),h^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(h,f),c=o.permute(l),d=a;a=(s^c)>>>0,s=d}o.rip(a,s,n,i)}},"4ef2":function(t,e,r){"use strict";r.r(e);var n=r("a692"),i=r.n(n);r("a4d3"),r("e01a"),r("d3b7"),r("d28b"),r("3ca3"),r("ddb0"),r("fb6a"),r("b0c0"),r("a630");function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==r["return"]||r["return"]()}finally{if(u)throw o}}}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var r=0;r4&&void 0!==arguments[4]?arguments[4]:1500;null===this.db&&this.createDb();var o=e.columns,a=e.values[o[0]].length;this.db.exec(w.getCreateStatement(t,e.values));var u=w.generateChunks(e.values,i),h=Math.ceil(a/i),f=0,l=w.getInsertStmt(t,o),c=this.db.prepare(l);n({progress:0,id:r});var d,p=s(u);try{for(p.s();!(d=p.n()).done;){var m=d.value;this.db.exec("BEGIN");var v,b=s(m);try{for(b.s();!(v=b.n()).done;){var g=v.value;c.run(g)}}catch(y){b.e(y)}finally{b.f()}this.db.exec("COMMIT"),f++,n({progress:f/h*100,id:r})}}catch(y){p.e(y)}finally{p.f()}return{finish:!0}}},{key:"export",value:function(){return this.db.export()}},{key:"close",value:function(){return this.db&&this.db.close(),{finished:!0}}}],[{key:"build",value:function(){return _.then((function(){return new t}))}}]),t}();const A=S.build();function k(t){const e=this;switch(e&&e.action){case"open":return t.open(e.buffer);case"reopen":return t.open(t.export());case"exec":return t.exec(e.sql,e.params);case"import":return t.import(e.tabName,e.data,e.progressCounterId,postMessage);case"export":return t.export();case"close":return t.close();default:throw new Error("Invalid action : "+(e&&e.action))}}function x(t){return{error:t.message}}i()(t=>A.then(k.bind(t)).catch(x))},"4fd1":function(t,e,r){var n=r("3fb5"),i=r("b672"),o=r("8707").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function h(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function c(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function v(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function b(t,e){return t>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,g=0|this._gh,y=0|this._hh,w=0|this._al,M=0|this._bl,_=0|this._cl,E=0|this._dl,S=0|this._el,A=0|this._fl,k=0|this._gl,x=0|this._hl,R=0;R<32;R+=2)e[R]=t.readInt32BE(4*R),e[R+1]=t.readInt32BE(4*R+4);for(;R<160;R+=2){var $=e[R-30],T=e[R-30+1],I=d($,T),O=p(T,$);$=e[R-4],T=e[R-4+1];var C=m($,T),B=v(T,$),L=e[R-14],N=e[R-14+1],P=e[R-32],D=e[R-32+1],j=O+N|0,q=I+L+b(j,O)|0;j=j+B|0,q=q+C+b(j,B)|0,j=j+D|0,q=q+P+b(j,D)|0,e[R]=q,e[R+1]=j}for(var U=0;U<160;U+=2){q=e[U],j=e[U+1];var F=f(r,n,i),z=f(w,M,_),H=l(r,w),K=l(w,r),W=c(s,S),Z=c(S,s),G=a[U],Y=a[U+1],V=h(s,u,g),X=h(S,A,k),J=x+Z|0,Q=y+W+b(J,x)|0;J=J+X|0,Q=Q+V+b(J,X)|0,J=J+Y|0,Q=Q+G+b(J,Y)|0,J=J+j|0,Q=Q+q+b(J,j)|0;var tt=K+z|0,et=H+F+b(tt,K)|0;y=g,x=k,g=u,k=A,u=s,A=S,S=E+J|0,s=o+Q+b(S,E)|0,o=i,E=_,i=n,_=M,n=r,M=w,w=J+tt|0,r=Q+et+b(w,J)|0}this._al=this._al+w|0,this._bl=this._bl+M|0,this._cl=this._cl+_|0,this._dl=this._dl+E|0,this._el=this._el+S|0,this._fl=this._fl+A|0,this._gl=this._gl+k|0,this._hl=this._hl+x|0,this._ah=this._ah+r+b(this._al,w)|0,this._bh=this._bh+n+b(this._bl,M)|0,this._ch=this._ch+i+b(this._cl,_)|0,this._dh=this._dh+o+b(this._dl,E)|0,this._eh=this._eh+s+b(this._el,S)|0,this._fh=this._fh+u+b(this._fl,A)|0,this._gh=this._gh+g+b(this._gl,k)|0,this._hh=this._hh+y+b(this._hl,x)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},5:function(t,e){},"50c4":function(t,e,r){var n=r("a691"),i=Math.min;t.exports=function(t){return t>0?i(n(t),9007199254740991):0}},5135:function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},5165:function(t,e,r){(function(t){var n=r("8c8a");function i(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,r){while(e._cache.length>s%8,t._prev=o(t._prev,r?i:a);return h}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);t=n.concat([t,n.from([e])]);while(++i>7;return o}e.encrypt=function(t,e,r){var o=e.length,a=n.allocUnsafe(o),s=-1;while(++s]*>)/g,m=/\$([$&'`]|\d\d?)/g,v=function(t){return void 0===t?t:String(t)};n("replace",2,(function(t,e,r,n){var b=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=n.REPLACE_KEEPS_$0,y=b?"$":"$0";return[function(r,n){var i=u(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,i,n):e.call(String(i),r,n)},function(t,n){if(!b&&g||"string"===typeof n&&-1===n.indexOf(y)){var o=r(e,t,this,n);if(o.done)return o.value}var u=i(t),d=String(this),p="function"===typeof n;p||(n=String(n));var m=u.global;if(m){var M=u.unicode;u.lastIndex=0}var _=[];while(1){var E=f(u,d);if(null===E)break;if(_.push(E),!m)break;var S=String(E[0]);""===S&&(u.lastIndex=h(d,a(u.lastIndex),M))}for(var A="",k=0,x=0;x<_.length;x++){E=_[x];for(var R=String(E[0]),$=l(c(s(E.index),d.length),0),T=[],I=1;I=k&&(A+=d.slice(k,$)+B,k=$+R.length)}return A+d.slice(k)}];function w(t,r,n,i,a,s){var u=n+t.length,h=i.length,f=m;return void 0!==a&&(a=o(a),f=p),e.call(s,f,(function(e,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,n);case"'":return r.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return e;if(f>h){var l=d(f/10);return 0===l?e:l<=h?void 0===i[l-1]?o.charAt(1):i[l-1]+o.charAt(1):e}s=i[f-1]}return void 0===s?"":s}))}}))},5377:function(t,e,r){var n=r("83ab"),i=r("9bf2"),o=r("ad6d"),a=r("9f7f").UNSUPPORTED_Y;n&&("g"!=/./g.flags||a)&&i.f(RegExp.prototype,"flags",{configurable:!0,get:o})},"561d":function(t,e,r){(function(e){var n=r("48e6"),i=r("7a10"),o=new i,a=new n(24),s=new n(11),u=new n(10),h=new n(3),f=new n(7),l=r("58a2"),c=r("11dc");function d(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._pub=new n(t),this}function p(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._priv=new n(t),this}t.exports=b;var m={};function v(t,e){var r=e.toString("hex"),n=[r,t.toString(16)].join("_");if(n in m)return m[n];var i,c=0;if(t.isEven()||!l.simpleSieve||!l.fermatTest(t)||!o.test(t))return c+=1,c+="02"===r||"05"===r?8:4,m[n]=c,c;switch(o.test(t.shrn(1))||(c+=2),r){case"02":t.mod(a).cmp(s)&&(c+=8);break;case"05":i=t.mod(u),i.cmp(h)&&i.cmp(f)&&(c+=8);break;default:c+=4}return m[n]=c,c}function b(t,e,r){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=d,this.setPrivateKey=p):this._primeCode=8}function g(t,r){var n=new e(t.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!==typeof this._primeCode&&(this._primeCode=v(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(c(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(t){t=new n(t),t=t.toRed(this._prime);var r=t.redPow(this._priv).fromRed(),i=new e(r.toArray()),o=this.getPrime();if(i.lengtht)r.ishrn(1);if(r.isEven()&&r.iadd(u),r.testn(1)||r.iadd(h),e.cmp(h)){if(!e.cmp(f))while(r.mod(l).cmp(c))r.iadd(p)}else while(r.mod(o).cmp(d))r.iadd(p);if(a=r.shrn(1),b(a)&&b(r)&&g(a)&&g(r)&&s.test(a)&&s.test(r))return r}}},"58a8":function(t,e,r){var n=r("1d80"),i=r("5899"),o="["+i+"]",a=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),u=function(t){return function(e){var r=String(n(e));return 1&t&&(r=r.replace(a,"")),2&t&&(r=r.replace(s,"")),r}};t.exports={start:u(1),end:u(2),trim:u(3)}},5919:function(t,e,r){"use strict";e.sha1=r("13e2"),e.sha224=r("07f2"),e.sha256=r("6eed"),e.sha384=r("8b95"),e.sha512=r("b525")},"5a34":function(t,e,r){var n=r("44e7");t.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},"5a76":function(t,e,r){var n=r("f576");t.exports=function(t){return(new n).update(t).digest()}},"5bbb":function(t,e,r){t.exports=r("faa1").EventEmitter},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5cc6":function(t,e,r){var n=r("74e8");n("Uint8",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},"5e1a":function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=r("8707").Buffer,o=r(3);function a(t,e,r){t.copy(e,r)}t.exports=function(){function t(){n(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;var e=i.allocUnsafe(t>>>0),r=this.head,n=0;while(r)a(r.data,e,n),n+=r.data.length,r=r.next;return e},t}(),o&&o.inspect&&o.inspect.custom&&(t.exports.prototype[o.inspect.custom]=function(){var t=o.inspect({length:this.length});return this.constructor.name+" "+t})},"5e7d":function(t,e,r){"use strict";(function(e){var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var i=r("cf35"),o=r("49ce");r("3fb5")(h,i);for(var a=n(o.prototype),s=0;s>>0},e.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},e.ip=function(t,e,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},e.rip=function(t,e,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=e>>>s+a&1,i<<=1,i|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.pc1=function(t,e,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.r28shl=function(t,e){return t<>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,r,i){for(var o=0,a=0,s=n.length>>>1,u=0;u>>n[u]&1;for(u=s;u>>n[u]&1;r[i+0]=o>>>0,r[i+1]=a>>>0},e.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var r=0,n=0;n<4;n++){var o=t>>>18-6*n&63,a=i[64*n+o];r<<=4,r|=a}for(n=0;n<4;n++){o=e>>>18-6*n&63,a=i[256+64*n+o];r<<=4,r|=a}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},e.padSplit=function(t,e,r){var n=t.toString(2);while(n.length>8&255]},D=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},j=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},q=function(t){return B(t,23,4)},U=function(t){return B(t,52,8)},F=function(t,e){b(t[A],e,{get:function(){return M(this)[e]}})},z=function(t,e,r,n){var i=c(r),o=M(t);if(i+e>o.byteLength)throw C(x);var a=M(o.buffer).bytes,s=i+o.byteOffset,u=a.slice(s,s+e);return n?u:u.reverse()},H=function(t,e,r,n,i,o){var a=c(r),s=M(t);if(a+e>s.byteLength)throw C(x);for(var u=M(s.buffer).bytes,h=a+s.byteOffset,f=n(+i),l=0;lG;)(K=Z[G++])in $||a($,K,R[K]);W.constructor=$}m&&p(I)!==O&&m(I,O);var Y=new T(new $(2)),V=I.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||s(I,{setInt8:function(t,e){V.call(this,t,e<<24>>24)},setUint8:function(t,e){V.call(this,t,e<<24>>24)}},{unsafe:!0})}else $=function(t){h(this,$,E);var e=c(t);_(this,{bytes:g.call(new Array(e),0),byteLength:e}),i||(this.byteLength=e)},T=function(t,e,r){h(this,T,S),h(t,$,S);var n=M(t).byteLength,o=f(e);if(o<0||o>n)throw C("Wrong offset");if(r=void 0===r?n-o:l(r),o+r>n)throw C(k);_(this,{buffer:t,byteLength:r,byteOffset:o}),i||(this.buffer=t,this.byteLength=r,this.byteOffset=o)},i&&(F($,"byteLength"),F(T,"buffer"),F(T,"byteLength"),F(T,"byteOffset")),s(T[A],{getInt8:function(t){return z(this,1,t)[0]<<24>>24},getUint8:function(t){return z(this,1,t)[0]},getInt16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return j(z(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return j(z(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return L(z(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return L(z(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){H(this,1,t,N,e)},setUint8:function(t,e){H(this,1,t,N,e)},setInt16:function(t,e){H(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){H(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){H(this,4,t,D,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){H(this,4,t,D,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){H(this,4,t,q,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){H(this,8,t,U,e,arguments.length>2?arguments[2]:void 0)}});y($,E),y(T,S),t.exports={ArrayBuffer:$,DataView:T}},6283:function(t,e,r){var n=r("3fb5"),i=r("41df").Reporter,o=r("b639").Buffer;function a(t,e){i.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof s||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"===typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"===typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}n(a,i),e.DecoderBuffer=a,a.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},a.prototype.restore=function(t){var e=new a(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,i.prototype.restore.call(this,t.reporter),e},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},a.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},a.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.prototype.join=function(t,e){return t||(t=new o(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"===typeof this.value?t[e]=this.value:"string"===typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},62831:function(t,e,r){var n; /*! * sqlite-parser - v1.0.1 * @copyright 2015-2017 Code School (http://codeschool.com) @@ -16,4 +16,4 @@ var n=r("b639"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t * @license MIT */ var n=r("1fb5"),i=r("9152"),o=r("e3db");function a(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"===typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function s(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),h.alloc(+t)}function w(t,e){if(h.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Q(t).length;default:if(n)return V(t).length;e=(""+e).toLowerCase(),n=!0}}function M(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";t||(t="utf8");while(1)switch(t){case"hex":return P(this,e,r);case"utf8":case"utf-8":return O(this,e,r);case"ascii":return L(this,e,r);case"latin1":case"binary":return N(this,e,r);case"base64":return I(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function E(t,e,r,n,i){if(0===t.length)return-1;if("string"===typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"===typeof e&&(e=h.from(e,n)),h.isBuffer(e))return 0===e.length?-1:S(t,e,r,n,i);if("number"===typeof e)return e&=255,h.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):S(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function S(t,e,r,n,i){var o,a=1,s=t.length,u=e.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function h(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var f=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var l=!0,c=0;ci&&(n=i)):n=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a239?4:h>223?3:h>191?2:1;if(i+l<=r)switch(l){case 1:h<128&&(f=h);break;case 2:o=t[i+1],128===(192&o)&&(u=(31&h)<<6|63&o,u>127&&(f=u));break;case 3:o=t[i+1],a=t[i+2],128===(192&o)&&128===(192&a)&&(u=(15&h)<<12|(63&o)<<6|63&a,u>2047&&(u<55296||u>57343)&&(f=u));break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(u=(15&h)<<18|(63&o)<<12|(63&a)<<6|63&s,u>65535&&u<1114112&&(f=u))}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=l}return B(n)}e.Buffer=h,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,h.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),e.kMaxLength=s(),h.poolSize=8192,h._augment=function(t){return t.__proto__=h.prototype,t},h.from=function(t,e,r){return f(null,t,e,r)},h.TYPED_ARRAY_SUPPORT&&(h.prototype.__proto__=Uint8Array.prototype,h.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&h[Symbol.species]===h&&Object.defineProperty(h,Symbol.species,{value:null,configurable:!0})),h.alloc=function(t,e,r){return c(null,t,e,r)},h.allocUnsafe=function(t){return d(null,t)},h.allocUnsafeSlow=function(t){return d(null,t)},h.isBuffer=function(t){return!(null==t||!t._isBuffer)},h.compare=function(t,e){if(!h.isBuffer(t)||!h.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},h.prototype.compare=function(t,e,r,n,i){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,a=r-e,s=Math.min(o,a),u=this.slice(n,i),f=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return k(this,t,e,r);case"ascii":return x(this,t,e,r);case"latin1":case"binary":return R(this,t,e,r);case"base64":return $(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function B(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r="",n=0;while(nn)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function q(t,e,r,n,i,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function F(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function z(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function H(t,e,r,n,o){return o||z(t,e,r,4,34028234663852886e22,-34028234663852886e22),i.write(t,e,r,n,23,4),r+4}function K(t,e,r,n,o){return o||z(t,e,r,8,17976931348623157e292,-17976931348623157e292),i.write(t,e,r,n,52,8),r+8}h.prototype.slice=function(t,e){var r,n=this.length;if(t=~~t,e=void 0===e?n:~~e,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),e0&&(i*=256))n+=this[t+--e]*i;return n},h.prototype.readUInt8=function(t,e){return e||j(t,1,this.length),this[t]},h.prototype.readUInt16LE=function(t,e){return e||j(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUInt16BE=function(t,e){return e||j(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUInt32LE=function(t,e){return e||j(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUInt32BE=function(t,e){return e||j(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||j(t,e,this.length);var n=this[t],i=1,o=0;while(++o=i&&(n-=Math.pow(2,8*e)),n},h.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||j(t,e,this.length);var n=e,i=1,o=this[t+--n];while(n>0&&(i*=256))o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},h.prototype.readInt8=function(t,e){return e||j(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,e){e||j(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt16BE=function(t,e){e||j(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt32LE=function(t,e){return e||j(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,e){return e||j(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!1,52,8)},h.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){var i=Math.pow(2,8*r)-1;q(this,t,e,r,i,0)}var o=1,a=0;this[e]=255&t;while(++a=0&&(a*=256))this[e+o]=t/a&255;return e+r},h.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,1,255,0),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},h.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):U(this,t,e,!0),e+2},h.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):U(this,t,e,!1),e+2},h.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},h.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},h.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);q(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;this[e]=255&t;while(++o>0)-s&255;return e+r},h.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);q(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;this[e+o]=255&t;while(--o>=0&&(a*=256))t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},h.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,1,127,-128),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},h.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):U(this,t,e,!0),e+2},h.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):U(this,t,e,!1),e+2},h.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,2147483647,-2147483648),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},h.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},h.prototype.writeFloatLE=function(t,e,r){return H(this,t,e,!0,r)},h.prototype.writeFloatBE=function(t,e,r){return H(this,t,e,!1,r)},h.prototype.writeDoubleLE=function(t,e,r){return K(this,t,e,!0,r)},h.prototype.writeDoubleBE=function(t,e,r){return K(this,t,e,!1,r)},h.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!h.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,i=r%256,o.push(i),o.push(n)}return o}function Q(t){return n.toByteArray(Z(t))}function tt(t,e,r,n){for(var i=0;i=e.length||i>=t.length)break;e[i+r]=t[i]}return i}function et(t){return t!==t}}).call(this,r("c8ba"))},b64b:function(t,e,r){var n=r("23e7"),i=r("7b0b"),o=r("df75"),a=r("d039"),s=a((function(){o(1)}));n({target:"Object",stat:!0,forced:s},{keys:function(t){return o(i(t))}})},b672:function(t,e,r){var n=r("8707").Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"===typeof t&&(e=e||"utf8",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},b692:function(t,e,r){var n=r("39a9").Buffer,i=r("98e6"),o=r("34d5"),a=r("3fb5"),s=r("6fe7"),u=r("980c"),h=r("b4e8");function f(t){o.Writable.call(this);var e=h[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){o.Writable.call(this);var e=h[t];if(!e)throw new Error("Unknown message digest");this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function c(t){return new f(t)}function d(t){return new l(t)}Object.keys(h).forEach((function(t){h[t].id=n.from(h[t].id,"hex"),h[t.toLowerCase()]=h[t]})),a(f,o.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return"string"===typeof t&&(t=n.from(t,e)),this._hash.update(t),this},f.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=s(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},a(l,o.Writable),l.prototype._write=function(t,e,r){this._hash.update(t),r()},l.prototype.update=function(t,e){return"string"===typeof t&&(t=n.from(t,e)),this._hash.update(t),this},l.prototype.verify=function(t,e,r){"string"===typeof e&&(e=n.from(e,r)),this.end();var i=this._hash.digest();return u(e,i,t,this._signType,this._tag)},t.exports={Sign:c,Verify:d,createSign:c,createVerify:d}},b727:function(t,e,r){var n=r("0366"),i=r("44ad"),o=r("7b0b"),a=r("50c4"),s=r("65f0"),u=[].push,h=function(t){var e=1==t,r=2==t,h=3==t,f=4==t,l=6==t,c=5==t||l;return function(d,p,m,v){for(var b,g,y=o(d),w=i(y),M=n(p,m,3),_=a(w.length),E=0,S=v||s,A=e?S(d,_):r?S(d,0):void 0;_>E;E++)if((c||E in w)&&(b=w[E],g=M(b,E,y),t))if(e)A[E]=g;else if(g)switch(t){case 3:return!0;case 5:return b;case 6:return E;case 2:u.call(A,b)}else if(f)return!1;return l?-1:h||f?f:A}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6)}},b73f:function(t,e,r){"use strict";var n=r("80af"),i=r("f3a3"),o=i.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=e.place;o>>=0;return!(i<=127)&&(e.place=a,i)}function h(t){var e=0,r=t.length-1;while(!t[e]&&!(128&t[e+1])&&e>>3);t.push(128|r);while(--r)t.push(e>>>(r<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new s;if(48!==t[r.place++])return!1;var o=u(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var a=u(t,r);if(!1===a)return!1;var h=t.slice(r.place,a+r.place);if(r.place+=a,2!==t[r.place++])return!1;var f=u(t,r);if(!1===f)return!1;if(t.length!==f+r.place)return!1;var l=t.slice(r.place,f+r.place);if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new n(h),this.s=new n(l),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=h(e),r=h(r);while(!r[0]&&!(128&r[1]))r=r.slice(1);var n=[2];f(n,e.length),n=n.concat(e),n.push(2),f(n,r.length);var o=n.concat(r),a=[48];return f(a,o.length),a=a.concat(o),i.encode(a,t)}},b7d1:function(t,e,r){(function(e){function r(t,e){if(n("noDeprecation"))return t;var r=!1;function i(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}return i}function n(t){try{if(!e.localStorage)return!1}catch(n){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=r}).call(this,r("c8ba"))},b837:function(t,e,r){var n=r("3fb5"),i=r("4fd1"),o=r("b672"),a=r("8707").Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},b9a8:function(t,e,r){"use strict";var n=r("80af"),i=r("6aa2"),o=r("f3a3"),a=r("0cbb"),s=r("fdac"),u=o.assert,h=r("bb34"),f=r("b73f");function l(t){if(!(this instanceof l))return new l(t);"string"===typeof t&&(u(a.hasOwnProperty(t),"Unknown curve "+t),t=a[t]),t instanceof a.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=l,l.prototype.keyPair=function(t){return new h(this,t)},l.prototype.keyFromPrivate=function(t,e){return h.fromPrivate(this,t,e)},l.prototype.keyFromPublic=function(t,e){return h.fromPublic(this,t,e)},l.prototype.genKeyPair=function(t){t||(t={});var e=new i({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),o=this.n.sub(new n(2));do{var a=new n(e.generate(r));if(!(a.cmp(o)>0))return a.iaddn(1),this.keyFromPrivate(a)}while(1)},l.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},l.prototype.sign=function(t,e,r,o){"object"===typeof r&&(o=r,r=null),o||(o={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new n(t,16));for(var a=this.n.byteLength(),s=e.getPrivate().toArray("be",a),u=t.toArray("be",a),h=new i({hash:this.hash,entropy:s,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),l=this.n.sub(new n(1)),c=0;1;c++){var d=o.k?o.k(c):new n(h.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var m=p.getX(),v=m.umod(this.n);if(0!==v.cmpn(0)){var b=d.invm(this.n).mul(v.mul(e.getPrivate()).iadd(t));if(b=b.umod(this.n),0!==b.cmpn(0)){var g=(p.getY().isOdd()?1:0)|(0!==m.cmp(v)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),g^=1),new f({r:v,s:b,recoveryParam:g})}}}}}},l.prototype.verify=function(t,e,r,i){t=this._truncateToN(new n(t,16)),r=this.keyFromPublic(r,i),e=new f(e,"hex");var o=e.r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s=a.invm(this.n),u=s.mul(t).umod(this.n),h=s.mul(o).umod(this.n);if(!this.curve._maxwellTrick){var l=this.g.mulAdd(u,r.getPublic(),h);return!l.isInfinity()&&0===l.getX().umod(this.n).cmp(o)}l=this.g.jmulAdd(u,r.getPublic(),h);return!l.isInfinity()&&l.eqXToP(o)},l.prototype.recoverPubKey=function(t,e,r,i){u((3&r)===r,"The recovery param is more than two bits"),e=new f(e,i);var o=this.n,a=new n(t),s=e.r,h=e.s,l=1&r,c=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");s=c?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var d=e.r.invm(o),p=o.sub(a).mul(d).umod(o),m=h.mul(d).umod(o);return this.g.mulAdd(p,s,m)},l.prototype.getKeyRecoveryParam=function(t,e,r,n){if(e=new f(e,n),null!==e.recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},b9b5:function(t,e,r){"use strict";var n=r("9d8a").codes.ERR_INVALID_OPT_VALUE;function i(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}function o(t,e,r,o){var a=i(e,o,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0){var s=o?r:"highWaterMark";throw new n(s,a)}return Math.floor(a)}return t.objectMode?16:16384}t.exports={getHighWaterMark:o}},bac2:function(t,e,r){var n={ECB:r("0145"),CBC:r("c119"),CFB:r("3505"),CFB8:r("62c9"),CFB1:r("5239"),OFB:r("5165"),CTR:r("6ade"),GCM:r("6ade")},i=r("e85f");for(var o in i)i[o].module=n[i[o].mode];t.exports=i},bb2f:function(t,e,r){var n=r("d039");t.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bb34:function(t,e,r){"use strict";var n=r("80af"),i=r("f3a3"),o=i.assert;function a(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=a,a.fromPublic=function(t,e,r){return e instanceof a?e:new a(t,{pub:e,pubEnc:r})},a.fromPrivate=function(t,e,r){return e instanceof a?e:new a(t,{priv:e,privEnc:r})},a.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(t,e){return"string"===typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},a.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(t,e){this.priv=new n(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?o(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},a.prototype.derive=function(t){return t.mul(this.priv).getX()},a.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},a.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},a.prototype.inspect=function(){return""}},bb44:function(t,e,r){"use strict";var n=r("c3c0"),i=r("edc9"),o=n.rotl32,a=n.sum32,s=n.sum32_3,u=n.sum32_4,h=i.BlockHash;function f(){if(!(this instanceof f))return new f;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function c(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}n.inherits(f,h),e.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(t,e){for(var r=this.h[0],n=this.h[1],i=this.h[2],h=this.h[3],f=this.h[4],g=r,y=n,w=i,M=h,_=f,E=0;E<80;E++){var S=a(o(u(r,l(E,n,i,h),t[p[E]+e],c(E)),v[E]),f);r=f,f=h,h=o(i,10),i=n,n=S,S=a(o(u(g,l(79-E,y,w,M),t[m[E]+e],d(E)),b[E]),_),g=_,_=M,M=o(w,10),w=y,y=S}S=s(this.h[1],i,M),this.h[1]=s(this.h[2],h,_),this.h[2]=s(this.h[3],f,g),this.h[3]=s(this.h[4],r,y),this.h[4]=s(this.h[0],n,w),this.h[0]=S},f.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],v=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},bc12:function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(12).Buffer}catch(k){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},bd9d:function(t,e){function r(t){var e,r=t.length;while(r--){if(e=t.readUInt8(r),255!==e){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}t.exports=r},c04e:function(t,e,r){var n=r("861d");t.exports=function(t,e){if(!n(t))return t;var r,i;if(e&&"function"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!n(i=r.call(t)))return i;if(!e&&"function"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},c119:function(t,e,r){var n=r("8c8a");e.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},e.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},c19f:function(t,e,r){"use strict";var n=r("23e7"),i=r("da84"),o=r("621a"),a=r("2626"),s="ArrayBuffer",u=o[s],h=i[s];n({global:!0,forced:h!==u},{ArrayBuffer:u}),a(s)},c1ac:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").filter,o=r("4840"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod;u("filter",(function(t){var e=i(a(this),t,arguments.length>1?arguments[1]:void 0),r=o(this,this.constructor),n=0,u=e.length,h=new(s(r))(u);while(u>n)h[n]=e[n++];return h}))},c24d:function(t){t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},c2ae:function(t,e,r){t.exports=r("e372").PassThrough},c3c0:function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5");function o(t,e){return 55296===(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320===(64512&t.charCodeAt(e+1)))}function a(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"===typeof t)if(e){if("hex"===e)for(t=t.replace(/[^a-z0-9]+/gi,""),t.length%2!==0&&(t="0"+t),i=0;i>6|192,r[n++]=63&a|128):o(t,i)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24;return e>>>0}function h(t,e){for(var r="",n=0;n>>0}return a}function d(t,e){for(var r=new Array(4*t.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r}function p(t,e){return t>>>e|t<<32-e}function m(t,e){return t<>>32-e}function v(t,e){return t+e>>>0}function b(t,e,r){return t+e+r>>>0}function g(t,e,r,n){return t+e+r+n>>>0}function y(t,e,r,n,i){return t+e+r+n+i>>>0}function w(t,e,r,n){var i=t[e],o=t[e+1],a=n+o>>>0,s=(a>>0,t[e+1]=a}function M(t,e,r,n){var i=e+n>>>0,o=(i>>0}function _(t,e,r,n){var i=e+n;return i>>>0}function E(t,e,r,n,i,o,a,s){var u=0,h=e;h=h+n>>>0,u+=h>>0,u+=h>>0,u+=h>>0}function S(t,e,r,n,i,o,a,s){var u=e+n+o+s;return u>>>0}function A(t,e,r,n,i,o,a,s,u,h){var f=0,l=e;l=l+n>>>0,f+=l>>0,f+=l>>0,f+=l>>0,f+=l>>0}function k(t,e,r,n,i,o,a,s,u,h){var f=e+n+o+s+h;return f>>>0}function x(t,e,r){var n=e<<32-r|t>>>r;return n>>>0}function R(t,e,r){var n=t<<32-r|e>>>r;return n>>>0}function $(t,e,r){return t>>>r}function T(t,e,r){var n=t<<32-r|e>>>r;return n>>>0}e.inherits=i,e.toArray=a,e.toHex=s,e.htonl=u,e.toHex32=h,e.zero2=f,e.zero8=l,e.join32=c,e.split32=d,e.rotr32=p,e.rotl32=m,e.sum32=v,e.sum32_3=b,e.sum32_4=g,e.sum32_5=y,e.sum64=w,e.sum64_hi=M,e.sum64_lo=_,e.sum64_4_hi=E,e.sum64_4_lo=S,e.sum64_5_hi=A,e.sum64_5_lo=k,e.rotr64_hi=x,e.rotr64_lo=R,e.shr64_hi=$,e.shr64_lo=T},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},c6cd:function(t,e,r){var n=r("da84"),i=r("ce4e"),o="__core-js_shared__",a=n[o]||i(o,{});t.exports=a},c8ba:function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}t.exports=r},ca84:function(t,e,r){var n=r("5135"),i=r("fc6a"),o=r("4d64").indexOf,a=r("d012");t.exports=function(t,e){var r,s=i(t),u=0,h=[];for(r in s)!n(a,r)&&n(s,r)&&h.push(r);while(e.length>u)n(s,r=e[u++])&&(~o(h,r)||h.push(r));return h}},ca91:function(t,e,r){"use strict";var n=r("ebb5"),i=r("d58f").left,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("reduce",(function(t){return i(o(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},caad:function(t,e,r){"use strict";var n=r("23e7"),i=r("4d64").includes,o=r("44d2"),a=r("ae40"),s=a("indexOf",{ACCESSORS:!0,1:0});n({target:"Array",proto:!0,forced:!s},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o("includes")},cc12:function(t,e,r){var n=r("da84"),i=r("861d"),o=n.document,a=i(o)&&i(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},cd26:function(t,e,r){"use strict";var n=r("ebb5"),i=n.aTypedArray,o=n.exportTypedArrayMethod,a=Math.floor;o("reverse",(function(){var t,e=this,r=i(e).length,n=a(r/2),o=0;while(o0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),n)a.endEmitted?A(t,new S):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):j(t,a)):I(t,a,e,!1)}else n||(a.reading=!1,j(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function L(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=B(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function N(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,D(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,n.nextTick(D,t))}function D(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function j(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function H(t,e){e.resumeScheduled||(e.resumeScheduled=!0,n.nextTick(K,t,e))}function K(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function G(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,n.nextTick(Y,e,t))}function Y(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function V(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?G(this):P(this),null;if(t=L(t,e),0===t&&e.ended)return 0===e.length&&G(this),null;var n,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t0?Z(t,e):null,null===n?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&G(this)),null!==n&&this.emit("data",n),n},$.prototype._read=function(t){A(this,new E("_read()"))},$.prototype.pipe=function(t,e){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t);break}i.pipesCount+=1,l("pipe count=%d opts=%j",i.pipesCount,e);var a=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}i.endEmitted?n.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",v),t.removeListener("finish",b),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var n=t.write(e);l("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==V(i.pipes,t))&&!c&&(l("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function v(){t.removeListener("finish",b),g()}function b(){l("onfinish"),t.removeListener("close",v),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),x(t,"error",m),t.once("close",v),t.once("finish",b),t.emit("pipe",r),i.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,l("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&n.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,H(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){if(l("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var o=e.push(i);o||(n=!0,t.pause())}})),t)void 0===this[i]&&"function"===typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o>6],i=0===(32&r);if(31===(31&r)){var o=r;r=0;while(128===(128&o)){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;var a=s.tag[r];return{cls:n,primitive:i,tag:r,tagStr:a}}function l(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0===(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},d113:function(t,e,r){"use strict";function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var i={};function o(t,e,r){function o(t,r,n){return"string"===typeof e?e:e(t,r,n)}r||(r=Error);var a=function(t){function e(e,r,n){return t.call(this,o(e,r,n))||this}return n(e,t),e}(r);a.prototype.name=r.name,a.prototype.code=t,i[t]=a}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function h(t,e,r){return"number"!==typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,r){var n,i;if("string"===typeof e&&s(e,"not ")?(n="must not be",e=e.replace(/^not /,"")):n="must be",u(t," argument"))i="The ".concat(t," ").concat(n," ").concat(a(e,"type"));else{var o=h(t,".")?"property":"argument";i='The "'.concat(t,'" ').concat(o," ").concat(n," ").concat(a(e,"type"))}return i+=". Received type ".concat(typeof r),i}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=i},d139:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").find,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("find",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},d17b:function(t,e,r){t.exports=r("e372").Transform},d1c8:function(t,e,r){var n=r("3fb5");function i(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}e.Reporter=i,i.prototype.isError=function(t){return t instanceof o},i.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},i.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},i.prototype.enterKey=function(t){return this._reporterState.path.push(t)},i.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},i.prototype.leaveKey=function(t,e,r){var n=this._reporterState;this.exitKey(t),null!==n.obj&&(n.obj[e]=r)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},i.prototype.leaveObject=function(t){var e=this._reporterState,r=e.obj;return e.obj=t,r},i.prototype.error=function(t){var e,r=this._reporterState,n=t instanceof o;if(e=n?t:new o(r.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!r.options.partial)throw e;return n||r.errors.push(e),e},i.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},n(o,Error),o.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},d1e7:function(t,e,r){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!n.call({1:2},1);e.f=o?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},d28b:function(t,e,r){var n=r("746f");n("iterator")},d2bb:function(t,e,r){var n=r("825a"),i=r("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(r,[]),e=r instanceof Array}catch(o){}return function(r,o){return n(r),i(o),e?t.call(r,o):r.__proto__=o,r}}():void 0)},d3b7:function(t,e,r){var n=r("00ee"),i=r("6eeb"),o=r("b041");n||i(Object.prototype,"toString",o,{unsafe:!0})},d424:function(t,e,r){"use strict";var n=r("3fb5"),i=r("8707").Buffer,o=r("6430"),a=i.alloc(128),s=64;function u(t,e){o.call(this,"digest"),"string"===typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>s?e=t(e):e.length=0:l>c;c+=d)c in f&&(u=r(u,f[c],c,h));return u}};t.exports={left:s(!1),right:s(!0)}},d5d6:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").forEach,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("forEach",(function(t){i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},d70e:function(t){t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},d784:function(t,e,r){"use strict";r("ac1f");var n=r("6eeb"),i=r("d039"),o=r("b622"),a=r("9263"),s=r("9112"),u=o("species"),h=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$
")})),f=function(){return"$0"==="a".replace(/./,"$0")}(),l=o("replace"),c=function(){return!!/./[l]&&""===/./[l]("a","$0")}(),d=!i((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}));t.exports=function(t,e,r,l){var p=o(t),m=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),v=m&&!i((function(){var e=!1,r=/a/;return"split"===t&&(r={},r.constructor={},r.constructor[u]=function(){return r},r.flags="",r[p]=/./[p]),r.exec=function(){return e=!0,null},r[p](""),!e}));if(!m||!v||"replace"===t&&(!h||!f||c)||"split"===t&&!d){var b=/./[p],g=r(p,""[t],(function(t,e,r,n,i){return e.exec===a?m&&!i?{done:!0,value:b.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}}),{REPLACE_KEEPS_$0:f,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:c}),y=g[0],w=g[1];n(String.prototype,t,y),n(RegExp.prototype,p,2==e?function(t,e){return w.call(t,this,e)}:function(t){return w.call(t,this)})}l&&s(RegExp.prototype[p],"sham",!0)}},d81d:function(t,e,r){"use strict";var n=r("23e7"),i=r("b727").map,o=r("1dde"),a=r("ae40"),s=o("map"),u=a("map");n({target:"Array",proto:!0,forced:!s||!u},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},da3e:function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=r,r.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)}},da84:function(t,e,r){(function(e){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||Function("return this")()}).call(this,r("c8ba"))},dc14:function(t,e,r){"use strict";(function(e,n){var i=r("966d");function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){N(e,t)}}t.exports=y;var a,s=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?setImmediate:i.nextTick;y.WritableState=g;var u=Object.create(r("3a7c"));u.inherits=r("3fb5");var h={deprecate:r("b7d1")},f=r("429b"),l=r("8707").Buffer,c=n.Uint8Array||function(){};function d(t){return l.from(t)}function p(t){return l.isBuffer(t)||t instanceof c}var m,v=r("4681");function b(){}function g(t,e){a=a||r("b19a"),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,s=t.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){x(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function y(t){if(a=a||r("b19a"),!m.call(y,this)&&!(this instanceof a))return new y(t);this._writableState=new g(t,this),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),f.call(this)}function w(t,e){var r=new Error("write after end");t.emit("error",r),i.nextTick(e,r)}function M(t,e,r,n){var o=!0,a=!1;return null===r?a=new TypeError("May not write null values to stream"):"string"===typeof r||void 0===r||e.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),i.nextTick(n,a),o=!1),o}function _(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=l.from(e,r)),e}function E(t,e,r,n,i,o){if(!r){var a=_(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(t,e,r){var n=this._writableState;"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||L(this,n,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),y.prototype.destroy=v.destroy,y.prototype._undestroy=v.undestroy,y.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r("4362"),r("c8ba"))},ddb0:function(t,e,r){var n=r("da84"),i=r("fdbc"),o=r("e260"),a=r("9112"),s=r("b622"),u=s("iterator"),h=s("toStringTag"),f=o.values;for(var l in i){var c=n[l],d=c&&c.prototype;if(d){if(d[u]!==f)try{a(d,u,f)}catch(m){d[u]=f}if(d[h]||a(d,h,l),i[l])for(var p in o)if(d[p]!==o[p])try{a(d,p,o[p])}catch(m){d[p]=o[p]}}}},df75:function(t,e,r){var n=r("ca84"),i=r("7839");t.exports=Object.keys||function(t){return n(t,i)}},df7c:function(t,e,r){(function(t){function r(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t){"string"!==typeof t&&(t+="");var e,r=0,n=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){r=e+1;break}}else-1===n&&(i=!1,n=e+1);return-1===n?"":t.slice(r,n)}function i(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!n;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,n="/"===a.charAt(0))}return e=r(i(e.split("/"),(function(t){return!!t})),!n).join("/"),(n?"/":"")+e||"."},e.normalize=function(t){var n=e.isAbsolute(t),a="/"===o(t,-1);return t=r(i(t.split("/"),(function(t){return!!t})),!n).join("/"),t||n||(t="."),t&&a&&(t+="/"),(n?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(i(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,r){function n(t){for(var e=0;e=0;r--)if(""!==t[r])break;return e>r?[]:t.slice(e,r-e+1)}t=e.resolve(t).substr(1),r=e.resolve(r).substr(1);for(var i=n(t.split("/")),o=n(r.split("/")),a=Math.min(i.length,o.length),s=a,u=0;u=1;--o)if(e=t.charCodeAt(o),47===e){if(!i){n=o;break}}else i=!1;return-1===n?r?"/":".":r&&1===n?"/":t.slice(0,n)},e.basename=function(t,e){var r=n(t);return e&&r.substr(-1*e.length)===e&&(r=r.substr(0,r.length-e.length)),r},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,r=0,n=-1,i=!0,o=0,a=t.length-1;a>=0;--a){var s=t.charCodeAt(a);if(47!==s)-1===n&&(i=!1,n=a+1),46===s?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!i){r=a+1;break}}return-1===e||-1===n||0===o||1===o&&e===n-1&&e===r+1?"":t.slice(e,n)};var o="b"==="ab".substr(-1)?function(t,e,r){return t.substr(e,r)}:function(t,e,r){return e<0&&(e=t.length+e),t.substr(e,r)}}).call(this,r("4362"))},e01a:function(t,e,r){"use strict";var n=r("23e7"),i=r("83ab"),o=r("da84"),a=r("5135"),s=r("861d"),u=r("9bf2").f,h=r("e893"),f=o.Symbol;if(i&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},c=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof c?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};h(c,f);var d=c.prototype=f.prototype;d.constructor=c;var p=d.toString,m="Symbol(test)"==String(f("test")),v=/^Symbol\((.*)\)[^)]+$/;u(d,"description",{configurable:!0,get:function(){var t=s(this)?this.valueOf():this,e=p.call(t);if(a(l,t))return"";var r=m?e.slice(7,-1):e.replace(v,"$1");return""===r?void 0:r}}),n({global:!0,forced:!0},{Symbol:c})}},e07b:function(t,e,r){var n=r("5a76"),i=r("b5ca"),o=r("69f2"),a=r("8707").Buffer,s=r("7d2a"),u=r("9f9d"),h=r("8be6"),f=a.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function c(t,e,r){var n=d(t),i="sha512"===t||"sha384"===t?128:64;e.length>i?e=n(e):e.length=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}}),"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},e2cc:function(t,e,r){var n=r("6eeb");t.exports=function(t,e,r){for(var i in e)n(t,i,e[i],r);return t}},e372:function(t,e,r){e=t.exports=r("ad71"),e.Stream=e,e.Readable=e,e.Writable=r("dc14"),e.Duplex=r("b19a"),e.Transform=r("27bf"),e.PassThrough=r("780f")},e3db:function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},e538:function(t,e,r){var n=r("b622");e.f=n},e58c:function(t,e,r){"use strict";var n=r("fc6a"),i=r("a691"),o=r("50c4"),a=r("a640"),s=r("ae40"),u=Math.min,h=[].lastIndexOf,f=!!h&&1/[1].lastIndexOf(1,-0)<0,l=a("lastIndexOf"),c=s("indexOf",{ACCESSORS:!0,1:0}),d=f||!l||!c;t.exports=d?function(t){if(f)return h.apply(this,arguments)||0;var e=n(this),r=o(e.length),a=r-1;for(arguments.length>1&&(a=u(a,i(arguments[1]))),a<0&&(a=r+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:h},e666:function(t,e,r){"use strict";(function(e){var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var i=r("4250"),o=r("19ea");r("3fb5")(h,i);for(var a=n(o.prototype),s=0;s1?arguments[1]:void 0)}))},e95a:function(t,e,r){var n=r("b622"),i=r("3f8c"),o=n("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||a[o]===t)}},ea53:function(t,e,r){"use strict";var n=r("80af"),i=r("f3a3"),o=i.getNAF,a=i.getJSF,s=i.assert;function u(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function h(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var r=t._getDoubles(),n=o(e,1,this._bitLength),i=(1<=u;e--)h=(h<<1)+n[e];a.push(h)}for(var f=this.jpoint(null,null,null),l=this.jpoint(null,null,null),c=i;c>0;c--){for(u=0;u=0;h--){for(e=0;h>=0&&0===a[h];h--)e++;if(h>=0&&e++,u=u.dblp(e),h<0)break;var f=a[h];s(0!==f),u="affine"===t.type?f>0?u.mixedAdd(i[f-1>>1]):u.mixedAdd(i[-f-1>>1].neg()):f>0?u.add(i[f-1>>1]):u.add(i[-f-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,n,i){for(var s=this._wnafT1,u=this._wnafT2,h=this._wnafT3,f=0,l=0;l=1;l-=2){var p=l-1,m=l;if(1===s[p]&&1===s[m]){var v=[e[p],null,null,e[m]];0===e[p].y.cmp(e[m].y)?(v[1]=e[p].add(e[m]),v[2]=e[p].toJ().mixedAdd(e[m].neg())):0===e[p].y.cmp(e[m].y.redNeg())?(v[1]=e[p].toJ().mixedAdd(e[m]),v[2]=e[p].add(e[m].neg())):(v[1]=e[p].toJ().mixedAdd(e[m]),v[2]=e[p].toJ().mixedAdd(e[m].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],g=a(r[p],r[m]);f=Math.max(g[0].length,f),h[p]=new Array(f),h[m]=new Array(f);for(var y=0;y=0;l--){var S=0;while(l>=0){var A=!0;for(y=0;y=0&&S++,_=_.dblp(S),l<0)break;for(y=0;y0?c=u[y][k-1>>1]:k<0&&(c=u[y][-k-1>>1].neg()),_="affine"===c.type?_.mixedAdd(c):_.add(c))}}for(l=0;l=Math.ceil((t.bitLength()+1)/e.step)},h.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i=this._delta8){t=this.pending;var r=t.length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n}function u(t,e){var r=[[],[]];t=t.clone(),e=e.clone();var n=0,i=0;while(t.cmpn(-n)>0||e.cmpn(-i)>0){var o,a,s=t.andln(3)+n&3,u=e.andln(3)+i&3;if(3===s&&(s=-1),3===u&&(u=-1),0===(1&s))o=0;else{var h=t.andln(7)+n&7;o=3!==h&&5!==h||2!==u?s:-s}if(r[0].push(o),0===(1&u))a=0;else{h=e.andln(7)+i&7;a=3!==h&&5!==h||2!==s?u:-u}r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r}function h(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}}function f(t){return"string"===typeof t?n.toArray(t,"hex"):t}function l(t){return new i(t,"hex","le")}n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=s,n.getJSF=u,n.cachedProperty=h,n.parseBytes=f,n.intFromLE=l},f460:function(t,e,r){var n=r("98e6"),i=r("8707").Buffer;function o(t){var e=i.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){var r,a=i.alloc(0),s=0;while(a.length>>32-e}function h(t,e,r,n,i,o,a){return u(t+(e&r|~e&n)+i+o|0,a)+e|0}function f(t,e,r,n,i,o,a){return u(t+(e&n|r&~n)+i+o|0,a)+e|0}function l(t,e,r,n,i,o,a){return u(t+(e^r^n)+i+o|0,a)+e|0}function c(t,e,r,n,i,o,a){return u(t+(r^(e|~n))+i+o|0,a)+e|0}n(s,i),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d;r=h(r,n,i,o,t[0],3614090360,7),o=h(o,r,n,i,t[1],3905402710,12),i=h(i,o,r,n,t[2],606105819,17),n=h(n,i,o,r,t[3],3250441966,22),r=h(r,n,i,o,t[4],4118548399,7),o=h(o,r,n,i,t[5],1200080426,12),i=h(i,o,r,n,t[6],2821735955,17),n=h(n,i,o,r,t[7],4249261313,22),r=h(r,n,i,o,t[8],1770035416,7),o=h(o,r,n,i,t[9],2336552879,12),i=h(i,o,r,n,t[10],4294925233,17),n=h(n,i,o,r,t[11],2304563134,22),r=h(r,n,i,o,t[12],1804603682,7),o=h(o,r,n,i,t[13],4254626195,12),i=h(i,o,r,n,t[14],2792965006,17),n=h(n,i,o,r,t[15],1236535329,22),r=f(r,n,i,o,t[1],4129170786,5),o=f(o,r,n,i,t[6],3225465664,9),i=f(i,o,r,n,t[11],643717713,14),n=f(n,i,o,r,t[0],3921069994,20),r=f(r,n,i,o,t[5],3593408605,5),o=f(o,r,n,i,t[10],38016083,9),i=f(i,o,r,n,t[15],3634488961,14),n=f(n,i,o,r,t[4],3889429448,20),r=f(r,n,i,o,t[9],568446438,5),o=f(o,r,n,i,t[14],3275163606,9),i=f(i,o,r,n,t[3],4107603335,14),n=f(n,i,o,r,t[8],1163531501,20),r=f(r,n,i,o,t[13],2850285829,5),o=f(o,r,n,i,t[2],4243563512,9),i=f(i,o,r,n,t[7],1735328473,14),n=f(n,i,o,r,t[12],2368359562,20),r=l(r,n,i,o,t[5],4294588738,4),o=l(o,r,n,i,t[8],2272392833,11),i=l(i,o,r,n,t[11],1839030562,16),n=l(n,i,o,r,t[14],4259657740,23),r=l(r,n,i,o,t[1],2763975236,4),o=l(o,r,n,i,t[4],1272893353,11),i=l(i,o,r,n,t[7],4139469664,16),n=l(n,i,o,r,t[10],3200236656,23),r=l(r,n,i,o,t[13],681279174,4),o=l(o,r,n,i,t[0],3936430074,11),i=l(i,o,r,n,t[3],3572445317,16),n=l(n,i,o,r,t[6],76029189,23),r=l(r,n,i,o,t[9],3654602809,4),o=l(o,r,n,i,t[12],3873151461,11),i=l(i,o,r,n,t[15],530742520,16),n=l(n,i,o,r,t[2],3299628645,23),r=c(r,n,i,o,t[0],4096336452,6),o=c(o,r,n,i,t[7],1126891415,10),i=c(i,o,r,n,t[14],2878612391,15),n=c(n,i,o,r,t[5],4237533241,21),r=c(r,n,i,o,t[12],1700485571,6),o=c(o,r,n,i,t[3],2399980690,10),i=c(i,o,r,n,t[10],4293915773,15),n=c(n,i,o,r,t[1],2240044497,21),r=c(r,n,i,o,t[8],1873313359,6),o=c(o,r,n,i,t[15],4264355552,10),i=c(i,o,r,n,t[6],2734768916,15),n=c(n,i,o,r,t[13],1309151649,21),r=c(r,n,i,o,t[4],4149444226,6),o=c(o,r,n,i,t[11],3174756917,10),i=c(i,o,r,n,t[2],718787259,15),n=c(n,i,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},f5df:function(t,e,r){var n=r("00ee"),i=r("c6b6"),o=r("b622"),a=o("toStringTag"),s="Arguments"==i(function(){return arguments}()),u=function(t,e){try{return t[e]}catch(r){}};t.exports=n?i:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=u(e=Object(t),a))?r:s?i(e):"Object"==(n=i(e))&&"function"==typeof e.callee?"Arguments":n}},f772:function(t,e,r){var n=r("5692"),i=r("90e3"),o=n("keys");t.exports=function(t){return o[t]||(o[t]=i(t))}},f83c:function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},f8cd:function(t,e,r){var n=r("a691");t.exports=function(t){var e=n(t);if(e<0)throw RangeError("The argument can't be less than 0");return e}},faa1:function(t,e,r){"use strict";var n,i="object"===typeof Reflect?Reflect:null,o=i&&"function"===typeof i.apply?i.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};function a(t){console&&console.warn&&console.warn(t)}n=i&&"function"===typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,t.exports.once=w,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var h=10;function f(t){if("function"!==typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function c(t,e,r,n){var i,o,s;if(f(r),o=t._events,void 0===o?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),void 0===s)s=o[e]=r,++t._eventsCount;else if("function"===typeof s?s=o[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),i=l(t),i>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,a(u)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=d.bind(n);return i.listener=r,n.wrapFn=i,i}function m(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"===typeof i?r?[i.listener||i]:[i]:r?y(i):b(i,i.length)}function v(t){var e=this._events;if(void 0!==e){var r=e[t];if("function"===typeof r)return 1;if(void 0!==r)return r.length}return 0}function b(t,e){for(var r=new Array(e),n=0;n0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=i[t];if(void 0===u)return!1;if("function"===typeof u)o(u,this,e);else{var h=u.length,f=b(u,h);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():g(r,i),1===r.length&&(n[t]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",t,a||e)}return this},u.prototype.off=u.prototype.removeListener,u.prototype.removeAllListeners=function(t){var e,r,n;if(r=this._events,void 0===r)return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[t]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[t]),this;if(0===arguments.length){var i,o=Object.keys(r);for(n=0;n=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return m(this,t,!0)},u.prototype.rawListeners=function(t){return m(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):v.call(t,e)},u.prototype.listenerCount=v,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},fb2c:function(t,e,r){var n=r("74e8");n("Uint32",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},fb6a:function(t,e,r){"use strict";var n=r("23e7"),i=r("861d"),o=r("e8b5"),a=r("23cb"),s=r("50c4"),u=r("fc6a"),h=r("8418"),f=r("b622"),l=r("1dde"),c=r("ae40"),d=l("slice"),p=c("slice",{ACCESSORS:!0,0:0,1:2}),m=f("species"),v=[].slice,b=Math.max;n({target:"Array",proto:!0,forced:!d||!p},{slice:function(t,e){var r,n,f,l=u(this),c=s(l.length),d=a(t,c),p=a(void 0===e?c:e,c);if(o(l)&&(r=l.constructor,"function"!=typeof r||r!==Array&&!o(r.prototype)?i(r)&&(r=r[m],null===r&&(r=void 0)):r=void 0,r===Array||void 0===r))return v.call(l,d,p);for(n=new(void 0===r?Array:r)(b(p-d,0)),f=0;d0;return f(t,a,s,(function(t){n||(n=t),t&&o.forEach(l),a||(o.forEach(l),i(n))}))}));return e.reduce(c)}t.exports=p},fc6a:function(t,e,r){var n=r("44ad"),i=r("1d80");t.exports=function(t){return n(i(t))}},fd87:function(t,e,r){var n=r("74e8");n("Int8",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},fda6:function(t,e,r){var n=r("8947"),i=r("4228"),o=r("e85f");function a(){return Object.keys(o)}e.createCipher=e.Cipher=n.createCipher,e.createCipheriv=e.Cipheriv=n.createCipheriv,e.createDecipher=e.Decipher=i.createDecipher,e.createDecipheriv=e.Decipheriv=i.createDecipheriv,e.listCiphers=e.getCiphers=a},fdac:function(t,e,r){var n;function i(t){this.rand=t}if(t.exports=function(t){return n||(n=new i(null)),n.generate(t)},t.exports.Rand=i,i.prototype.generate=function(t){return this._rand(t)},i.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\nvar Module=typeof Module!==\"undefined\"?Module:{};null;Module[\"onRuntimeInitialized\"]=function onRuntimeInitialized(){var apiTemp=stackAlloc(4);var cwrap=Module[\"cwrap\"];var NULL=0;var SQLITE_OK=0;var SQLITE_ROW=100;var SQLITE_DONE=101;var SQLITE_INTEGER=1;var SQLITE_FLOAT=2;var SQLITE_TEXT=3;var SQLITE_BLOB=4;var SQLITE_UTF8=1;var sqlite3_open=cwrap(\"sqlite3_open\",\"number\",[\"string\",\"number\"]);var sqlite3_close_v2=cwrap(\"sqlite3_close_v2\",\"number\",[\"number\"]);var sqlite3_exec=cwrap(\"sqlite3_exec\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\"]);var sqlite3_changes=cwrap(\"sqlite3_changes\",\"number\",[\"number\"]);var sqlite3_prepare_v2=cwrap(\"sqlite3_prepare_v2\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\"]);var sqlite3_sql=cwrap(\"sqlite3_sql\",\"string\",[\"number\"]);var sqlite3_normalized_sql=cwrap(\"sqlite3_normalized_sql\",\"string\",[\"number\"]);var sqlite3_prepare_v2_sqlptr=cwrap(\"sqlite3_prepare_v2\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_text=cwrap(\"sqlite3_bind_text\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_blob=cwrap(\"sqlite3_bind_blob\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_double=cwrap(\"sqlite3_bind_double\",\"number\",[\"number\",\"number\",\"number\"]);var sqlite3_bind_int=cwrap(\"sqlite3_bind_int\",\"number\",[\"number\",\"number\",\"number\"]);var sqlite3_bind_parameter_index=cwrap(\"sqlite3_bind_parameter_index\",\"number\",[\"number\",\"string\"]);var sqlite3_step=cwrap(\"sqlite3_step\",\"number\",[\"number\"]);var sqlite3_errmsg=cwrap(\"sqlite3_errmsg\",\"string\",[\"number\"]);var sqlite3_column_count=cwrap(\"sqlite3_column_count\",\"number\",[\"number\"]);var sqlite3_data_count=cwrap(\"sqlite3_data_count\",\"number\",[\"number\"]);var sqlite3_column_double=cwrap(\"sqlite3_column_double\",\"number\",[\"number\",\"number\"]);var sqlite3_column_text=cwrap(\"sqlite3_column_text\",\"string\",[\"number\",\"number\"]);var sqlite3_column_blob=cwrap(\"sqlite3_column_blob\",\"number\",[\"number\",\"number\"]);var sqlite3_column_bytes=cwrap(\"sqlite3_column_bytes\",\"number\",[\"number\",\"number\"]);var sqlite3_column_type=cwrap(\"sqlite3_column_type\",\"number\",[\"number\",\"number\"]);var sqlite3_column_name=cwrap(\"sqlite3_column_name\",\"string\",[\"number\",\"number\"]);var sqlite3_reset=cwrap(\"sqlite3_reset\",\"number\",[\"number\"]);var sqlite3_clear_bindings=cwrap(\"sqlite3_clear_bindings\",\"number\",[\"number\"]);var sqlite3_finalize=cwrap(\"sqlite3_finalize\",\"number\",[\"number\"]);var sqlite3_create_function_v2=cwrap(\"sqlite3_create_function_v2\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_value_type=cwrap(\"sqlite3_value_type\",\"number\",[\"number\"]);var sqlite3_value_bytes=cwrap(\"sqlite3_value_bytes\",\"number\",[\"number\"]);var sqlite3_value_text=cwrap(\"sqlite3_value_text\",\"string\",[\"number\"]);var sqlite3_value_blob=cwrap(\"sqlite3_value_blob\",\"number\",[\"number\"]);var sqlite3_value_double=cwrap(\"sqlite3_value_double\",\"number\",[\"number\"]);var sqlite3_result_double=cwrap(\"sqlite3_result_double\",\"\",[\"number\",\"number\"]);var sqlite3_result_null=cwrap(\"sqlite3_result_null\",\"\",[\"number\"]);var sqlite3_result_text=cwrap(\"sqlite3_result_text\",\"\",[\"number\",\"string\",\"number\",\"number\"]);var sqlite3_result_blob=cwrap(\"sqlite3_result_blob\",\"\",[\"number\",\"number\",\"number\",\"number\"]);var sqlite3_result_int=cwrap(\"sqlite3_result_int\",\"\",[\"number\",\"number\"]);var sqlite3_result_error=cwrap(\"sqlite3_result_error\",\"\",[\"number\",\"string\",\"number\"]);var registerExtensionFunctions=cwrap(\"RegisterExtensionFunctions\",\"number\",[\"number\"]);function Statement(stmt1,db){this.stmt=stmt1;this.db=db;this.pos=1;this.allocatedmem=[]}Statement.prototype[\"bind\"]=function bind(values){if(!this.stmt){throw\"Statement closed\"}this[\"reset\"]();if(Array.isArray(values))return this.bindFromArray(values);if(values!=null&&typeof values===\"object\"){return this.bindFromObject(values)}return true};Statement.prototype[\"step\"]=function step(){if(!this.stmt){throw\"Statement closed\"}this.pos=1;var ret=sqlite3_step(this.stmt);switch(ret){case SQLITE_ROW:return true;case SQLITE_DONE:return false;default:throw this.db.handleError(ret)}};Statement.prototype.getNumber=function getNumber(pos){if(pos==null){pos=this.pos;this.pos+=1}return sqlite3_column_double(this.stmt,pos)};Statement.prototype.getString=function getString(pos){if(pos==null){pos=this.pos;this.pos+=1}return sqlite3_column_text(this.stmt,pos)};Statement.prototype.getBlob=function getBlob(pos){if(pos==null){pos=this.pos;this.pos+=1}var size=sqlite3_column_bytes(this.stmt,pos);var ptr=sqlite3_column_blob(this.stmt,pos);var result=new Uint8Array(size);for(var i=0;i>>0);if(data!=null){FS.createDataFile(\"/\",this.filename,data,true,true)}this.handleError(sqlite3_open(this.filename,apiTemp));this.db=getValue(apiTemp,\"i32\");registerExtensionFunctions(this.db);this.statements={};this.functions={}}Database.prototype[\"run\"]=function run(sql,params){if(!this.db){throw\"Database closed\"}if(params){var stmt=this[\"prepare\"](sql,params);try{stmt[\"step\"]()}finally{stmt[\"free\"]()}}else{this.handleError(sqlite3_exec(this.db,sql,0,0,apiTemp))}return this};Database.prototype[\"exec\"]=function exec(sql,params){if(!this.db){throw\"Database closed\"}var stack=stackSave();var stmt=null;try{var nextSqlPtr=allocateUTF8OnStack(sql);var pzTail=stackAlloc(4);var results=[];while(getValue(nextSqlPtr,\"i8\")!==NULL){setValue(apiTemp,0,\"i32\");setValue(pzTail,0,\"i32\");this.handleError(sqlite3_prepare_v2_sqlptr(this.db,nextSqlPtr,-1,apiTemp,pzTail));var pStmt=getValue(apiTemp,\"i32\");nextSqlPtr=getValue(pzTail,\"i32\");if(pStmt!==NULL){var curresult=null;stmt=new Statement(pStmt,this);if(params!=null){stmt.bind(params)}while(stmt[\"step\"]()){if(curresult===null){curresult={columns:stmt[\"getColumnNames\"](),values:[]};results.push(curresult)}curresult[\"values\"].push(stmt[\"get\"]())}stmt[\"free\"]()}}return results}catch(errCaught){if(stmt)stmt[\"free\"]();throw errCaught}finally{stackRestore(stack)}};Database.prototype[\"each\"]=function each(sql,params,callback,done){var stmt;if(typeof params===\"function\"){done=callback;callback=params;params=undefined}stmt=this[\"prepare\"](sql,params);try{while(stmt[\"step\"]()){callback(stmt[\"getAsObject\"]())}}finally{stmt[\"free\"]()}if(typeof done===\"function\"){return done()}return undefined};Database.prototype[\"prepare\"]=function prepare(sql,params){setValue(apiTemp,0,\"i32\");this.handleError(sqlite3_prepare_v2(this.db,sql,-1,apiTemp,NULL));var pStmt=getValue(apiTemp,\"i32\");if(pStmt===NULL){throw\"Nothing to prepare\"}var stmt=new Statement(pStmt,this);if(params!=null){stmt.bind(params)}this.statements[pStmt]=stmt;return stmt};Database.prototype[\"iterateStatements\"]=function iterateStatements(sql){return new StatementIterator(sql,this)};Database.prototype[\"export\"]=function exportDatabase(){Object.values(this.statements).forEach(function each(stmt){stmt[\"free\"]()});Object.values(this.functions).forEach(removeFunction);this.functions={};this.handleError(sqlite3_close_v2(this.db));var binaryDb=FS.readFile(this.filename,{encoding:\"binary\"});this.handleError(sqlite3_open(this.filename,apiTemp));this.db=getValue(apiTemp,\"i32\");return binaryDb};Database.prototype[\"close\"]=function close(){if(this.db===null){return}Object.values(this.statements).forEach(function each(stmt){stmt[\"free\"]()});Object.values(this.functions).forEach(removeFunction);this.functions={};this.handleError(sqlite3_close_v2(this.db));FS.unlink(\"/\"+this.filename);this.db=null};Database.prototype[\"handleError\"]=function handleError(returnCode){var errmsg;if(returnCode===SQLITE_OK){return null}errmsg=sqlite3_errmsg(this.db);throw new Error(errmsg)};Database.prototype[\"getRowsModified\"]=function getRowsModified(){return sqlite3_changes(this.db)};Database.prototype[\"create_function\"]=function create_function(name,func){function wrapped_func(cx,argc,argv){var result;function extract_blob(ptr){var size=sqlite3_value_bytes(ptr);var blob_ptr=sqlite3_value_blob(ptr);var blob_arg=new Uint8Array(size);for(var j=0;j1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);if(typeof module!==\"undefined\"){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}function getValue(ptr,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":return HEAP8[ptr>>0];case\"i8\":return HEAP8[ptr>>0];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":return HEAP32[ptr>>2];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];default:abort(\"invalid type for getValue: \"+type)}return null}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"sql-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"L\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"Da\"];addOnInit(Module[\"asm\"][\"M\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return\"(no stack trace available)\"}}return error.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function _tzset(){if(_tzset.called)return;_tzset.called=true;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[__get_timezone()>>2]=stdTimezoneOffset*60;HEAP32[__get_daylight()>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function ___localtime_r(a0,a1){return _localtime_r(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};function getRandomDevice(){if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!==\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=path.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,65536);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{\"r\":0,\"r+\":2,\"w\":577,\"w+\":578,\"a\":1089,\"a+\":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate===\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);if(typeof Uint8Array!=\"undefined\")xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]===\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]===\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!==\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_access(path,amode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chown32(path,owner,group){try{path=SYSCALLS.getStr(path);FS.chown(path,owner,group);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ftruncate64(fd,zero,low,high){try{var length=SYSCALLS.get64(low,high);FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!==\"undefined\"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function setFileTime(path,time){path=UTF8ToString(path);try{FS.utime(path,time,time);return 0}catch(e){if(!(e instanceof FS.ErrnoError))throw e+\" : \"+stackTrace();setErrNo(e.errno);return-1}}function _utimes(path,times){var time;if(times){var mtime=times+8;time=HEAP32[mtime>>2]*1e3;time+=HEAP32[mtime+4>>2]/1e3}else{time=Date.now()}return setFileTime(path,time)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"a\":___assert_fail,\"r\":___localtime_r,\"E\":___sys_access,\"g\":___sys_chmod,\"x\":___sys_chown32,\"h\":___sys_fchmod,\"y\":___sys_fchown32,\"b\":___sys_fcntl64,\"i\":___sys_fstat64,\"D\":___sys_ftruncate64,\"B\":___sys_getcwd,\"w\":___sys_geteuid32,\"d\":___sys_getpid,\"j\":___sys_lstat64,\"I\":___sys_mkdir,\"F\":___sys_mmap2,\"G\":___sys_munmap,\"H\":___sys_open,\"z\":___sys_readlink,\"t\":___sys_rmdir,\"e\":___sys_stat64,\"v\":___sys_unlink,\"k\":_emscripten_get_heap_max,\"m\":_emscripten_memcpy_big,\"c\":_emscripten_resize_heap,\"q\":_emscripten_thread_sleep,\"o\":_environ_get,\"p\":_environ_sizes_get,\"f\":_fd_close,\"n\":_fd_fdstat_get,\"s\":_fd_read,\"l\":_fd_seek,\"C\":_fd_sync,\"u\":_fd_write,\"J\":_gettimeofday,\"K\":_time,\"A\":_utimes};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _memset=Module[\"_memset\"]=function(){return(_memset=Module[\"_memset\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _sqlite3_free=Module[\"_sqlite3_free\"]=function(){return(_sqlite3_free=Module[\"_sqlite3_free\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _sqlite3_step=Module[\"_sqlite3_step\"]=function(){return(_sqlite3_step=Module[\"_sqlite3_step\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _sqlite3_finalize=Module[\"_sqlite3_finalize\"]=function(){return(_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=function(){return(_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _sqlite3_reset=Module[\"_sqlite3_reset\"]=function(){return(_sqlite3_reset=Module[\"_sqlite3_reset\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=function(){return(_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=function(){return(_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _sqlite3_value_text=Module[\"_sqlite3_value_text\"]=function(){return(_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=function(){return(_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _sqlite3_value_double=Module[\"_sqlite3_value_double\"]=function(){return(_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _sqlite3_value_int=Module[\"_sqlite3_value_int\"]=function(){return(_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _sqlite3_value_type=Module[\"_sqlite3_value_type\"]=function(){return(_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=function(){return(_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _sqlite3_result_double=Module[\"_sqlite3_result_double\"]=function(){return(_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _sqlite3_result_error=Module[\"_sqlite3_result_error\"]=function(){return(_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _sqlite3_result_int=Module[\"_sqlite3_result_int\"]=function(){return(_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=function(){return(_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _sqlite3_result_null=Module[\"_sqlite3_result_null\"]=function(){return(_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _sqlite3_result_text=Module[\"_sqlite3_result_text\"]=function(){return(_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _sqlite3_column_count=Module[\"_sqlite3_column_count\"]=function(){return(_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _sqlite3_data_count=Module[\"_sqlite3_data_count\"]=function(){return(_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=function(){return(_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=function(){return(_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _sqlite3_column_double=Module[\"_sqlite3_column_double\"]=function(){return(_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _sqlite3_column_text=Module[\"_sqlite3_column_text\"]=function(){return(_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _sqlite3_column_type=Module[\"_sqlite3_column_type\"]=function(){return(_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _sqlite3_column_name=Module[\"_sqlite3_column_name\"]=function(){return(_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=function(){return(_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=function(){return(_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=function(){return(_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=function(){return(_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=function(){return(_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _sqlite3_sql=Module[\"_sqlite3_sql\"]=function(){return(_sqlite3_sql=Module[\"_sqlite3_sql\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _sqlite3_normalized_sql=Module[\"_sqlite3_normalized_sql\"]=function(){return(_sqlite3_normalized_sql=Module[\"_sqlite3_normalized_sql\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=function(){return(_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _sqlite3_exec=Module[\"_sqlite3_exec\"]=function(){return(_sqlite3_exec=Module[\"_sqlite3_exec\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _sqlite3_changes=Module[\"_sqlite3_changes\"]=function(){return(_sqlite3_changes=Module[\"_sqlite3_changes\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=function(){return(_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=function(){return(_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _sqlite3_open=Module[\"_sqlite3_open\"]=function(){return(_sqlite3_open=Module[\"_sqlite3_open\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=function(){return(_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var __get_tzname=Module[\"__get_tzname\"]=function(){return(__get_tzname=Module[\"__get_tzname\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __get_daylight=Module[\"__get_daylight\"]=function(){return(__get_daylight=Module[\"__get_daylight\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var __get_timezone=Module[\"__get_timezone\"]=function(){return(__get_timezone=Module[\"__get_timezone\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stackSave\"]=stackSave;Module[\"stackRestore\"]=stackRestore;Module[\"stackAlloc\"]=stackAlloc;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n // The shell-pre.js and emcc-generated code goes above\n return Module;\n }); // The end of the promise being returned\n\n return initSqlJsPromise;\n} // The end of our initSqlJs function\n\n// This bit below is copied almost exactly from what you get when you use the MODULARIZE=1 flag with emcc\n// However, we don't want to use the emcc modularization. See shell-pre.js\nif (typeof exports === 'object' && typeof module === 'object'){\n module.exports = initSqlJs;\n // This will allow the module to be used in ES6 or CommonJS\n module.exports.default = initSqlJs;\n}\nelse if (typeof define === 'function' && define['amd']) {\n define([], function() { return initSqlJs; });\n}\nelse if (typeof exports === 'object'){\n exports[\"Module\"] = initSqlJs;\n}\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","module.exports = require('./browser/algorithms.json')\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (var i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (var i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","module.exports = {};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'\n ]\n ]\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'\n ]\n ]\n }\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = require('events').EventEmitter;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = new Buffer(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","import initSqlJs from 'sql.js/dist/sql-wasm.js'\nimport dbUtils from './_statements'\n\nlet SQL = null\nconst sqlModuleReady = initSqlJs().then(sqlModule => { SQL = sqlModule })\n\nfunction _getDataSourcesFromSqlResult (sqlResult) {\n if (!sqlResult) {\n return {}\n }\n const dataSorces = {}\n sqlResult.columns.forEach((column, index) => {\n dataSorces[column] = sqlResult.values.map(row => row[index])\n })\n return dataSorces\n}\n\nexport default class Sql {\n constructor () {\n this.db = null\n }\n\n static build () {\n return sqlModuleReady\n .then(() => {\n return new Sql()\n })\n }\n\n createDb (buffer) {\n if (this.db != null) this.db.close()\n this.db = new SQL.Database(buffer)\n return this.db\n }\n\n open (buffer) {\n this.createDb(buffer && new Uint8Array(buffer))\n return {\n ready: true\n }\n }\n\n exec (sql, params) {\n if (this.db === null) {\n this.createDb()\n }\n if (!sql) {\n throw new Error('exec: Missing query string')\n }\n const sqlResults = this.db.exec(sql, params)\n return sqlResults.map(result => {\n return {\n columns: result.columns,\n values: _getDataSourcesFromSqlResult(result)\n }\n })\n }\n\n import (tabName, data, progressCounterId, progressCallback, chunkSize = 1500) {\n if (this.db === null) {\n this.createDb()\n }\n const columns = data.columns\n const rowCount = data.values[columns[0]].length\n this.db.exec(dbUtils.getCreateStatement(tabName, data.values))\n const chunks = dbUtils.generateChunks(data.values, chunkSize)\n const chunksAmount = Math.ceil(rowCount / chunkSize)\n let count = 0\n const insertStr = dbUtils.getInsertStmt(tabName, columns)\n const insertStmt = this.db.prepare(insertStr)\n\n progressCallback({ progress: 0, id: progressCounterId })\n for (const chunk of chunks) {\n this.db.exec('BEGIN')\n for (const row of chunk) {\n insertStmt.run(row)\n }\n this.db.exec('COMMIT')\n count++\n progressCallback({ progress: 100 * (count / chunksAmount), id: progressCounterId })\n }\n\n return {\n finish: true\n }\n }\n\n export () {\n return this.db.export()\n }\n\n close () {\n if (this.db) {\n this.db.close()\n }\n return {\n finished: true\n }\n }\n}\n","import registerPromiseWorker from 'promise-worker/register'\nimport Sql from './_sql'\n\nconst sqlReady = Sql.build()\n\nfunction processMsg (sql) {\n const data = this\n switch (data && data.action) {\n case 'open':\n return sql.open(data.buffer)\n case 'reopen':\n return sql.open(sql.export())\n case 'exec':\n return sql.exec(data.sql, data.params)\n case 'import':\n return sql.import(\n data.tabName,\n data.data,\n data.progressCounterId,\n postMessage\n )\n case 'export':\n return sql.export()\n case 'close':\n return sql.close()\n default:\n throw new Error('Invalid action : ' + (data && data.action))\n }\n}\n\nfunction onError (error) {\n return {\n error: error.message\n }\n}\n\nregisterPromiseWorker(data => {\n return sqlReady\n .then(processMsg.bind(data))\n .catch(onError)\n})\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","module.exports = require('events').EventEmitter;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","/*!\n * sqlite-parser - v1.0.1\n * @copyright 2015-2017 Code School (http://codeschool.com)\n * @author Nick Wronski \n */\n(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.sqliteParser = 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;o0){for(i=1,j=1;i0;},function(d,e){return{'args':Object.assign(e,d)};},function(s){return{'filter':keyNode(s)};},peg$otherExpectation(\"Error Message\"),function(m){return m;},peg$otherExpectation(\"Statement\"),function(m,s){return Object.assign(s,m);},peg$otherExpectation(\"QUERY PLAN\"),function(e,q){return{'explain':isOkay(e)};},peg$otherExpectation(\"QUERY PLAN Keyword\"),function(q,p){return foldStringKey([q,p]);},peg$otherExpectation(\"END Transaction Statement\"),function(s,t){return{'type':'statement','variant':'transaction','action':'commit'};},peg$otherExpectation(\"BEGIN Transaction Statement\"),function(s,m,t,n){return Object.assign({'type':'statement','variant':'transaction','action':'begin'},m,n);},function(t){return t;},function(m){return{'defer':keyNode(m)};},peg$otherExpectation(\"ROLLBACK Statement\"),function(s,n){return Object.assign({'type':'statement','variant':'transaction','action':'rollback'},n);},peg$otherExpectation(\"TO Clause\"),function(n){return{'savepoint':n};},function(s){return keyNode(s);},peg$otherExpectation(\"SAVEPOINT Statement\"),function(s,n){return{'type':'statement','variant':s,'target':n};},peg$otherExpectation(\"RELEASE Statement\"),function(s,a,n){return{'type':'statement','variant':keyNode(s),'target':n};},peg$otherExpectation(\"ALTER TABLE Statement\"),function(s,n,e){return Object.assign({'type':'statement','variant':keyNode(s),'target':n},e);},peg$otherExpectation(\"ALTER TABLE Keyword\"),function(a,t){return foldStringKey([a,t]);},peg$otherExpectation(\"RENAME TO Keyword\"),function(s,n){return{'action':keyNode(s),'name':n};},peg$otherExpectation(\"ADD COLUMN Keyword\"),function(s,d){return{'action':keyNode(s),'definition':d};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"WITH Clause\"),function(s,v,t){var recursive={'variant':isOkay(v)?'recursive':'common'};if(isArrayOkay(t)){t=t.map(function(elem){return Object.assign(elem,recursive);});}return{'with':t};},function(f,r){return flattenAll([f,r]);},peg$otherExpectation(\"Common Table Expression\"),function(t,s){return Object.assign({'type':'expression','format':'table','variant':'common','target':t},s);},function(s){return{'expression':s};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"ATTACH Statement\"),function(a,b,e,n){return{'type':'statement','variant':keyNode(a),'target':n,'attach':e};},peg$otherExpectation(\"DETACH Statement\"),function(d,b,n){return{'type':'statement','variant':keyNode(d),'target':n};},peg$otherExpectation(\"VACUUM Statement\"),function(v,t){return Object.assign({'type':'statement','variant':'vacuum'},t);},function(t){return{'target':t};},peg$otherExpectation(\"ANALYZE Statement\"),function(s,a){return Object.assign({'type':'statement','variant':keyNode(s)},a);},function(n){return{'target':n['name']};},peg$otherExpectation(\"REINDEX Statement\"),function(a){return{'target':a['name']};},peg$otherExpectation(\"PRAGMA Statement\"),function(s,n,v){return{'type':'statement','variant':keyNode(s),'target':n,'args':{'type':'expression','variant':'list','expression':v}};},function(v){return v;},function(v){return /^(yes|no|on|off|false|true|0|1)$/i.test(v);},function(v){return{'type':'literal','variant':'boolean','normalized':/^(yes|on|true|1)$/i.test(v)?'1':'0','value':v};},function(n){return keyNode(n);},function(n){return{'type':'identifier','variant':'name','name':n};},peg$otherExpectation(\"SELECT Statement\"),function(s,o,l){return Object.assign(s,o,l);},peg$otherExpectation(\"ORDER BY Clause\"),function(d){return{'order':d['result']};},peg$otherExpectation(\"LIMIT Clause\"),function(s,e,d){return{'limit':Object.assign({'type':'expression','variant':'limit','start':e},d)};},peg$otherExpectation(\"OFFSET Clause\"),function(o,e){return{'offset':e};},function(s,u){if(isArrayOkay(u)){return{'type':'statement','variant':'compound','statement':s,'compound':u};}else{return s;}},peg$otherExpectation(\"Union Operation\"),function(c,s){return{'type':'compound','variant':c,'statement':s};},function(s,f,w,g){return Object.assign({'type':'statement','variant':'select'},s,f,w,g);},peg$otherExpectation(\"SELECT Results Clause\"),function(d,t){return Object.assign({'result':t},d);},peg$otherExpectation(\"SELECT Results Modifier\"),function(s){return{'distinct':true};},function(s){return{};},peg$otherExpectation(\"FROM Clause\"),function(f,s){return{'from':s};},peg$otherExpectation(\"WHERE Clause\"),function(f,e){return{'where':makeArray(e)};},peg$otherExpectation(\"GROUP BY Clause\"),function(f,e,h){return Object.assign({'group':e},h);},peg$otherExpectation(\"HAVING Clause\"),function(f,e){return{'having':e};},function(q,s){return{'type':'identifier','variant':'star','name':foldStringWord([q,s])};},function(n,s){return foldStringWord([n,s]);},function(e,a){return Object.assign(e,a);},function(f,t){if(isArrayOkay(t)){return{'type':'map','variant':'join','source':f,'map':t};}return f;},function(cl,c){return Object.assign(cl,c);},peg$otherExpectation(\"CROSS JOIN Operation\"),function(n){return{'type':'join','variant':'cross join','source':n};},peg$otherExpectation(\"JOIN Operation\"),function(o,n){return{'type':'join','variant':keyNode(o),'source':n};},function(n,l,a){return Object.assign({'type':'function','variant':'table','name':n,'args':l},a);},peg$otherExpectation(\"Qualified Table\"),function(d,i){return Object.assign(d,i);},peg$otherExpectation(\"Qualified Table Identifier\"),function(n,a){return Object.assign(n,a);},peg$otherExpectation(\"Qualfied Table Index\"),function(s,n){return{'index':n};},function(n,i){return{'index':foldStringKey([n,i])};},peg$otherExpectation(\"SELECT Source\"),function(l,a){return Object.assign(l,a);},peg$otherExpectation(\"Subquery\"),function(s,a){return Object.assign(s,a);},peg$otherExpectation(\"Alias\"),function(a,n){return{'alias':n};},peg$otherExpectation(\"JOIN Operator\"),function(n,t,j){return foldStringKey([n,t,j]);},function(t,o){return foldStringKey([t,o]);},function(t){return keyNode(t);},peg$otherExpectation(\"JOIN Constraint\"),function(c){return{'constraint':Object.assign({'type':'constraint','variant':'join'},c)};},peg$otherExpectation(\"Join ON Clause\"),function(s,e){return{'format':keyNode(s),'on':e};},peg$otherExpectation(\"Join USING Clause\"),function(s,e){return{'format':keyNode(s),'using':e};},peg$otherExpectation(\"VALUES Clause\"),function(s,l){return{'type':'statement','variant':'select','result':l};},function(f,b){return{'result':flattenAll([f,b])};},function(i){return i;},peg$otherExpectation(\"Ordering Expression\"),function(e,d){if(isOkay(d)){return Object.assign({'type':'expression','variant':'order','expression':e},d);}return e;},peg$otherExpectation(\"Star\"),peg$otherExpectation(\"Fallback Type\"),peg$otherExpectation(\"INSERT Statement\"),function(k,t){return Object.assign({'type':'statement','variant':'insert'},k,t);},peg$otherExpectation(\"INSERT Keyword\"),function(a,m){return Object.assign({'action':keyNode(a)},m);},peg$otherExpectation(\"REPLACE Keyword\"),function(a){return{'action':keyNode(a)};},peg$otherExpectation(\"INSERT OR Modifier\"),function(s,m){return{'or':keyNode(m)};},function(i,r){return Object.assign({'into':i},r);},peg$otherExpectation(\"INTO Clause\"),function(s,t){return t;},peg$otherExpectation(\"INTO Keyword\"),function(r){return{'result':r};},peg$otherExpectation(\"Column List\"),function(f,b){return{'columns':flattenAll([f,b])};},function(c){return c;},peg$otherExpectation(\"Column Name\"),function(n){return{'type':'identifier','variant':'column','name':n};},function(s,r){return r;},peg$otherExpectation(\"VALUES Keyword\"),function(f,b){return flattenAll([f,b]);},peg$otherExpectation(\"Wrapped Expression List\"),function(e){return e;},peg$otherExpectation(\"DEFAULT VALUES Clause\"),function(d,v){return{'type':'values','variant':'default'};},peg$otherExpectation(\"Compound Operator\"),peg$otherExpectation(\"UNION Operator\"),function(s,a){return foldStringKey([s,a]);},function(a){return a;},peg$otherExpectation(\"UPDATE Statement\"),function(s,f,t,u,w,o,l){return Object.assign({'type':'statement','variant':s,'into':t},f,u,w,o,l);},peg$otherExpectation(\"UPDATE Keyword\"),peg$otherExpectation(\"UPDATE OR Modifier\"),function(t){return{'or':keyNode(t)};},peg$otherExpectation(\"SET Clause\"),function(c){return{'set':c};},peg$otherExpectation(\"Column Assignment\"),function(f,e){return{'type':'assignment','target':f,'value':e};},peg$otherExpectation(\"DELETE Statement\"),function(s,t,w,o,l){return Object.assign({'type':'statement','variant':s,'from':t},w,o,l);},peg$otherExpectation(\"DELETE Keyword\"),peg$otherExpectation(\"CREATE Statement\"),peg$otherExpectation(\"CREATE TABLE Statement\"),function(s,ne,id,r){return Object.assign({'type':'statement','name':id},s,r,ne);},function(s,tmp,t){return Object.assign({'variant':s,'format':keyNode(t)},tmp);},function(t){return{'temporary':isOkay(t)};},peg$otherExpectation(\"IF NOT EXISTS Modifier\"),function(i,n,e){return{'condition':makeArray({'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':foldStringKey([n,e])}})};},peg$otherExpectation(\"Table Definition\"),function(s,t,r){return Object.assign({'definition':flattenAll([s,t])},r);},function(r,w){return{'optimization':[{'type':'optimization','value':foldStringKey([r,w])}]};},function(f){return f;},peg$otherExpectation(\"Column Definition\"),function(n,t,c){return Object.assign({'type':'definition','variant':'column','name':n,'definition':isOkay(c)?c:[]},t);},peg$otherExpectation(\"Column Datatype\"),function(t){return{'datatype':t};},peg$otherExpectation(\"Column Constraint\"),function(n,c,ln){return Object.assign(c,n);},function(cl){return cl[cl.length-1];},peg$otherExpectation(\"CONSTRAINT Name\"),function(n){return{'name':n};},peg$otherExpectation(\"FOREIGN KEY Column Constraint\"),function(f){return Object.assign({'variant':'foreign key'},f);},peg$otherExpectation(\"PRIMARY KEY Column Constraint\"),function(p,d,c,a){return Object.assign(p,c,d,a);},peg$otherExpectation(\"PRIMARY KEY Keyword\"),function(s,k){return{'type':'constraint','variant':foldStringKey([s,k])};},peg$otherExpectation(\"AUTOINCREMENT Keyword\"),function(a){return{'autoIncrement':true};},function(s,c){return Object.assign({'type':'constraint','variant':s},c);},peg$otherExpectation(\"UNIQUE Column Constraint\"),peg$otherExpectation(\"NULL Column Constraint\"),function(n,l){return foldStringKey([n,l]);},peg$otherExpectation(\"CHECK Column Constraint\"),peg$otherExpectation(\"DEFAULT Column Constraint\"),function(s,v){return{'type':'constraint','variant':keyNode(s),'value':v};},peg$otherExpectation(\"COLLATE Column Constraint\"),function(c){return{'type':'constraint','variant':'collate','collate':c};},peg$otherExpectation(\"Table Constraint\"),function(n,c,nl){return Object.assign({'type':'definition','variant':'constraint'},c,n);},peg$otherExpectation(\"CHECK Table Constraint\"),function(c){return{'definition':makeArray(c)};},peg$otherExpectation(\"PRIMARY KEY Table Constraint\"),function(k,c,t){return{'definition':makeArray(Object.assign(k,t,c[1])),'columns':c[0]};},function(s){return{'type':'constraint','variant':keyNode(s)};},function(p,k){return foldStringKey([p,k]);},peg$otherExpectation(\"UNIQUE Keyword\"),function(u){return keyNode(u);},function(f,b){return[f].concat(b);},function(c){return c.map(function(_ref){var _ref2=_slicedToArray(_ref,1);var res=_ref2[0];return res;});},function(c){var auto=c.find(function(_ref3){var _ref4=_slicedToArray(_ref3,2);var res=_ref4[0];var a=_ref4[1];return isOkay(a);});return[c.map(function(_ref5){var _ref6=_slicedToArray(_ref5,2);var res=_ref6[0];var a=_ref6[1];return res;}),auto?auto[1]:null];},peg$otherExpectation(\"Indexed Column\"),function(e,d,a){var res=e;if(isOkay(d)){res=Object.assign({'type':'expression','variant':'order','expression':e},d);}return[res,a];},peg$otherExpectation(\"Collation\"),function(c){return{'collate':makeArray(c)};},peg$otherExpectation(\"Column Direction\"),function(t){return{'direction':keyNode(t)};},function(s,t){return{'conflict':keyNode(t)};},peg$otherExpectation(\"ON CONFLICT Keyword\"),function(o,c){return foldStringKey([o,c]);},function(k,c){return{'type':'constraint','variant':keyNode(k),'expression':c};},peg$otherExpectation(\"FOREIGN KEY Table Constraint\"),function(k,l,c){return Object.assign({'definition':makeArray(Object.assign(k,c))},l);},peg$otherExpectation(\"FOREIGN KEY Keyword\"),function(f,k){return{'type':'constraint','variant':foldStringKey([f,k])};},function(r,a,d){return Object.assign({'type':'constraint'},r,a,d);},peg$otherExpectation(\"REFERENCES Clause\"),function(s,t){return{'references':t};},function(f,b){return{'action':flattenAll([f,b])};},peg$otherExpectation(\"FOREIGN KEY Action Clause\"),function(m,a,n){return{'type':'action','variant':keyNode(m),'action':keyNode(n)};},peg$otherExpectation(\"FOREIGN KEY Action\"),function(s,v){return foldStringKey([s,v]);},function(c){return keyNode(c);},function(n,a){return foldStringKey([n,a]);},function(m,n){return{'type':'action','variant':keyNode(m),'action':n};},peg$otherExpectation(\"DEFERRABLE Clause\"),function(n,d,i){return{'defer':foldStringKey([n,d,i])};},function(i,d){return foldStringKey([i,d]);},function(s){return{'definition':makeArray(s)};},peg$otherExpectation(\"CREATE INDEX Statement\"),function(s,ne,n,o,w){return Object.assign({'type':'statement','target':n,'on':o},s,ne,w);},function(s,u,i){return Object.assign({'variant':keyNode(s),'format':keyNode(i)},u);},function(u){return{'unique':true};},peg$otherExpectation(\"ON Clause\"),function(o,t,c){return{'type':'identifier','variant':'expression','format':'table','name':t['name'],'columns':c};},peg$otherExpectation(\"CREATE TRIGGER Statement\"),function(s,ne,n,cd,o,me,wh,a){return Object.assign({'type':'statement','target':n,'on':o,'event':cd,'by':isOkay(me)?me:'row','action':makeArray(a)},s,ne,wh);},function(s,tmp,t){return Object.assign({'variant':keyNode(s),'format':keyNode(t)},tmp);},peg$otherExpectation(\"Conditional Clause\"),function(m,d){return Object.assign({'type':'event'},m,d);},function(m){return{'occurs':keyNode(m)};},function(i,o){return foldStringKey([i,o]);},peg$otherExpectation(\"Conditional Action\"),function(o){return{'event':keyNode(o)};},function(s,f){return{'event':keyNode(s),'of':f};},function(s,c){return c;},\"statement\",peg$literalExpectation(\"STATEMENT\",true),function(f,e,r){return keyNode(r);},function(w,e){return{'when':e};},peg$otherExpectation(\"Actions Clause\"),function(s,a,e){return a;},function(l){return l;},peg$otherExpectation(\"CREATE VIEW Statement\"),function(s,ne,n,r){return Object.assign({'type':'statement','target':n,'result':r},s,ne);},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'view','name':n['name'],'columns':[]},a);},function(s,tmp,v){return Object.assign({'variant':keyNode(s),'format':keyNode(v)},tmp);},peg$otherExpectation(\"CREATE VIRTUAL TABLE Statement\"),function(s,ne,n,m){return Object.assign({'type':'statement','target':n,'result':m},s,ne);},function(s,v,t){return{'variant':keyNode(s),'format':keyNode(v)};},function(m,a){return Object.assign({'type':'module','variant':'virtual','name':m},a);},peg$otherExpectation(\"Module Arguments\"),function(l){return{'args':{'type':'expression','variant':'list','expression':isOkay(l)?l:[]}};},function(f,b){return flattenAll([f,b]).filter(function(arg){return isOkay(arg);});},function(a){return a;},peg$otherExpectation(\"DROP Statement\"),function(s,q){return Object.assign({'type':'statement','target':Object.assign(q,{'variant':s['format']})},s);},peg$otherExpectation(\"DROP Keyword\"),function(s,t,i){return Object.assign({'variant':keyNode(s),'format':t,'condition':[]},i);},peg$otherExpectation(\"DROP Type\"),peg$otherExpectation(\"IF EXISTS Keyword\"),function(i,e){return{'condition':[{'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':keyNode(e)}}]};},peg$otherExpectation(\"Or\"),peg$otherExpectation(\"Add\"),peg$otherExpectation(\"Subtract\"),peg$otherExpectation(\"Multiply\"),peg$otherExpectation(\"Divide\"),peg$otherExpectation(\"Modulo\"),peg$otherExpectation(\"Shift Left\"),peg$otherExpectation(\"Shift Right\"),peg$otherExpectation(\"Logical AND\"),peg$otherExpectation(\"Logical OR\"),peg$otherExpectation(\"Less Than\"),peg$otherExpectation(\"Greater Than\"),peg$otherExpectation(\"Less Than Or Equal\"),peg$otherExpectation(\"Greater Than Or Equal\"),peg$otherExpectation(\"Equal\"),peg$otherExpectation(\"Not Equal\"),peg$otherExpectation(\"IS\"),function(i,n){return foldStringKey([i,n]);},peg$otherExpectation(\"Identifier\"),peg$otherExpectation(\"Database Identifier\"),function(n){return{'type':'identifier','variant':'database','name':n};},peg$otherExpectation(\"Function Identifier\"),function(d,n){return{'type':'identifier','variant':'function','name':foldStringWord([d,n])};},peg$otherExpectation(\"Table Identifier\"),function(d,n){return{'type':'identifier','variant':'table','name':foldStringWord([d,n])};},function(n,d){return foldStringWord([n,d]);},peg$otherExpectation(\"Column Identifier\"),function(q,n){return{'type':'identifier','variant':'column','name':foldStringWord([q,n])};},function(){return'';},function(d,t){return foldStringWord([d,t]);},peg$otherExpectation(\"Collation Identifier\"),function(n){return{'type':'identifier','variant':'collation','name':n};},peg$otherExpectation(\"Savepoint Identifier\"),function(n){return{'type':'identifier','variant':'savepoint','name':n};},peg$otherExpectation(\"Index Identifier\"),function(d,n){return{'type':'identifier','variant':'index','name':foldStringWord([d,n])};},peg$otherExpectation(\"Trigger Identifier\"),function(d,n){return{'type':'identifier','variant':'trigger','name':foldStringWord([d,n])};},peg$otherExpectation(\"View Identifier\"),function(d,n){return{'type':'identifier','variant':'view','name':foldStringWord([d,n])};},peg$otherExpectation(\"Pragma Identifier\"),function(d,n){return{'type':'identifier','variant':'pragma','name':foldStringWord([d,n])};},peg$otherExpectation(\"CTE Identifier\"),function(d){return d;},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'table','name':n['name'],'columns':[]},a);},peg$otherExpectation(\"Table Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'table','name':n};},peg$otherExpectation(\"Column Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'column','name':n};},peg$otherExpectation(\"Datatype Name\"),function(t){return[t,'text'];},function(t){return[t,'real'];},function(t){return[t,'numeric'];},function(t){return[t,'integer'];},function(t){return[t,'none'];},peg$otherExpectation(\"TEXT Datatype Name\"),\"n\",peg$literalExpectation(\"N\",true),\"var\",peg$literalExpectation(\"VAR\",true),\"char\",peg$literalExpectation(\"CHAR\",true),\"tiny\",peg$literalExpectation(\"TINY\",true),\"medium\",peg$literalExpectation(\"MEDIUM\",true),\"long\",peg$literalExpectation(\"LONG\",true),\"text\",peg$literalExpectation(\"TEXT\",true),\"clob\",peg$literalExpectation(\"CLOB\",true),peg$otherExpectation(\"REAL Datatype Name\"),\"float\",peg$literalExpectation(\"FLOAT\",true),\"real\",peg$literalExpectation(\"REAL\",true),peg$otherExpectation(\"DOUBLE Datatype Name\"),\"double\",peg$literalExpectation(\"DOUBLE\",true),\"precision\",peg$literalExpectation(\"PRECISION\",true),function(d,p){return foldStringWord([d,p]);},peg$otherExpectation(\"NUMERIC Datatype Name\"),\"numeric\",peg$literalExpectation(\"NUMERIC\",true),\"decimal\",peg$literalExpectation(\"DECIMAL\",true),\"boolean\",peg$literalExpectation(\"BOOLEAN\",true),\"date\",peg$literalExpectation(\"DATE\",true),\"time\",peg$literalExpectation(\"TIME\",true),\"stamp\",peg$literalExpectation(\"STAMP\",true),\"string\",peg$literalExpectation(\"STRING\",true),peg$otherExpectation(\"INTEGER Datatype Name\"),\"int\",peg$literalExpectation(\"INT\",true),\"2\",peg$literalExpectation(\"2\",false),\"4\",peg$literalExpectation(\"4\",false),\"8\",peg$literalExpectation(\"8\",false),\"eger\",peg$literalExpectation(\"EGER\",true),\"big\",peg$literalExpectation(\"BIG\",true),\"small\",peg$literalExpectation(\"SMALL\",true),\"floating\",peg$literalExpectation(\"FLOATING\",true),\"point\",peg$literalExpectation(\"POINT\",true),function(f,p){return foldStringWord([f,p]);},peg$otherExpectation(\"BLOB Datatype Name\"),\"blob\",peg$literalExpectation(\"BLOB\",true),/^[a-z0-9$_]/i,peg$classExpectation([[\"a\",\"z\"],[\"0\",\"9\"],\"$\",\"_\"],false,true),\"\\\\u\",peg$literalExpectation(\"\\\\u\",false),/^[a-f0-9]/i,peg$classExpectation([[\"a\",\"f\"],[\"0\",\"9\"]],false,true),function(u,s){return foldStringWord([u,s]).toLowerCase();},function(n){return keyNode(n);},peg$anyExpectation(),function(n){return textNode(n);},/^[ \\t]/,peg$classExpectation([\" \",\"\\t\"],false,false),\"\\\"\",peg$literalExpectation(\"\\\"\",false),\"\\\"\\\"\",peg$literalExpectation(\"\\\"\\\"\",false),/^[^\"]/,peg$classExpectation([\"\\\"\"],true,false),function(n){return unescape(n,'\"');},\"'\",peg$literalExpectation(\"'\",false),function(n){return unescape(n,\"'\");},\"`\",peg$literalExpectation(\"`\",false),\"``\",peg$literalExpectation(\"``\",false),/^[^`]/,peg$classExpectation([\"`\"],true,false),function(n){return unescape(n,'`');},peg$otherExpectation(\"Open Bracket\"),\"[\",peg$literalExpectation(\"[\",false),peg$otherExpectation(\"Close Bracket\"),\"]\",peg$literalExpectation(\"]\",false),peg$otherExpectation(\"Open Parenthesis\"),\"(\",peg$literalExpectation(\"(\",false),peg$otherExpectation(\"Close Parenthesis\"),\")\",peg$literalExpectation(\")\",false),peg$otherExpectation(\"Comma\"),\",\",peg$literalExpectation(\",\",false),peg$otherExpectation(\"Period\"),\".\",peg$literalExpectation(\".\",false),peg$otherExpectation(\"Asterisk\"),\"*\",peg$literalExpectation(\"*\",false),peg$otherExpectation(\"Question Mark\"),\"?\",peg$literalExpectation(\"?\",false),peg$otherExpectation(\"Single Quote\"),peg$otherExpectation(\"Double Quote\"),peg$otherExpectation(\"Backtick\"),peg$otherExpectation(\"Tilde\"),\"~\",peg$literalExpectation(\"~\",false),peg$otherExpectation(\"Plus\"),\"+\",peg$literalExpectation(\"+\",false),peg$otherExpectation(\"Minus\"),\"-\",peg$literalExpectation(\"-\",false),\"=\",peg$literalExpectation(\"=\",false),peg$otherExpectation(\"Ampersand\"),\"&\",peg$literalExpectation(\"&\",false),peg$otherExpectation(\"Pipe\"),\"|\",peg$literalExpectation(\"|\",false),\"%\",peg$literalExpectation(\"%\",false),\"<\",peg$literalExpectation(\"<\",false),\">\",peg$literalExpectation(\">\",false),peg$otherExpectation(\"Exclamation\"),\"!\",peg$literalExpectation(\"!\",false),peg$otherExpectation(\"Semicolon\"),\";\",peg$literalExpectation(\";\",false),peg$otherExpectation(\"Colon\"),peg$otherExpectation(\"Forward Slash\"),\"/\",peg$literalExpectation(\"/\",false),peg$otherExpectation(\"Backslash\"),\"\\\\\",peg$literalExpectation(\"\\\\\",false),\"abort\",peg$literalExpectation(\"ABORT\",true),\"action\",peg$literalExpectation(\"ACTION\",true),\"add\",peg$literalExpectation(\"ADD\",true),\"after\",peg$literalExpectation(\"AFTER\",true),\"all\",peg$literalExpectation(\"ALL\",true),\"alter\",peg$literalExpectation(\"ALTER\",true),\"analyze\",peg$literalExpectation(\"ANALYZE\",true),\"and\",peg$literalExpectation(\"AND\",true),\"as\",peg$literalExpectation(\"AS\",true),\"asc\",peg$literalExpectation(\"ASC\",true),\"attach\",peg$literalExpectation(\"ATTACH\",true),\"autoincrement\",peg$literalExpectation(\"AUTOINCREMENT\",true),\"before\",peg$literalExpectation(\"BEFORE\",true),\"begin\",peg$literalExpectation(\"BEGIN\",true),\"between\",peg$literalExpectation(\"BETWEEN\",true),\"by\",peg$literalExpectation(\"BY\",true),\"cascade\",peg$literalExpectation(\"CASCADE\",true),\"case\",peg$literalExpectation(\"CASE\",true),\"cast\",peg$literalExpectation(\"CAST\",true),\"check\",peg$literalExpectation(\"CHECK\",true),\"collate\",peg$literalExpectation(\"COLLATE\",true),\"column\",peg$literalExpectation(\"COLUMN\",true),\"commit\",peg$literalExpectation(\"COMMIT\",true),\"conflict\",peg$literalExpectation(\"CONFLICT\",true),\"constraint\",peg$literalExpectation(\"CONSTRAINT\",true),\"create\",peg$literalExpectation(\"CREATE\",true),\"cross\",peg$literalExpectation(\"CROSS\",true),\"current_date\",peg$literalExpectation(\"CURRENT_DATE\",true),\"current_time\",peg$literalExpectation(\"CURRENT_TIME\",true),\"current_timestamp\",peg$literalExpectation(\"CURRENT_TIMESTAMP\",true),\"database\",peg$literalExpectation(\"DATABASE\",true),\"default\",peg$literalExpectation(\"DEFAULT\",true),\"deferrable\",peg$literalExpectation(\"DEFERRABLE\",true),\"deferred\",peg$literalExpectation(\"DEFERRED\",true),\"delete\",peg$literalExpectation(\"DELETE\",true),\"desc\",peg$literalExpectation(\"DESC\",true),\"detach\",peg$literalExpectation(\"DETACH\",true),\"distinct\",peg$literalExpectation(\"DISTINCT\",true),\"drop\",peg$literalExpectation(\"DROP\",true),\"each\",peg$literalExpectation(\"EACH\",true),\"else\",peg$literalExpectation(\"ELSE\",true),\"end\",peg$literalExpectation(\"END\",true),\"escape\",peg$literalExpectation(\"ESCAPE\",true),\"except\",peg$literalExpectation(\"EXCEPT\",true),\"exclusive\",peg$literalExpectation(\"EXCLUSIVE\",true),\"exists\",peg$literalExpectation(\"EXISTS\",true),\"explain\",peg$literalExpectation(\"EXPLAIN\",true),\"fail\",peg$literalExpectation(\"FAIL\",true),\"for\",peg$literalExpectation(\"FOR\",true),\"foreign\",peg$literalExpectation(\"FOREIGN\",true),\"from\",peg$literalExpectation(\"FROM\",true),\"full\",peg$literalExpectation(\"FULL\",true),\"glob\",peg$literalExpectation(\"GLOB\",true),\"group\",peg$literalExpectation(\"GROUP\",true),\"having\",peg$literalExpectation(\"HAVING\",true),\"if\",peg$literalExpectation(\"IF\",true),\"ignore\",peg$literalExpectation(\"IGNORE\",true),\"immediate\",peg$literalExpectation(\"IMMEDIATE\",true),\"in\",peg$literalExpectation(\"IN\",true),\"index\",peg$literalExpectation(\"INDEX\",true),\"indexed\",peg$literalExpectation(\"INDEXED\",true),\"initially\",peg$literalExpectation(\"INITIALLY\",true),\"inner\",peg$literalExpectation(\"INNER\",true),\"insert\",peg$literalExpectation(\"INSERT\",true),\"instead\",peg$literalExpectation(\"INSTEAD\",true),\"intersect\",peg$literalExpectation(\"INTERSECT\",true),\"into\",peg$literalExpectation(\"INTO\",true),\"is\",peg$literalExpectation(\"IS\",true),\"isnull\",peg$literalExpectation(\"ISNULL\",true),\"join\",peg$literalExpectation(\"JOIN\",true),\"key\",peg$literalExpectation(\"KEY\",true),\"left\",peg$literalExpectation(\"LEFT\",true),\"like\",peg$literalExpectation(\"LIKE\",true),\"limit\",peg$literalExpectation(\"LIMIT\",true),\"match\",peg$literalExpectation(\"MATCH\",true),\"natural\",peg$literalExpectation(\"NATURAL\",true),\"no\",peg$literalExpectation(\"NO\",true),\"not\",peg$literalExpectation(\"NOT\",true),\"notnull\",peg$literalExpectation(\"NOTNULL\",true),\"of\",peg$literalExpectation(\"OF\",true),\"offset\",peg$literalExpectation(\"OFFSET\",true),\"on\",peg$literalExpectation(\"ON\",true),\"or\",peg$literalExpectation(\"OR\",true),\"order\",peg$literalExpectation(\"ORDER\",true),\"outer\",peg$literalExpectation(\"OUTER\",true),\"plan\",peg$literalExpectation(\"PLAN\",true),\"pragma\",peg$literalExpectation(\"PRAGMA\",true),\"primary\",peg$literalExpectation(\"PRIMARY\",true),\"query\",peg$literalExpectation(\"QUERY\",true),\"raise\",peg$literalExpectation(\"RAISE\",true),\"recursive\",peg$literalExpectation(\"RECURSIVE\",true),\"references\",peg$literalExpectation(\"REFERENCES\",true),\"regexp\",peg$literalExpectation(\"REGEXP\",true),\"reindex\",peg$literalExpectation(\"REINDEX\",true),\"release\",peg$literalExpectation(\"RELEASE\",true),\"rename\",peg$literalExpectation(\"RENAME\",true),\"replace\",peg$literalExpectation(\"REPLACE\",true),\"restrict\",peg$literalExpectation(\"RESTRICT\",true),\"right\",peg$literalExpectation(\"RIGHT\",true),\"rollback\",peg$literalExpectation(\"ROLLBACK\",true),\"row\",peg$literalExpectation(\"ROW\",true),\"rowid\",peg$literalExpectation(\"ROWID\",true),\"savepoint\",peg$literalExpectation(\"SAVEPOINT\",true),\"select\",peg$literalExpectation(\"SELECT\",true),\"set\",peg$literalExpectation(\"SET\",true),\"table\",peg$literalExpectation(\"TABLE\",true),\"temp\",peg$literalExpectation(\"TEMP\",true),\"temporary\",peg$literalExpectation(\"TEMPORARY\",true),\"then\",peg$literalExpectation(\"THEN\",true),\"to\",peg$literalExpectation(\"TO\",true),\"transaction\",peg$literalExpectation(\"TRANSACTION\",true),\"trigger\",peg$literalExpectation(\"TRIGGER\",true),\"union\",peg$literalExpectation(\"UNION\",true),\"unique\",peg$literalExpectation(\"UNIQUE\",true),\"update\",peg$literalExpectation(\"UPDATE\",true),\"using\",peg$literalExpectation(\"USING\",true),\"vacuum\",peg$literalExpectation(\"VACUUM\",true),\"values\",peg$literalExpectation(\"VALUES\",true),\"view\",peg$literalExpectation(\"VIEW\",true),\"virtual\",peg$literalExpectation(\"VIRTUAL\",true),\"when\",peg$literalExpectation(\"WHEN\",true),\"where\",peg$literalExpectation(\"WHERE\",true),\"with\",peg$literalExpectation(\"WITH\",true),\"without\",peg$literalExpectation(\"WITHOUT\",true),function(r){return keyNode(r);},function(){return null;},peg$otherExpectation(\"Line Comment\"),\"--\",peg$literalExpectation(\"--\",false),/^[\\n\\v\\f\\r]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\"],false,false),peg$otherExpectation(\"Block Comment\"),\"/*\",peg$literalExpectation(\"/*\",false),\"*/\",peg$literalExpectation(\"*/\",false),/^[\\n\\v\\f\\r\\t ]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\",\"\\t\",\" \"],false,false),peg$otherExpectation(\"Whitespace\"),\"__TODO__\",peg$literalExpectation(\"__TODO__\",false)];var peg$bytecode=[peg$decode(\"%;\\u023F/H#;#/?$;\\\".\\\" &\\\"/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/C#;#/:$;x/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;x/B#;\\u023F/9$$;%0#*;%&/)$8#:!#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"$;\\u01B30#*;\\u01B3&\"),peg$decode(\"$;\\u01B3/�#*;\\u01B3&&&#\"),peg$decode(\"%;$/:#;x/1$;\\u023F/($8#:\\\"#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;'.# &;(/@#;\\u023F/7$;*.\\\" &\\\"/)$8#:$#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7#\"),peg$decode(\"%;\\u018B/' 8!:%!! )\"),peg$decode(\"<%;\\u0195/9#$;)0#*;)&/)$8\\\":'\\\"\\\"! )(\\\"'#&'#=.\\\" 7&\"),peg$decode(\"%4(\\\"\\\"5!7)/1#;\\u0197/($8\\\":*\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;5/I$;\\u023F/@$;+.\\\" &\\\"/2$;\\u01A1/)$8%:,%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7+\"),peg$decode(\"%;\\u01A2/C#;\\u023F/:$;5/1$;\\u023F/($8$:-$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\";5.; &;6.5 &;2./ &;-.) &;..# &;/\"),peg$decode(\"<%;\\u0206/1#;\\u023F/($8\\\":/\\\"!!)(\\\"'#&'#=.\\\" 7.\"),peg$decode(\"<%;\\u01D2.) &;\\u01D4.# &;\\u01D3/1#;\\u023F/($8\\\":1\\\"!!)(\\\"'#&'#=.\\\" 70\"),peg$decode(\"<%;4.\\\" &\\\"/2#;0/)$8\\\":3\\\"\\\"! )(\\\"'#&'#=.\\\" 72\"),peg$decode(\"<%;\\u01A6/A#$;10#*;1&/1$;\\u01A6/($8#:5#!!)(#'#(\\\"'#&'#=.\\\" 74\"),peg$decode(\"26\\\"\\\"6677.) &48\\\"\\\"5!79\"),peg$decode(\"<%4;\\\"\\\"5!7!! )\"),peg$decode(\"<%;\\u01AA.# &;\\u01AB/' 8!:\\\"!! )=.\\\" 7?\"),peg$decode(\"%;4.\\\" &\\\"/2#;6/)$8\\\":@\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";<.# &;7\"),peg$decode(\"%;8/7#;;.\\\" &\\\"/)$8\\\":A\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<;9.# &;:=.\\\" 7B\"),peg$decode(\"%$;>/�#*;>&&&#/7#;:.\\\" &\\\"/)$8\\\":C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u01A3/9#$;>0#*;>&/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3F\\\"\\\"5!7G/T#4H\\\"\\\"5!7I.\\\" &\\\"/@$$;>/�#*;>&&&#/*$8#:J##\\\"! )(#'#(\\\"'#&'#=.\\\" 7E\"),peg$decode(\"<%3L\\\"\\\"5\\\"7M/?#$;=/�#*;=&&&#/)$8\\\":N\\\"\\\"! )(\\\"'#&'#=.\\\" 7K\"),peg$decode(\"4O\\\"\\\"5!7P\"),peg$decode(\"4Q\\\"\\\"5!7R\"),peg$decode(\"<%;@.) &;B.# &;C/' 8!:T!! )=.\\\" 7S\"),peg$decode(\"<%;\\u01A5/@#;A.\\\" &\\\"/2$;\\u023F/)$8#:V#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7U\"),peg$decode(\"%4W\\\"\\\"5!7X/9#$;>0#*;>&/)$8\\\":Y\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%4[\\\"\\\"5!7\\\\/H#$;\\u0193/�#*;\\u0193&&&#/2$;\\u023F/)$8#:]#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7Z\"),peg$decode(\"<%2_\\\"\\\"6_7`/o#$;\\u0193.) &2a\\\"\\\"6a7b/2#0/*;\\u0193.) &2a\\\"\\\"6a7b&&&#/A$;\\u023F/8$;D.\\\" &\\\"/*$8$:c$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7^\"),peg$decode(\"%;\\u019B/1#;\\u023F/($8\\\":d\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;F.\\\" &\\\"/;#;\\u023F/2$;\\x94/)$8#:f#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7e\"),peg$decode(\"<%;k.\\\" &\\\"/;#;\\u01E4/2$;\\u023F/)$8#:h#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7g\"),peg$decode(\"<%;\\u0211/_#;\\u023F/V$;\\u01A0/M$;\\u023F/D$;H/;$;\\u023F/2$;\\u01A1/)$8':j'\\\"&\\\")(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7i\"),peg$decode(\"<%;I.# &;J/' 8!:l!! )=.\\\" 7k\"),peg$decode(\"<%;\\u01EF/' 8!:n!! )=.\\\" 7m\"),peg$decode(\"%;\\u021B.) &;\\u01B7.# &;\\u01E6/M#;\\u023F/D$;\\u01A2/;$;\\u023F/2$;w/)$8%:o%\\\"$ )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";?./ &;t.) &;,.# &;\\u017D\"),peg$decode(\"%;\\u01A0/L#;\\u023F/C$;p/:$;\\u023F/1$;\\u01A1/($8%:p%!\\\")(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";L.; &;E.5 &;_./ &;a.) &;G.# &;K\"),peg$decode(\"%;M/;#;\\u023F/2$;Q/)$8#:q#\\\"\\\" )(#'#(\\\"'#&'#.# &;M\"),peg$decode(\"%;P/A#;\\u023F/8$;N.# &;p/)$8#:r#\\\"\\\" )(#'#(\\\"'#&'#.# &;N\"),peg$decode(\";\\u01A9.U &;\\u01AB.O &;\\u01AA.I &%%;k/8#%<;\\u01E4=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"<%;\\u012D/' 8!:t!! )=.\\\" 7s\"),peg$decode(\"%;O/\\x83#$%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;R/\\x83#$%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0169.) &;\\u016A.# &;\\u016B\"),peg$decode(\"%;S/\\x83#$%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0167.# &;\\u0168\"),peg$decode(\"%;U/\\x83#$%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u016C.U &;\\u016D.O &;\\u016E.I &%%;\\u016F/8#%<;\\u016F=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;W/\\x83#$%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0172.{ &;\\u0173.u &%%;\\u0170/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,).I &%%;\\u0171/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;Y/9#$;\\\\0#*;\\\\&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;]/($8\\\":v\\\"! )(\\\"'#&'#.H &%;\\u023F/>#;^/5$;\\u023F/,$;Y/#$+$)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%3w\\\"\\\"5$7x/?#;\\u023F/6$3y\\\"\\\"5$7z/'$8#:{# )(#'#(\\\"'#&'#.? &%;\\u01FB/& 8!:|! ).. &%;\\u0205/& 8!:{! )\"),peg$decode(\";\\u0177./ &;\\u0175.) &;\\u0176.# &;\\u0174\"),peg$decode(\"<%;\\u01C9/i#;\\u023F/`$;\\u01A0/W$;p/N$;\\u023F/E$;`/<$;\\u023F/3$;\\u01A1/*$8(:~(#'$\\\")(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7}\"),peg$decode(\"<%;\\u01BF/:#;\\u023F/1$;&/($8#:\\x80#! )(#'#(\\\"'#&'#=.\\\" 7\\x7F\"),peg$decode(\"<%;\\u01C8/\\x93#;\\u023F/\\x8A$;b.\\\" &\\\"/|$;\\u023F/s$$;c/�#*;c&&&#/]$;\\u023F/T$;d.\\\" &\\\"/F$;\\u023F/=$;\\u01E0/4$;\\u023F/+$8*:\\x82*$)'%#)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x81\"),peg$decode(\"%%<;\\u0230=.##&&!&'#/1#;p/($8\\\":\\x83\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/i#;\\u023F/`$;p/W$;\\u023F/N$;\\u0224/E$;\\u023F/<$;p/3$;\\u023F/*$8(:\\x85(#'%!)(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01DF/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x87$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x86\"),peg$decode(\"%;[/;#;\\u023F/2$;f/)$8#:\\x88#\\\"\\\" )(#'#(\\\"'#&'#.# &;[\"),peg$decode(\";l.) &;i.# &;g\"),peg$decode(\"<%;k.\\\" &\\\"/o#;\\u01FF./ &;\\u01EB.) &;\\u0214.# &;\\u0201/T$;\\u023F/K$;p/B$;\\u023F/9$;h.\\\" &\\\"/+$8&:\\x8A&$%$\\\" )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x89\"),peg$decode(\"<%;\\u01E1/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x8C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x8B\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01C5/<$;\\u023F/3$;j/*$8$:\\x8E$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x8D\"),peg$decode(\"%;e/W#%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#/)$8\\\":\\x8F\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0204/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01F1/<$;\\u023F/3$;m/*$8$:\\x92$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x91\"),peg$decode(\";n.# &;\\u017B\"),peg$decode(\"%;\\u01A0/I#;\\x95.# &;q/:$;\\u023F/1$;\\u01A1/($8$:\\x93$!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;e/\\x83#$%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;o/\\x83#$%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;r.\\\" &\\\"/1#;\\u023F/($8\\\":\\x95\\\"!!)(\\\"'#&'#=.\\\" 7\\x94\"),peg$decode(\"%;p/B#;\\u023F/9$$;s0#*;s&/)$8#:\\x96#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;p/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017A/[#;\\u023F/R$;\\u01A0/I$;u.\\\" &\\\"/;$;\\u023F/2$;\\u01A1/)$8&:\\x98&\\\"%\\\")(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x97\"),peg$decode(\"<%;\\xDB/' 8!:\\x9A!! ).V &%;v.\\\" &\\\"/G#;q/>$9:\\x9B \\\"! -\\\"\\\"&!&#/)$8#:\\x9C#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\x99\"),peg$decode(\"%;\\u01DC.# &;\\u01BB/1#;\\u023F/($8\\\":\\x9D\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;//' 8!:\\x9F!! )=.\\\" 7\\x9E\"),peg$decode(\"<%;y.\\\" &\\\"/;#;{/2$;\\u023F/)$8#:\\xA1#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\xA0\"),peg$decode(\"<%;\\u01E5/@#;\\u023F/7$;z.\\\" &\\\"/)$8#:\\xA3#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA2\"),peg$decode(\"<%;\\u0210/D#;\\u023F/;$;\\u020D/2$;\\u023F/)$8$:\\xA5$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xA4\"),peg$decode(\";\\x8C.S &;\\xFB.M &;\\u0162.G &;}.A &;|.; &;\\x86.5 &;\\x80./ &;\\x84.) &;\\x85.# &;\\x96\"),peg$decode(\"<%;\\u01CD.# &;\\u01E0/@#;\\u023F/7$;~.\\\" &\\\"/)$8#:\\xA7#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA6\"),peg$decode(\"<%;\\u01C4/^#;\\u023F/U$;\\x7F.\\\" &\\\"/G$;~.\\\" &\\\"/9$;\\x82.\\\" &\\\"/+$8%:\\xA9%$$\\\"! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xA8\"),peg$decode(\"%;\\u0226/1#;\\u023F/($8\\\":\\xAA\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01D8.) &;\\u01F0.# &;\\u01E3/1#;\\u023F/($8\\\":\\xAB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u021B/N#;\\u023F/E$;~.\\\" &\\\"/7$;\\x81.\\\" &\\\"/)$8$:\\xAD$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xAC\"),peg$decode(\"<%%;\\u0225/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/?#;\\x83.\\\" &\\\"/1$;\\x82/($8#:p#! )(#'#(\\\"'#&'#=.\\\" 7\\xAE\"),peg$decode(\"%;\\u0182/1#;\\u023F/($8\\\":\\xAF\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u021E/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\x83/2#;\\x82/)$8\\\":\\xB2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xB1\"),peg$decode(\"<%;\\u0216/J#;\\u023F/A$;\\x83.\\\" &\\\"/3$;\\x82/*$8$:\\xB4$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\xB3\"),peg$decode(\"<%;\\x87/N#;\\u017B/E$;\\u023F/<$;\\x88/3$;\\u023F/*$8%:\\xB6%#$#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB5\"),peg$decode(\"<%;\\u01BC/D#;\\u023F/;$;\\u0221/2$;\\u023F/)$8$:\\xB8$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xB7\"),peg$decode(\";\\x89.# &;\\x8A\"),peg$decode(\"<%;\\u0217/M#;\\u023F/D$;\\u0225/;$;\\u023F/2$;\\u017B/)$8%:\\xBA%\\\"$ )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB9\"),peg$decode(\"<%;\\u01B9/I#;\\u023F/@$;\\x8B.\\\" &\\\"/2$;\\u010C/)$8$:\\xBC$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xBB\"),peg$decode(\"%;\\u01CC/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA7/)$8\\\":\\xBD\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\x8E.\\\" &\\\"/1#;\\u023F/($8\\\":*\\\"!!)(\\\"'#&'#=.\\\" 7\\xBE\"),peg$decode(\"%;\\u0232/J#;\\u023F/A$;\\x8F.\\\" &\\\"/3$;\\x90/*$8$:\\xBF$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0212/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x92/B#;\\u023F/9$$;\\x910#*;\\x91&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\x92/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0187/2#;\\x93/)$8\\\":\\xC2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xC1\"),peg$decode(\"%;\\u01BF/:#;\\u023F/1$;\\x94/($8#:\\xC3#! )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A0/C#;\\x95/:$;\\u023F/1$;\\u01A1/($8$: $!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA8/)$8\\\":\\xC4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\x97.; &;\\x99.5 &;\\x9A./ &;\\x9C.) &;\\x9E.# &;\\xA0\"),peg$decode(\"<%;\\u01C1/\\x8B#;\\u023F/\\x82$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/a$;p/X$;\\u023F/O$;\\u01BF/F$;\\u023F/=$;\\x98/4$;\\u023F/+$8):\\xC6)$(&%!)()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC5\"),peg$decode(\";\\u0179.) &;-.# &;?\"),peg$decode(\"<%;\\u01DB/f#;\\u023F/]$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/<$;\\x98/3$;\\u023F/*$8%:\\xC8%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC7\"),peg$decode(\"<%;\\u022C/@#;\\u023F/7$;\\x9B.\\\" &\\\"/)$8#:\\xCA#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xC9\"),peg$decode(\"%;\\u0179/1#;\\u023F/($8\\\":\\xCB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01BD/@#;\\u023F/7$;\\x9D.\\\" &\\\"/)$8#:\\xCD#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xCC\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0179/1#;\\u023F/($8\\\":\\xCE\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0215/I#;\\u023F/@$;\\x9F.\\\" &\\\"/2$;\\u023F/)$8$:\\xCD$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xCF\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0181/1#;\\u023F/($8\\\":\\xD0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020E/S#;\\u023F/J$;\\u0186/A$;\\u023F/8$;\\xA1.\\\" &\\\"/*$8%:\\xD2%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD1\"),peg$decode(\"%;\\u01A0/C#;\\xA2/:$;\\u023F/1$;\\u01A1/($8$:\\xD3$!\\\")($'#(#'#(\\\"'#&'#.D &%;\\u01AC/:#;\\xA2/1$;\\u023F/($8#:\\xD3#!!)(#'#(\\\"'#&'#\"),peg$decode(\";\\xA4.) &;\\xA3.# &;\\xA6\"),peg$decode(\";5.) &;/.# &;3\"),peg$decode(\"%;\\xA5/<#9:\\xD4 ! -\\\"\\\"&!&#/($8\\\":\\xD5\\\"!!)(\\\"'#&'#\"),peg$decode(\"%$;\\u0193/�#*;\\u0193&&&#/' 8!:\\xD6!! )\"),peg$decode(\"%;\\xA5/' 8!:\\xD7!! )\"),peg$decode(\";\\xA8./ &;\\xDD.) &;\\xF2.# &;\\xF9\"),peg$decode(\"<%;\\xAE/X#;\\u023F/O$;\\xA9.\\\" &\\\"/A$;\\u023F/8$;\\xAA.\\\" &\\\"/*$8%:\\xD9%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD8\"),peg$decode(\"<%;\\u020B/L#;\\u023F/C$;\\u01C6/:$;\\u023F/1$;\\xD8/($8%:\\xDB%! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDA\"),peg$decode(\"<%;\\u0200/S#;\\u023F/J$;p/A$;\\u023F/8$;\\xAB.\\\" &\\\"/*$8%:\\xDD%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDC\"),peg$decode(\"<%;\\xAC/2#;p/)$8\\\":\\xDF\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xDE\"),peg$decode(\";\\xAD.# &;\\u01A2\"),peg$decode(\"%;\\u0208/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xB0/B#;\\u023F/9$$;\\xAF0#*;\\xAF&/)$8#:\\xE0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xEF/D#;\\u023F/;$;\\xB0/2$;\\u023F/)$8$:\\xE2$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE1\"),peg$decode(\";\\xB1.# &;\\xD7\"),peg$decode(\"%;\\xB2/U#;\\xB8.\\\" &\\\"/G$;\\xB9.\\\" &\\\"/9$;\\xBA.\\\" &\\\"/+$8$:\\xE3$$#\\\"! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u021F/R#;\\u023F/I$;\\xB3.\\\" &\\\"/;$;\\u023F/2$;\\xB6/)$8%:\\xE5%\\\"\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xE4\"),peg$decode(\"<;\\xB4.# &;\\xB5=.\\\" 7\\xE6\"),peg$decode(\"%;\\u01DC/1#;\\u023F/($8\\\":\\xE7\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\xE8\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xBC/B#;\\u023F/9$$;\\xB70#*;\\xB7&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xBC/1$;\\u023F/($8#:-#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01E9/D#;\\u023F/;$;\\xC0/2$;\\u023F/)$8$:\\xEA$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE9\"),peg$decode(\"<%;\\u0231/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xEC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEB\"),peg$decode(\"<%;\\u01EC/e#;\\u023F/\\\\$;\\u01C6/S$;\\u023F/J$;q/A$;\\u023F/8$;\\xBB.\\\" &\\\"/*$8':\\xEE'#&\\\" )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xED\"),peg$decode(\"<%;\\u01ED/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xF0$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEF\"),peg$decode(\";\\xBD.# &;\\xBF\"),peg$decode(\"%;\\xBE.\\\" &\\\"/2#;\\xDB/)$8\\\":\\xF1\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0195/2#;\\u01A3/)$8\\\":\\xF2\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;p/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xF3#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC4/B#;\\u023F/9$$;\\xC10#*;\\xC1&/)$8#:\\xF4#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC2.# &;\\xC3/7#;\\xD4.\\\" &\\\"/)$8\\\":\\xF5\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A2/:#;\\xC4/1$;\\u023F/($8#:\\xF7#!!)(#'#(\\\"'#&'#=.\\\" 7\\xF6\"),peg$decode(\"<%;\\xCE/D#;\\u023F/;$;\\xC4/2$;\\u023F/)$8$:\\xF9$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xF8\"),peg$decode(\";\\xCB.5 &;?./ &;\\xC5.) &;\\xC6.# &;\\xCC\"),peg$decode(\"%;\\u017A/S#;\\u023F/J$;\\xED/A$;\\u023F/8$;\\xCD.\\\" &\\\"/*$8%:\\xFA%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xC7/@#;\\u023F/7$;\\xC8.\\\" &\\\"/)$8#:\\xFC#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFB\"),peg$decode(\"<%;\\u017B/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xFE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFD\"),peg$decode(\"<;\\xC9.# &;\\xCA=.\\\" 7\\xFF\"),peg$decode(\"%;\\u01F3/V#;\\u023F/M$;\\u01C6/D$;\\u023F/;$;\\u0183/2$;\\u023F/)$8&:\\u0100&\\\"%!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;k/;#;\\u01F3/2$;\\u023F/)$8#:\\u0101#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;\\xC0/I$;\\u023F/@$;\\u01A1/7$;\\xCD.\\\" &\\\"/)$8%:\\u0103%\\\"# )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0102\"),peg$decode(\"<%;\\x94/7#;\\xCD.\\\" &\\\"/)$8\\\":\\u0105\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0104\"),peg$decode(\"<%%;\\u01BF/Q#%%<;\\u0193.# &;\\u0236=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/#$+\\\")(\\\"'#&'#.\\\" &\\\"/;#;\\u0195/2$;\\u023F/)$8#:\\u0107#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u0106\"),peg$decode(\"<%;\\xCF.\\\" &\\\"/J#;\\u023F/A$;\\xD0.\\\" &\\\"/3$;\\u01FC/*$8$:\\u0109$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0108\"),peg$decode(\"%;\\u0202/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\";\\xD1.# &;\\xD3\"),peg$decode(\"%;\\u01FE.) &;\\u021A.# &;\\u01EA/@#;\\u023F/7$;\\xD2.\\\" &\\\"/)$8#:\\u010A#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u020C/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F5.# &;\\u01D1/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xD5.# &;\\xD6/1#;\\u023F/($8\\\":\\u010D\\\"!!)(\\\"'#&'#=.\\\" 7\\u010C\"),peg$decode(\"<%;\\u0209/;#;\\u023F/2$;p/)$8#:\\u010F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u010E\"),peg$decode(\"<%;\\u022B/;#;\\u023F/2$;\\xE6/)$8#:\\u0111#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0110\"),peg$decode(\"<%;\\u022D/;#;\\u023F/2$;\\xEB/)$8#:\\u0113#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"%;\\xDA/B#;\\u023F/9$$;\\xD90#*;\\xD9&/)$8#:\\u0114#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xDA/1$;\\u023F/($8#:\\u0115#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;p/@#;\\u023F/7$;\\u012F.\\\" &\\\"/)$8#:\\u0117#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0116\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u0118\"),peg$decode(\"<;\\u0218.5 &;\\u021B./ &;\\u01B7.) &;\\u01E6.# &;\\u01EF=.\\\" 7\\u0119\"),peg$decode(\"<%;\\xDE/;#;\\u023F/2$;\\xE2/)$8#:\\u011B#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011A\"),peg$decode(\";\\xDF.# &;\\xE0\"),peg$decode(\"<%;\\u01F6/@#;\\u023F/7$;\\xE1.\\\" &\\\"/)$8#:\\u011D#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011C\"),peg$decode(\"<%;\\u0218/1#;\\u023F/($8\\\":\\u011F\\\"!!)(\\\"'#&'#=.\\\" 7\\u011E\"),peg$decode(\"<%;\\u020A/;#;\\u023F/2$;\\xDC/)$8#:\\u0121#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0120\"),peg$decode(\"%;\\xE3/2#;\\xE5/)$8\\\":\\u0122\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\xE4/2#;\\u0187/)$8\\\":\\u0124\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0123\"),peg$decode(\"<%;\\u01F9/,#;\\u023F/#$+\\\")(\\\"'#&'#=.\\\" 7\\u0125\"),peg$decode(\"<%;\\xE9.) &;\\x95.# &;\\xEE/1#;\\u023F/($8\\\":\\u0126\\\"!!)(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u01A0/T#;\\xE8/K$;\\u023F/B$$;\\xE70#*;\\xE7&/2$;\\u01A1/)$8%:\\u0128%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0127\"),peg$decode(\"%;\\u01A2/:#;\\xE8/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u012B!! )=.\\\" 7\\u012A\"),peg$decode(\"<%;\\xEA/2#;\\xEB/)$8\\\":\\u012C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u022D/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u012D\"),peg$decode(\"%;\\xED/B#;\\u023F/9$$;\\xEC0#*;\\xEC&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xED/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/C#;q/:$;\\u023F/1$;\\u01A1/($8$:\\u0130$!\\\")($'#(#'#(\\\"'#&'#=.\\\" 7\\u012F\"),peg$decode(\"<%;\\u01D6/;#;\\u023F/2$;\\u022D/)$8#:\\u0132#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0131\"),peg$decode(\"<%;\\xF0.) &;\\u01F8.# &;\\u01E2/' 8!:\\xB0!! )=.\\\" 7\\u0133\"),peg$decode(\"<%;\\u0228/@#;\\u023F/7$;\\xF1.\\\" &\\\"/)$8#:\\u0135#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0134\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xF3/\\x8A#;\\xF4.\\\" &\\\"/|$;\\xC6/s$;\\u023F/j$;\\xF5/a$;\\xB9.\\\" &\\\"/S$;\\xA9.\\\" &\\\"/E$;\\u023F/<$;\\xAA.\\\" &\\\"/.$8):\\u0138)'('&$#\\\" )()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0137\"),peg$decode(\"<%;\\u022A/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u0139\"),peg$decode(\"<%;\\u020A/C#;\\u023F/:$;\\xDC/1$;\\u023F/($8$:\\u013B$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013A\"),peg$decode(\"<%;\\u0220/C#;\\u023F/:$;\\xF6/1$;\\u023F/($8$:\\u013D$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013C\"),peg$decode(\"%;\\xF8/9#$;\\xF70#*;\\xF7&/)$8\\\":\\u012E\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/:#;\\u01A2/1$;\\xF8/($8#:\\u0129#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017D/M#;\\u023F/D$;\\u01AC/;$;p/2$;\\u023F/)$8%:\\u013F%\\\"$!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u013E\"),peg$decode(\"<%;\\xFA/h#;\\xC6/_$;\\u023F/V$;\\xB9.\\\" &\\\"/H$;\\xA9.\\\" &\\\"/:$;\\xAA.\\\" &\\\"/,$8&:\\u0141&%%$\\\"! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0140\"),peg$decode(\"<%;\\u01D9/C#;\\u023F/:$;\\u01E9/1$;\\u023F/($8$:\\xB0$!#)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0142\"),peg$decode(\"<;\\xFD.5 &;\\xFE./ &;\\xFF.) &;\\u0100.# &;\\u0101=.\\\" 7\\u0143\"),peg$decode(\"%;\\u01D0/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u01F2./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0102/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0143/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0147/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0156/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u015A/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0103/T#;\\u0105.\\\" &\\\"/F$;\\u017B/=$;\\u023F/4$;\\u0106/+$8%:\\u0145%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0144\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0221/3$;\\u023F/*$8$:\\u0146$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0223.# &;\\u0222/1#;\\u023F/($8\\\":\\u0147\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01EE/N#;\\u023F/E$;k/<$;\\u01E4/3$;\\u023F/*$8%:\\u0149%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0148\"),peg$decode(\";\\u0107.# &;\\u0142\"),peg$decode(\"<%;\\u01A0/Z#;\\u0109/Q$$;\\u010B0#*;\\u010B&/A$;\\u01A1/8$;\\u0108.\\\" &\\\"/*$8%:\\u014B%##\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u014A\"),peg$decode(\"%;\\u0233/D#;\\u023F/;$;\\u021D/2$;\\u023F/)$8$:\\u014C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u010C/B#;\\u023F/9$$;\\u010A0#*;\\u010A&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\u010C/1$;\\u023F/($8#:\\xAA#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2.\\\" &\\\"/1#;\\u0120/($8\\\":\\u014D\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u010D/O#;\\u023F/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u014E\"),peg$decode(\"%;\\u0195/=#%<;\\u023F=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.\\\\ &%%<;\\u010E.) &;\\u0111.# &;\\u0120=.##&&!&'#/:#;\\u023F/1$;\\u0198/($8#:p#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;&/1#;\\u023F/($8\\\":\\u0151\\\"!!)(\\\"'#&'#=.\\\" 7\\u0150\"),peg$decode(\"%;\\u0111/B#$;\\u01100#*;\\u0110&/2$;\\u023F/)$8#:\\u012E#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;\\u0111/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/A#;\\u0114/8$;\\u0112.\\\" &\\\"/*$8#:\\u0153##\\\"! )(#'#(\\\"'#&'#=.\\\" 7\\u0152\"),peg$decode(\"%$;\\u0113/�#*;\\u0113&&&#/' 8!:\\u0154!! )\"),peg$decode(\"<%;\\u01CF/C#;\\u023F/:$;\\u0195/1$;\\u023F/($8$:\\u0156$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0155\"),peg$decode(\";\\u0116.; &;\\u0119.5 &;\\u011C./ &;\\u011D.) &;\\u011F.# &;\\u0115\"),peg$decode(\"<%;\\u0135/' 8!:\\u0158!! )=.\\\" 7\\u0157\"),peg$decode(\"<%;\\u0117/U#;\\u012F.\\\" &\\\"/G$;\\u0130.\\\" &\\\"/9$;\\u0118.\\\" &\\\"/+$8$:\\u015A$$#\\\"! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0159\"),peg$decode(\"<%;\\u020F.# &;\\u020E/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u015C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u01C2/1#;\\u023F/($8\\\":\\u015E\\\"!!)(\\\"'#&'#=.\\\" 7\\u015D\"),peg$decode(\"%;\\u011A/@#;\\u0130.\\\" &\\\"/2$;\\u023F/)$8#:\\u015F#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u011B.# &;\\u0229/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u0160\"),peg$decode(\"<%;k.\\\" &\\\"/2#;\\u0206/)$8\\\":\\u0162\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0161\"),peg$decode(\"<;\\u0132=.\\\" 7\\u0163\"),peg$decode(\"<%;\\u01D6/D#;\\u023F/;$;\\u011E/2$;\\u023F/)$8$:\\u0165$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0164\"),peg$decode(\";L./ &;5.) &;,.# &;3\"),peg$decode(\"<%;\\u012D/' 8!:\\u0167!! )=.\\\" 7\\u0166\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/J#;\\u0121/A$;\\u023F/8$;\\u0112.\\\" &\\\"/*$8$:\\u0169$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0168\"),peg$decode(\";\\u0133.) &;\\u0123.# &;\\u0122\"),peg$decode(\"<%;\\u0132/' 8!:\\u016B!! )=.\\\" 7\\u016A\"),peg$decode(\"<%;\\u0124/J#;\\u023F/A$;\\u0129/8$;\\u0130.\\\" &\\\"/*$8$:\\u016D$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u016C\"),peg$decode(\"%;\\u0125.# &;\\u0126/1#;\\u023F/($8\\\":\\u016E\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020F/;#;\\u023F/2$;\\u01FD/)$8#:\\u016F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u0229/' 8!:\\u0171!! )=.\\\" 7\\u0170\"),peg$decode(\"%;\\u01A0/T#;\\u012B/K$;\\u023F/B$$;\\u012A0#*;\\u012A&/2$;\\u01A1/)$8%:\\u0172%\\\"#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0127/' 8!:\\u0173!! )\"),peg$decode(\"%;\\u0127/' 8!:\\u0174!! )\"),peg$decode(\"%;\\u01A2/:#;\\u012B/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u012C/O#;\\u023F/F$;\\u012F.\\\" &\\\"/8$;\\u0118.\\\" &\\\"/*$8$:\\u0176$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0175\"),peg$decode(\"%;\\xE8/\\\\#%<%;\\u023F/8#;\\u01B3.) &;\\u01A1.# &;\\u012F/#$+\\\")(\\\"'#&'#=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.# &;p\"),peg$decode(\"<%$;\\u012E/�#*;\\u012E&&&#/' 8!:\\u0178!! )=.\\\" 7\\u0177\"),peg$decode(\"%;\\u01CB/C#;\\u023F/:$;\\u0181/1$;\\u023F/($8$:p$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01C0.# &;\\u01DA/1#;\\u023F/($8\\\":\\u017A\\\"!!)(\\\"'#&'#=.\\\" 7\\u0179\"),peg$decode(\"%;\\u0131/;#;\\xDC/2$;\\u023F/)$8#:\\u017B#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/D#;\\u023F/;$;\\u01CE/2$;\\u023F/)$8$:\\u017D$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017C\"),peg$decode(\"%;\\u01CA/;#;\\u023F/2$;L/)$8#:\\u017E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0134/E#;\\xE6/<$;\\u0135/3$;\\u023F/*$8$:\\u0180$##\\\"!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017F\"),peg$decode(\"<%;\\u01E8/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u0182$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0181\"),peg$decode(\"%;\\u0136/F#;\\u0137.\\\" &\\\"/8$;\\u0140.\\\" &\\\"/*$8#:\\u0183##\\\"! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0213/D#;\\u023F/;$;\\u0187/2$;\\u023F/)$8$:\\u0185$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0184\"),peg$decode(\"%;\\u0139/B#;\\u023F/9$$;\\u01380#*;\\u0138&/)$8#:\\u0186#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0139/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<;\\u013A.# &;\\u013F=.\\\" 7\\u0187\"),peg$decode(\"%;\\u0209/T#;\\u023F/K$;\\u01D9.# &;\\u022A/<$;\\u023F/3$;\\u013B/*$8%:\\u0188%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u013C.) &;\\u013D.# &;\\u013E=.\\\" 7\\u0189\"),peg$decode(\"%;\\u0220/J#;\\u023F/A$;\\u0206.# &;\\u01D6/2$;\\u023F/)$8$:\\u018A$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01C7.# &;\\u0219/1#;\\u023F/($8\\\":\\u018B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u0203/D#;\\u023F/;$;\\u01B8/2$;\\u023F/)$8$:\\u018C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0201/D#;\\u023F/;$;\\u0195/2$;\\u023F/)$8$:\\u018D$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/J#;\\u01D7/A$;\\u023F/8$;\\u0141.\\\" &\\\"/*$8$:\\u018F$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u018E\"),peg$decode(\"%;\\u01F4/J#;\\u023F/A$;\\u01D8.# &;\\u01F0/2$;\\u023F/)$8$:\\u0190$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0159/' 8!:\\u0191!! )\"),peg$decode(\"<%;\\u0144/c#;\\u0105.\\\" &\\\"/U$;\\u0183/L$;\\u023F/C$;\\u0146/:$;\\xB9.\\\" &\\\"/,$8&:\\u0193&%%$#! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0192\"),peg$decode(\"%;\\xFC/J#;\\u0145.\\\" &\\\"/<$;\\u01F2/3$;\\u023F/*$8$:\\u0194$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0229/1#;\\u023F/($8\\\":\\u0195\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/N#;\\u023F/E$;\\u017B/<$;\\u023F/3$;\\u0128/*$8%:\\u0197%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0196\"),peg$decode(\"<%;\\u0148/\\xA6#;\\u0105.\\\" &\\\"/\\x98$;\\u0184.\\\" &\\\"/\\x8A$;\\u023F/\\x81$;\\u0149/x$;\\u0209/o$;\\u023F/f$;\\u017B/]$;\\u023F/T$;\\u0151.\\\" &\\\"/F$;\\u0152.\\\" &\\\"/8$;\\u0153//$8,:\\u0199,(+*)'$\\\"! )(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0198\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0227/3$;\\u023F/*$8$:\\u019A$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u014A.\\\" &\\\"/2#;\\u014C/)$8\\\":\\u019C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u019B\"),peg$decode(\"%;\\u01C3.) &;\\u01BA.# &;\\u014B/1#;\\u023F/($8\\\":\\u019D\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F7/;#;\\u023F/2$;\\u0207/)$8#:\\u019E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u014D.# &;\\u014E=.\\\" 7\\u019F\"),peg$decode(\"%;\\u01D9.# &;\\u01F6/1#;\\u023F/($8\\\":\\u01A0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u022A/@#;\\u023F/7$;\\u014F.\\\" &\\\"/)$8#:\\u01A1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0207/;#;\\u023F/2$;\\u0150/)$8#:\\u01A2#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xE8/B#;\\u023F/9$$;\\xE70#*;\\xE7&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01E7/c#;\\u023F/Z$;\\u01DE/Q$;\\u023F/H$;\\u021C.) &3\\u01A3\\\"\\\"5)7\\u01A4/3$;\\u023F/*$8&:\\u01A5&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\u01A6$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01C4/W#;\\u023F/N$;\\u0154/E$;\\u023F/<$;\\u01E0/3$;\\u023F/*$8&:\\u01A8&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01A7\"),peg$decode(\"%$;\\u0155/�#*;\\u0155&&&#/' 8!:\\u01A9!! )\"),peg$decode(\"%;\\x8C/:#;\\u023F/1$;$/($8#:\\\"#!\\\")(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0158/T#;\\u0105.\\\" &\\\"/F$;\\u0157/=$;\\u023F/4$;\\u0159/+$8%:\\u01AB%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AA\"),peg$decode(\"%;\\u0185/;#;\\u023F/2$;\\xE6/)$8#:\\u01AC#\\\"\\\" )(#'#(\\\"'#&'#.# &;\\u0185\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u022E/3$;\\u023F/*$8$:\\u01AD$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01BF/D#;\\u023F/;$;\\xA8/2$;\\u023F/)$8$:\\u012C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u015B/f#;\\u0105.\\\" &\\\"/X$;\\u017B/O$;\\u023F/F$;\\u022B/=$;\\u023F/4$;\\u015C/+$8':\\u01AF'$&%$ )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AE\"),peg$decode(\"%;\\xFC/N#;\\u022F/E$;\\u023F/<$;\\u0221/3$;\\u023F/*$8%:\\u01B0%#$#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0197/@#;\\u023F/7$;\\u015D.\\\" &\\\"/)$8#:\\u01B1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/Z#;\\u023F/Q$;\\u015E.\\\" &\\\"/C$;\\u023F/:$;\\u01A1/1$;\\u023F/($8&:\\u01B3&!#)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B2\"),peg$decode(\"%;\\u0160/9#$;\\u015F0#*;\\u015F&/)$8\\\":\\u01B4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/H#;\\u01A2/?$;\\u023F/6$;\\u0160.\\\" &\\\"/($8$:\\u01B5$! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%%<%;\\u0195/;#;\\u023F/2$;&.# &;\\u0111/#$+#)(#'#(\\\"'#&'#=.##&&!&'#/:#;p/1$;\\u023F/($8#:\\u0130#!!)(#'#(\\\"'#&'#.x &%;\\u0161/n#%%<;\\u0193=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\";\\u0195.# &;\\u0198\"),peg$decode(\"<%;\\u0163/;#;\\u017B/2$;\\u023F/)$8#:\\u01B7#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u01B6\"),peg$decode(\"<%;\\u01DD/J#;\\u023F/A$;\\u0164/8$;\\u0165.\\\" &\\\"/*$8$:\\u01B9$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B8\"),peg$decode(\"<%;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u01BA\"),peg$decode(\"<%;\\u01EE/D#;\\u023F/;$;\\u01E4/2$;\\u023F/)$8$:\\u01BC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u01BB\"),peg$decode(\"<%;\\u01AE/,#;\\u01AE/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01BD\"),peg$decode(\"<;\\u01AA=.\\\" 7\\u01BE\"),peg$decode(\"<;\\u01AB=.\\\" 7\\u01BF\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u01C0\"),peg$decode(\"<;\\u01B5=.\\\" 7\\u01C1\"),peg$decode(\"<;\\u01AF=.\\\" 7\\u01C2\"),peg$decode(\"<%;\\u01B0/,#;\\u01B0/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C3\"),peg$decode(\"<%;\\u01B1/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C4\"),peg$decode(\"<;\\u01AD=.\\\" 7\\u01C5\"),peg$decode(\"<;\\u01AE=.\\\" 7\\u01C6\"),peg$decode(\"<;\\u01B0=.\\\" 7\\u01C7\"),peg$decode(\"<;\\u01B1=.\\\" 7\\u01C8\"),peg$decode(\"<%;\\u01B0/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C9\"),peg$decode(\"<%;\\u01B1/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CA\"),peg$decode(\"<%;\\u01AC/1#;\\u01AC.\\\" &\\\"/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%;\\u01B2/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01B0/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01FA/@#;\\u023F/7$;k.\\\" &\\\"/)$8#:\\u01CE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u01CD\"),peg$decode(\"<;\\u0195.# &;\\u0198=.\\\" 7\\u01CF\"),peg$decode(\"<%;\\u0178/' 8!:\\u01D1!! )=.\\\" 7\\u01D0\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D3\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D2\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D5\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D4\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":\\u01D6\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u017F.) &;\\u0180.# &;\\u017E/2#;\\u0178/)$8\\\":\\u01D8\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D7\"),peg$decode(\"%;\\u023F/& 8!:\\u01D9! )\"),peg$decode(\"%;\\u017C/2#;\\u0180/)$8\\\":\\u01DA\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DC!! )=.\\\" 7\\u01DB\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DE!! )=.\\\" 7\\u01DD\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E0\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01DF\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E1\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E4\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E3\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E6\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E5\"),peg$decode(\"<%;\\u0188.# &;\\u017B/1#;\\u023F/($8\\\":\\u01E8\\\"!!)(\\\"'#&'#=.\\\" 7\\u01E7\"),peg$decode(\"%;\\u017B/;#;\\u023F/2$;\\xE6/)$8#:\\u01E9#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01EB!! )=.\\\" 7\\u01EA\"),peg$decode(\"<%;\\u0178/' 8!:\\u01ED!! )=.\\\" 7\\u01EC\"),peg$decode(\"<%;\\u018C/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01EF\\\"!!)(\\\"'#&'#.\\xC5 &%;\\u018D/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F0\\\"!!)(\\\"'#&'#.\\x9B &%;\\u018F/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F1\\\"!!)(\\\"'#&'#.q &%;\\u0190/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F2\\\"!!)(\\\"'#&'#.G &%;\\u0192/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F3\\\"!!)(\\\"'#&'#=.\\\" 7\\u01EE\"),peg$decode(\"<%%3\\u01F5\\\"\\\"5!7\\u01F6.\\\" &\\\"/F#3\\u01F7\\\"\\\"5#7\\u01F8.\\\" &\\\"/2$3\\u01F9\\\"\\\"5$7\\u01FA/#$+#)(#'#(\\\"'#&'#.k &%3\\u01FB\\\"\\\"5$7\\u01FC.5 &3\\u01FD\\\"\\\"5&7\\u01FE.) &3\\u01FF\\\"\\\"5$7\\u0200.\\\" &\\\"/2#3\\u0201\\\"\\\"5$7\\u0202/#$+\\\")(\\\"'#&'#.) &3\\u0203\\\"\\\"5$7\\u0204/' 8!:\\u010B!! )=.\\\" 7\\u01F4\"),peg$decode(\"<%;\\u018E.5 &3\\u0206\\\"\\\"5%7\\u0207.) &3\\u0208\\\"\\\"5$7\\u0209/' 8!:\\u010B!! )=.\\\" 7\\u0205\"),peg$decode(\"<%3\\u020B\\\"\\\"5&7\\u020C/i#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u020D\\\"\\\"5)7\\u020E/#$+\\\")(\\\"'#&'#.\\\" &\\\"/)$8\\\":\\u020F\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u020A\"),peg$decode(\"<%3\\u0211\\\"\\\"5'7\\u0212.\\x95 &3\\u0213\\\"\\\"5'7\\u0214.\\x89 &3\\u0215\\\"\\\"5'7\\u0216.} &%3\\u0217\\\"\\\"5$7\\u0218/7#3\\u0219\\\"\\\"5$7\\u021A.\\\" &\\\"/#$+\\\")(\\\"'#&'#.S &%3\\u0219\\\"\\\"5$7\\u021A/7#3\\u021B\\\"\\\"5%7\\u021C.\\\" &\\\"/#$+\\\")(\\\"'#&'#.) &3\\u021D\\\"\\\"5&7\\u021E/' 8!:\\u010B!! )=.\\\" 7\\u0210\"),peg$decode(\"<%%3\\u0220\\\"\\\"5#7\\u0221/V#2\\u0222\\\"\\\"6\\u02227\\u0223.A &2\\u0224\\\"\\\"6\\u02247\\u0225.5 &2\\u0226\\\"\\\"6\\u02267\\u0227.) &3\\u0228\\\"\\\"5$7\\u0229/#$+\\\")(\\\"'#&'#.q &%3\\u022A\\\"\\\"5#7\\u022B.A &3\\u01FD\\\"\\\"5&7\\u01FE.5 &3\\u022C\\\"\\\"5%7\\u022D.) &3\\u01FB\\\"\\\"5$7\\u01FC.\\\" &\\\"/2#3\\u0220\\\"\\\"5#7\\u0221/#$+\\\")(\\\"'#&'#.# &;\\u0191/' 8!:\\u010B!! )=.\\\" 7\\u021F\"),peg$decode(\"%3\\u022E\\\"\\\"5(7\\u022F/d#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u0230\\\"\\\"5%7\\u0231/#$+\\\")(\\\"'#&'#/)$8\\\":\\u0232\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3\\u0234\\\"\\\"5$7\\u0235/' 8!:\\u010B!! )=.\\\" 7\\u0233\"),peg$decode(\"4\\u0236\\\"\\\"5!7\\u0237\"),peg$decode(\"%2\\u0238\\\"\\\"6\\u02387\\u0239/K#$4\\u023A\\\"\\\"5!7\\u023B/,#0)*4\\u023A\\\"\\\"5!7\\u023B&&&#/)$8\\\":\\u023C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0196.# &;\\u0197\"),peg$decode(\";\\u0199./ &;\\u019D.) &;\\u019B.# &;\\u019C\"),peg$decode(\"%%<;\\u0234.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\xD6\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<;\\u0236.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\u023D\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u019E/\\x99#;\\u023F/\\x90$%$%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0G*%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/\\\"!&,)/1$;\\u019A/($8$:\\u023F$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%$4\\u0240\\\"\\\"5!7\\u02410)*4\\u0240\\\"\\\"5!7\\u0241&/5#;\\u019F/,$;\\u023F/#$+#)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0242\\\"\\\"6\\u02427\\u0243/k#$2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u024705*2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u0247&/7$2\\u0242\\\"\\\"6\\u02427\\u0243/($8#:\\u0248#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0249\\\"\\\"6\\u02497\\u024A/k#$26\\\"\\\"6677.) &48\\\"\\\"5!7905*26\\\"\\\"6677.) &48\\\"\\\"5!79&/7$2\\u0249\\\"\\\"6\\u02497\\u024A/($8#:\\u024B#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u024C\\\"\\\"6\\u024C7\\u024D/k#$2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u025105*2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u0251&/7$2\\u024C\\\"\\\"6\\u024C7\\u024D/($8#:\\u0252#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%2\\u0254\\\"\\\"6\\u02547\\u0255/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0253\"),peg$decode(\"<%2\\u0257\\\"\\\"6\\u02577\\u0258/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0256\"),peg$decode(\"<%2\\u025A\\\"\\\"6\\u025A7\\u025B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0259\"),peg$decode(\"<%2\\u025D\\\"\\\"6\\u025D7\\u025E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025C\"),peg$decode(\"<%2\\u0260\\\"\\\"6\\u02607\\u0261/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025F\"),peg$decode(\"<%2\\u0263\\\"\\\"6\\u02637\\u0264/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0262\"),peg$decode(\"<%2\\u0266\\\"\\\"6\\u02667\\u0267/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0265\"),peg$decode(\"<%2\\u0269\\\"\\\"6\\u02697\\u026A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0268\"),peg$decode(\"<%2\\u0249\\\"\\\"6\\u02497\\u024A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026B\"),peg$decode(\"<%2\\u0242\\\"\\\"6\\u02427\\u0243/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026C\"),peg$decode(\"<%2\\u024C\\\"\\\"6\\u024C7\\u024D/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026D\"),peg$decode(\"<%2\\u026F\\\"\\\"6\\u026F7\\u0270/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026E\"),peg$decode(\"<%2\\u0272\\\"\\\"6\\u02727\\u0273/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0271\"),peg$decode(\"<%2\\u0275\\\"\\\"6\\u02757\\u0276/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0274\"),peg$decode(\"<%2\\u0277\\\"\\\"6\\u02777\\u0278/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%2\\u027A\\\"\\\"6\\u027A7\\u027B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0279\"),peg$decode(\"<%2\\u027D\\\"\\\"6\\u027D7\\u027E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u027C\"),peg$decode(\"<%2\\u027F\\\"\\\"6\\u027F7\\u0280/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C2\"),peg$decode(\"<%2\\u0281\\\"\\\"6\\u02817\\u0282/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C7\"),peg$decode(\"<%2\\u0283\\\"\\\"6\\u02837\\u0284/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C8\"),peg$decode(\"<%2\\u0286\\\"\\\"6\\u02867\\u0287/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0285\"),peg$decode(\"<%2\\u0289\\\"\\\"6\\u02897\\u028A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0288\"),peg$decode(\"<%2a\\\"\\\"6a7b/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028B\"),peg$decode(\"<%2\\u028D\\\"\\\"6\\u028D7\\u028E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028C\"),peg$decode(\"<%2\\u0290\\\"\\\"6\\u02907\\u0291/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028F\"),peg$decode(\"%3\\u0292\\\"\\\"5%7\\u0293/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0294\\\"\\\"5&7\\u0295/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0296\\\"\\\"5#7\\u0297/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0298\\\"\\\"5%7\\u0299/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029A\\\"\\\"5#7\\u029B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029C\\\"\\\"5%7\\u029D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029E\\\"\\\"5'7\\u029F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A0\\\"\\\"5#7\\u02A1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A2\\\"\\\"5\\\"7\\u02A3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A4\\\"\\\"5#7\\u02A5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A6\\\"\\\"5&7\\u02A7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A8\\\"\\\"5-7\\u02A9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AA\\\"\\\"5&7\\u02AB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AC\\\"\\\"5%7\\u02AD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AE\\\"\\\"5'7\\u02AF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B0\\\"\\\"5\\\"7\\u02B1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B2\\\"\\\"5'7\\u02B3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B4\\\"\\\"5$7\\u02B5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B6\\\"\\\"5$7\\u02B7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B8\\\"\\\"5%7\\u02B9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BA\\\"\\\"5'7\\u02BB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BC\\\"\\\"5&7\\u02BD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BE\\\"\\\"5&7\\u02BF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C0\\\"\\\"5(7\\u02C1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C2\\\"\\\"5*7\\u02C3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C4\\\"\\\"5&7\\u02C5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C6\\\"\\\"5%7\\u02C7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C8\\\"\\\"5,7\\u02C9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CA\\\"\\\"5,7\\u02CB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CC\\\"\\\"517\\u02CD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CE\\\"\\\"5(7\\u02CF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D0\\\"\\\"5'7\\u02D1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D2\\\"\\\"5*7\\u02D3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D4\\\"\\\"5(7\\u02D5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D6\\\"\\\"5&7\\u02D7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D8\\\"\\\"5$7\\u02D9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DA\\\"\\\"5&7\\u02DB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DC\\\"\\\"5(7\\u02DD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DE\\\"\\\"5$7\\u02DF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E0\\\"\\\"5$7\\u02E1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E2\\\"\\\"5$7\\u02E3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E4\\\"\\\"5#7\\u02E5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E6\\\"\\\"5&7\\u02E7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E8\\\"\\\"5&7\\u02E9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EA\\\"\\\"5)7\\u02EB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EC\\\"\\\"5&7\\u02ED/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EE\\\"\\\"5'7\\u02EF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F0\\\"\\\"5$7\\u02F1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F2\\\"\\\"5#7\\u02F3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F4\\\"\\\"5'7\\u02F5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F6\\\"\\\"5$7\\u02F7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F8\\\"\\\"5$7\\u02F9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FA\\\"\\\"5$7\\u02FB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FC\\\"\\\"5%7\\u02FD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FE\\\"\\\"5&7\\u02FF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0300\\\"\\\"5\\\"7\\u0301/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0302\\\"\\\"5&7\\u0303/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0304\\\"\\\"5)7\\u0305/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0306\\\"\\\"5\\\"7\\u0307/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0308\\\"\\\"5%7\\u0309/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030A\\\"\\\"5'7\\u030B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030C\\\"\\\"5)7\\u030D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030E\\\"\\\"5%7\\u030F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0310\\\"\\\"5&7\\u0311/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0312\\\"\\\"5'7\\u0313/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0314\\\"\\\"5)7\\u0315/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0316\\\"\\\"5$7\\u0317/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0318\\\"\\\"5\\\"7\\u0319/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031A\\\"\\\"5&7\\u031B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031C\\\"\\\"5$7\\u031D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031E\\\"\\\"5#7\\u031F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0320\\\"\\\"5$7\\u0321/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0322\\\"\\\"5$7\\u0323/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0324\\\"\\\"5%7\\u0325/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0326\\\"\\\"5%7\\u0327/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0328\\\"\\\"5'7\\u0329/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032A\\\"\\\"5\\\"7\\u032B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032C\\\"\\\"5#7\\u032D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032E\\\"\\\"5'7\\u032F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3y\\\"\\\"5$7z/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0330\\\"\\\"5\\\"7\\u0331/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0332\\\"\\\"5&7\\u0333/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0334\\\"\\\"5\\\"7\\u0335/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0336\\\"\\\"5\\\"7\\u0337/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0338\\\"\\\"5%7\\u0339/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033A\\\"\\\"5%7\\u033B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033C\\\"\\\"5$7\\u033D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033E\\\"\\\"5&7\\u033F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0340\\\"\\\"5'7\\u0341/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0342\\\"\\\"5%7\\u0343/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0344\\\"\\\"5%7\\u0345/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0346\\\"\\\"5)7\\u0347/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0348\\\"\\\"5*7\\u0349/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034A\\\"\\\"5&7\\u034B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034C\\\"\\\"5'7\\u034D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034E\\\"\\\"5'7\\u034F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0350\\\"\\\"5&7\\u0351/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0352\\\"\\\"5'7\\u0353/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0354\\\"\\\"5(7\\u0355/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0356\\\"\\\"5%7\\u0357/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0358\\\"\\\"5(7\\u0359/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035A\\\"\\\"5#7\\u035B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035C\\\"\\\"5%7\\u035D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035E\\\"\\\"5)7\\u035F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0360\\\"\\\"5&7\\u0361/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0362\\\"\\\"5#7\\u0363/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0364\\\"\\\"5%7\\u0365/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0366\\\"\\\"5$7\\u0367/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0368\\\"\\\"5)7\\u0369/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036A\\\"\\\"5$7\\u036B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036C\\\"\\\"5\\\"7\\u036D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036E\\\"\\\"5+7\\u036F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0370\\\"\\\"5'7\\u0371/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0372\\\"\\\"5%7\\u0373/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0374\\\"\\\"5&7\\u0375/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0376\\\"\\\"5&7\\u0377/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0378\\\"\\\"5%7\\u0379/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037A\\\"\\\"5&7\\u037B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037C\\\"\\\"5&7\\u037D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037E\\\"\\\"5$7\\u037F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0380\\\"\\\"5'7\\u0381/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0382\\\"\\\"5$7\\u0383/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0384\\\"\\\"5%7\\u0385/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0386\\\"\\\"5$7\\u0387/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0388\\\"\\\"5'7\\u0389/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%;\\u0235/' 8!:\\u038A!! )\"),peg$decode(\";\\u01B7.\\u02F9 &;\\u01B8.\\u02F3 &;\\u01B9.\\u02ED &;\\u01BA.\\u02E7 &;\\u01BB.\\u02E1 &;\\u01BC.\\u02DB &;\\u01BD.\\u02D5 &;\\u01BE.\\u02CF &;\\u01BF.\\u02C9 &;\\u01C0.\\u02C3 &;\\u01C1.\\u02BD &;\\u01C2.\\u02B7 &;\\u01C3.\\u02B1 &;\\u01C4.\\u02AB &;\\u01C5.\\u02A5 &;\\u01C6.\\u029F &;\\u01C7.\\u0299 &;\\u01C8.\\u0293 &;\\u01C9.\\u028D &;\\u01CA.\\u0287 &;\\u01CB.\\u0281 &;\\u01CC.\\u027B &;\\u01CD.\\u0275 &;\\u01CE.\\u026F &;\\u01CF.\\u0269 &;\\u01D0.\\u0263 &;\\u01D1.\\u025D &;\\u01D2.\\u0257 &;\\u01D3.\\u0251 &;\\u01D4.\\u024B &;\\u01D5.\\u0245 &;\\u01D6.\\u023F &;\\u01D7.\\u0239 &;\\u01D8.\\u0233 &;\\u01D9.\\u022D &;\\u01DA.\\u0227 &;\\u01DB.\\u0221 &;\\u01DC.\\u021B &;\\u01DD.\\u0215 &;\\u01DE.\\u020F &;\\u01DF.\\u0209 &;\\u01E0.\\u0203 &;\\u01E1.\\u01FD &;\\u01E2.\\u01F7 &;\\u01E3.\\u01F1 &;\\u01E4.\\u01EB &;\\u01E5.\\u01E5 &;\\u01E6.\\u01DF &;\\u01E7.\\u01D9 &;\\u01E8.\\u01D3 &;\\u01E9.\\u01CD &;\\u01EA.\\u01C7 &;\\u01EB.\\u01C1 &;\\u01EC.\\u01BB &;\\u01ED.\\u01B5 &;\\u01EE.\\u01AF &;\\u01EF.\\u01A9 &;\\u01F0.\\u01A3 &;\\u01F1.\\u019D &;\\u01F2.\\u0197 &;\\u01F3.\\u0191 &;\\u01F4.\\u018B &;\\u01F5.\\u0185 &;\\u01F6.\\u017F &;\\u01F7.\\u0179 &;\\u01F8.\\u0173 &;\\u01F9.\\u016D &;\\u01FA.\\u0167 &;\\u01FB.\\u0161 &;\\u01FC.\\u015B &;\\u01FD.\\u0155 &;\\u01FE.\\u014F &;\\u01FF.\\u0149 &;\\u0200.\\u0143 &;\\u0201.\\u013D &;\\u0202.\\u0137 &;\\u0203.\\u0131 &;\\u0204.\\u012B &;\\u0205.\\u0125 &;\\u0206.\\u011F &;\\u0207.\\u0119 &;\\u0208.\\u0113 &;\\u0209.\\u010D &;\\u020A.\\u0107 &;\\u020B.\\u0101 &;\\u020C.\\xFB &;\\u020D.\\xF5 &;\\u020E.\\xEF &;\\u020F.\\xE9 &;\\u0210.\\xE3 &;\\u0211.\\xDD &;\\u0212.\\xD7 &;\\u0213.\\xD1 &;\\u0214.\\xCB &;\\u0215.\\xC5 &;\\u0216.\\xBF &;\\u0217.\\xB9 &;\\u0218.\\xB3 &;\\u0219.\\xAD &;\\u021A.\\xA7 &;\\u021B.\\xA1 &;\\u021C.\\x9B &;\\u021E.\\x95 &;\\u021F.\\x8F &;\\u0220.\\x89 &;\\u0221.\\x83 &;\\u0223.} &;\\u0224.w &;\\u0225.q &;\\u0226.k &;\\u0227.e &;\\u0228._ &;\\u0229.Y &;\\u022A.S &;\\u022B.M &;\\u022C.G &;\\u022D.A &;\\u022E.; &;\\u022F.5 &;\\u0230./ &;\\u0231.) &;\\u0232.# &;\\u0233\"),peg$decode(\";\\u01B9.\\u0167 &;\\u01BB.\\u0161 &;\\u01BC.\\u015B &;\\u01BE.\\u0155 &;\\u01BF.\\u014F &;\\u01C2.\\u0149 &;\\u01C5.\\u0143 &;\\u01C8.\\u013D &;\\u01CA.\\u0137 &;\\u01CB.\\u0131 &;\\u01CD.\\u012B &;\\u01CF.\\u0125 &;\\u01D0.\\u011F &;\\u01D6.\\u0119 &;\\u01D7.\\u0113 &;\\u01D9.\\u010D &;\\u01DC.\\u0107 &;\\u01DD.\\u0101 &;\\u01DF.\\xFB &;\\u01E1.\\xF5 &;\\u01E2.\\xEF &;\\u01E4.\\xE9 &;\\u01E8.\\xE3 &;\\u01E9.\\xDD &;\\u01EC.\\xD7 &;\\u01ED.\\xD1 &;\\u01F1.\\xCB &;\\u01F2.\\xC5 &;\\u01F6.\\xBF &;\\u01F8.\\xB9 &;\\u01F9.\\xB3 &;\\u01FA.\\xAD &;\\u01FB.\\xA7 &;\\u01FC.\\xA1 &;\\u0200.\\x9B &;\\u0204.\\x95 &;\\u0205.\\x8F &;\\u0206.\\x89 &;\\u0209.\\x83 &;\\u020A.} &;\\u020B.w &;\\u020F.q &;\\u0213.k &;\\u021F.e &;\\u0220._ &;\\u0221.Y &;\\u0224.S &;\\u0225.M &;\\u0226.G &;\\u0228.A &;\\u0229.; &;\\u022A.5 &;\\u022B./ &;\\u022D.) &;\\u0230.# &;\\u0231\"),peg$decode(\";\\u0238.. &%;\\u0239/& 8!:\\u038B! )\"),peg$decode(\"<%2\\u038D\\\"\\\"6\\u038D7\\u038E/\\x87#$%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0M*%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#=.\\\" 7\\u038C\"),peg$decode(\"<%;\\u023A/5#;\\u023E/,$;\\u023B/#$+#)(#'#(\\\"'#&'#=.\\\" 7\\u0391\"),peg$decode(\"2\\u0392\\\"\\\"6\\u03927\\u0393\"),peg$decode(\"2\\u0394\\\"\\\"6\\u03947\\u0395\"),peg$decode(\"$%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#/P#0M*%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&&&#\"),peg$decode(\";\\u023C.# &;\\u0239\"),peg$decode(\"%;\\u023D/K#$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D0/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D&/#$+\\\")(\\\"'#&'#\"),peg$decode(\"<%$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u02370/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u0237&/' 8!:-!! )=.\\\" 7\\u0398\"),peg$decode(\"2\\u0399\\\"\\\"6\\u03997\\u039A\")];var peg$currPos=0;var peg$savedPos=0;var peg$posDetailsCache=[{line:1,column:1}];var peg$maxFailPos=0;var peg$maxFailExpected=[];var peg$silentFails=0;var peg$resultsCache={};var peg$ruleNames=[\"start\",\"start_streaming\",\"stmt_list\",\"semi_optional\",\"semi_required\",\"stmt_list_tail\",\"type_definition\",\"type_definition_types\",\"datatype_custom\",\"datatype_word_tail\",\"type_definition_args\",\"definition_args_loop\",\"literal_value\",\"literal_null\",\"literal_date\",\"literal_string\",\"literal_string_single\",\"literal_string_schar\",\"literal_blob\",\"literal_text\",\"number_sign\",\"literal_number_signed\",\"literal_number\",\"literal_number_decimal\",\"number_decimal_node\",\"number_decimal_full\",\"number_decimal_fraction\",\"number_decimal_exponent\",\"literal_number_hex\",\"number_hex\",\"number_digit\",\"bind_parameter\",\"bind_parameter_numbered\",\"bind_number_id\",\"bind_parameter_named\",\"bind_parameter_tcl\",\"tcl_suffix\",\"expression_exists\",\"expression_exists_ne\",\"expression_raise\",\"expression_raise_args\",\"raise_args_ignore\",\"raise_args_message\",\"expression_root\",\"expression_wrapped\",\"expression_recur\",\"expression_unary_collate\",\"expression_unary\",\"expression_unary_op\",\"expression_collate\",\"expression_concat\",\"expression_multiply\",\"expression_multiply_op\",\"expression_add\",\"expression_add_op\",\"expression_shift\",\"expression_shift_op\",\"expression_compare\",\"expression_compare_op\",\"expression_equiv\",\"expression_equiv_tails\",\"expression_equiv_null_op\",\"expression_equiv_op\",\"expression_cast\",\"type_alias\",\"expression_case\",\"case_expression\",\"expression_case_when\",\"expression_case_else\",\"expression_postfix\",\"expression_postfix_tail\",\"expression_like\",\"expression_escape\",\"expression_between\",\"expression_between_tail\",\"expression_is_not\",\"expression_in\",\"expression_in_target\",\"expression_list_or_select\",\"expression_and\",\"expression\",\"expression_list\",\"expression_list_loop\",\"expression_list_rest\",\"function_call\",\"function_call_args\",\"args_list_distinct\",\"error_message\",\"stmt\",\"stmt_modifier\",\"modifier_query\",\"stmt_nodes\",\"stmt_commit\",\"stmt_begin\",\"commit_transaction\",\"stmt_begin_modifier\",\"stmt_rollback\",\"rollback_savepoint\",\"savepoint_name\",\"savepoint_alt\",\"stmt_savepoint\",\"stmt_release\",\"stmt_alter\",\"alter_start\",\"alter_action\",\"alter_action_rename\",\"alter_action_add\",\"action_add_modifier\",\"stmt_crud\",\"stmt_core_with\",\"clause_with\",\"clause_with_recursive\",\"clause_with_tables\",\"clause_with_loop\",\"expression_cte\",\"select_alias\",\"select_wrapped\",\"stmt_select_full\",\"stmt_sqlite\",\"stmt_attach\",\"attach_arg\",\"stmt_detach\",\"stmt_vacuum\",\"vacuum_target\",\"stmt_analyze\",\"analyze_arg\",\"stmt_reindex\",\"reindex_arg\",\"stmt_pragma\",\"pragma_expression\",\"pragma_value\",\"pragma_value_literal\",\"pragma_value_bool\",\"pragma_bool_id\",\"pragma_value_name\",\"stmt_crud_types\",\"stmt_select\",\"stmt_core_order\",\"stmt_core_limit\",\"stmt_core_limit_offset\",\"limit_offset_variant\",\"limit_offset_variant_name\",\"select_loop\",\"select_loop_union\",\"select_parts\",\"select_parts_core\",\"select_core_select\",\"select_modifier\",\"select_modifier_distinct\",\"select_modifier_all\",\"select_target\",\"select_target_loop\",\"select_core_from\",\"stmt_core_where\",\"select_core_group\",\"select_core_having\",\"select_node\",\"select_node_star\",\"select_node_star_qualified\",\"select_node_aliased\",\"select_source\",\"source_loop_tail\",\"select_cross_clause\",\"select_join_clause\",\"table_or_sub\",\"table_or_sub_func\",\"table_qualified\",\"table_qualified_id\",\"table_or_sub_index_node\",\"index_node_indexed\",\"index_node_none\",\"table_or_sub_sub\",\"table_or_sub_select\",\"alias\",\"join_operator\",\"join_operator_natural\",\"join_operator_types\",\"operator_types_hand\",\"types_hand_outer\",\"operator_types_misc\",\"join_condition\",\"join_condition_on\",\"join_condition_using\",\"select_parts_values\",\"stmt_core_order_list\",\"stmt_core_order_list_loop\",\"stmt_core_order_list_item\",\"select_star\",\"stmt_fallback_types\",\"stmt_insert\",\"insert_keyword\",\"insert_keyword_ins\",\"insert_keyword_repl\",\"insert_keyword_mod\",\"insert_target\",\"insert_into\",\"insert_into_start\",\"insert_results\",\"loop_columns\",\"loop_column_tail\",\"loop_name\",\"insert_value\",\"insert_value_start\",\"insert_values_list\",\"insert_values_loop\",\"expression_list_wrapped\",\"insert_default\",\"operator_compound\",\"compound_union\",\"compound_union_all\",\"stmt_update\",\"update_start\",\"update_fallback\",\"update_set\",\"update_columns\",\"update_columns_tail\",\"update_column\",\"stmt_delete\",\"delete_start\",\"stmt_create\",\"create_start\",\"create_table_only\",\"create_index_only\",\"create_trigger_only\",\"create_view_only\",\"create_virtual_only\",\"create_table\",\"create_table_start\",\"create_core_tmp\",\"create_core_ine\",\"create_table_source\",\"table_source_def\",\"source_def_rowid\",\"source_def_loop\",\"source_def_tail\",\"source_tbl_loop\",\"source_def_column\",\"source_def_name\",\"column_type\",\"column_constraints\",\"column_constraint_tail\",\"column_constraint\",\"constraint_name\",\"constraint_name_loop\",\"column_constraint_types\",\"column_constraint_foreign\",\"column_constraint_primary\",\"col_primary_start\",\"col_primary_auto\",\"column_constraint_null\",\"constraint_null_types\",\"constraint_null_value\",\"column_constraint_check\",\"column_constraint_default\",\"column_default_values\",\"column_constraint_collate\",\"table_constraint\",\"table_constraint_types\",\"table_constraint_check\",\"table_constraint_primary\",\"primary_start\",\"primary_start_normal\",\"primary_start_unique\",\"primary_columns\",\"primary_columns_index\",\"primary_columns_table\",\"primary_column_tail\",\"primary_column\",\"primary_column_types\",\"column_collate\",\"column_collate_loop\",\"primary_column_dir\",\"primary_conflict\",\"primary_conflict_start\",\"constraint_check\",\"table_constraint_foreign\",\"foreign_start\",\"foreign_clause\",\"foreign_references\",\"foreign_actions\",\"foreign_actions_tail\",\"foreign_action\",\"foreign_action_on\",\"action_on_action\",\"on_action_set\",\"on_action_cascade\",\"on_action_none\",\"foreign_action_match\",\"foreign_deferrable\",\"deferrable_initially\",\"table_source_select\",\"create_index\",\"create_index_start\",\"index_unique\",\"index_on\",\"create_trigger\",\"create_trigger_start\",\"trigger_conditions\",\"trigger_apply_mods\",\"trigger_apply_instead\",\"trigger_do\",\"trigger_do_on\",\"trigger_do_update\",\"do_update_of\",\"do_update_columns\",\"trigger_foreach\",\"trigger_when\",\"trigger_action\",\"action_loop\",\"action_loop_stmt\",\"create_view\",\"id_view_expression\",\"create_view_start\",\"create_as_select\",\"create_virtual\",\"create_virtual_start\",\"virtual_module\",\"virtual_args\",\"virtual_args_loop\",\"virtual_args_tail\",\"virtual_arg_types\",\"virtual_column_name\",\"stmt_drop\",\"drop_start\",\"drop_types\",\"drop_ie\",\"binary_concat\",\"binary_plus\",\"binary_minus\",\"binary_multiply\",\"binary_divide\",\"binary_mod\",\"binary_left\",\"binary_right\",\"binary_and\",\"binary_or\",\"binary_lt\",\"binary_gt\",\"binary_lte\",\"binary_gte\",\"binary_equal\",\"binary_notequal_a\",\"binary_notequal_b\",\"binary_lang_isnt\",\"id_name\",\"id_database\",\"id_function\",\"id_table\",\"id_table_qualified\",\"id_column\",\"column_unqualified\",\"column_qualifiers\",\"id_column_qualified\",\"id_collation\",\"id_savepoint\",\"id_index\",\"id_trigger\",\"id_view\",\"id_pragma\",\"id_cte\",\"id_table_expression\",\"id_constraint_table\",\"id_constraint_column\",\"datatype_types\",\"datatype_text\",\"datatype_real\",\"datatype_real_double\",\"datatype_numeric\",\"datatype_integer\",\"datatype_integer_fp\",\"datatype_none\",\"name_char\",\"unicode_char\",\"name\",\"name_quoted\",\"name_unquoted\",\"name_reserved\",\"name_bracketed\",\"bracket_terminator\",\"name_dblquoted\",\"name_sglquoted\",\"name_backticked\",\"sym_bopen\",\"sym_bclose\",\"sym_popen\",\"sym_pclose\",\"sym_comma\",\"sym_dot\",\"sym_star\",\"sym_quest\",\"sym_sglquote\",\"sym_dblquote\",\"sym_backtick\",\"sym_tilde\",\"sym_plus\",\"sym_minus\",\"sym_equal\",\"sym_amp\",\"sym_pipe\",\"sym_mod\",\"sym_lt\",\"sym_gt\",\"sym_excl\",\"sym_semi\",\"sym_colon\",\"sym_fslash\",\"sym_bslash\",\"ABORT\",\"ACTION\",\"ADD\",\"AFTER\",\"ALL\",\"ALTER\",\"ANALYZE\",\"AND\",\"AS\",\"ASC\",\"ATTACH\",\"AUTOINCREMENT\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BY\",\"CASCADE\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"COMMIT\",\"CONFLICT\",\"CONSTRAINT\",\"CREATE\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"DATABASE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DELETE\",\"DESC\",\"DETACH\",\"DISTINCT\",\"DROP\",\"EACH\",\"ELSE\",\"END\",\"ESCAPE\",\"EXCEPT\",\"EXCLUSIVE\",\"EXISTS\",\"EXPLAIN\",\"FAIL\",\"FOR\",\"FOREIGN\",\"FROM\",\"FULL\",\"GLOB\",\"GROUP\",\"HAVING\",\"IF\",\"IGNORE\",\"IMMEDIATE\",\"IN\",\"INDEX\",\"INDEXED\",\"INITIALLY\",\"INNER\",\"INSERT\",\"INSTEAD\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"KEY\",\"LEFT\",\"LIKE\",\"LIMIT\",\"MATCH\",\"NATURAL\",\"NO\",\"NOT\",\"NOTNULL\",\"NULL\",\"OF\",\"OFFSET\",\"ON\",\"OR\",\"ORDER\",\"OUTER\",\"PLAN\",\"PRAGMA\",\"PRIMARY\",\"QUERY\",\"RAISE\",\"RECURSIVE\",\"REFERENCES\",\"REGEXP\",\"REINDEX\",\"RELEASE\",\"RENAME\",\"REPLACE\",\"RESTRICT\",\"RIGHT\",\"ROLLBACK\",\"ROW\",\"ROWID\",\"SAVEPOINT\",\"SELECT\",\"SET\",\"TABLE\",\"TEMP\",\"TEMPORARY\",\"THEN\",\"TO\",\"TRANSACTION\",\"TRIGGER\",\"UNION\",\"UNIQUE\",\"UPDATE\",\"USING\",\"VACUUM\",\"VALUES\",\"VIEW\",\"VIRTUAL\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\",\"reserved_words\",\"reserved_word_list\",\"reserved_critical_list\",\"comment\",\"comment_line\",\"comment_block\",\"comment_block_start\",\"comment_block_end\",\"comment_block_body\",\"block_body_nodes\",\"comment_block_feed\",\"o\",\"_TODO_\"];var peg$descNames=[null,null,null,null,null,null,\"Type Definition\",null,\"Custom Datatype Name\",null,\"Type Definition Arguments\",null,null,\"Null Literal\",\"Date Literal\",\"String Literal\",\"Single-quoted String Literal\",null,\"Blob Literal\",null,\"Number Sign\",null,null,null,\"Decimal Literal\",null,null,\"Decimal Literal Exponent\",\"Hexidecimal Literal\",null,null,\"Bind Parameter\",\"Numbered Bind Parameter\",null,\"Named Bind Parameter\",\"TCL Bind Parameter\",null,\"EXISTS Expression\",\"EXISTS Keyword\",\"RAISE Expression\",\"RAISE Expression Arguments\",\"IGNORE Keyword\",null,null,null,null,null,null,null,\"COLLATE Expression\",null,null,null,null,null,null,null,null,null,null,null,null,null,\"CAST Expression\",\"Type Alias\",\"CASE Expression\",null,\"WHEN Clause\",\"ELSE Clause\",null,null,\"Comparison Expression\",\"ESCAPE Expression\",\"BETWEEN Expression\",null,null,\"IN Expression\",null,null,null,null,\"Expression List\",null,null,\"Function Call\",\"Function Call Arguments\",null,\"Error Message\",\"Statement\",\"QUERY PLAN\",\"QUERY PLAN Keyword\",null,\"END Transaction Statement\",\"BEGIN Transaction Statement\",null,null,\"ROLLBACK Statement\",\"TO Clause\",null,null,\"SAVEPOINT Statement\",\"RELEASE Statement\",\"ALTER TABLE Statement\",\"ALTER TABLE Keyword\",null,\"RENAME TO Keyword\",\"ADD COLUMN Keyword\",null,null,\"WITH Clause\",null,null,null,null,\"Common Table Expression\",null,null,null,null,\"ATTACH Statement\",null,\"DETACH Statement\",\"VACUUM Statement\",null,\"ANALYZE Statement\",null,\"REINDEX Statement\",null,\"PRAGMA Statement\",null,null,null,null,null,null,null,\"SELECT Statement\",\"ORDER BY Clause\",\"LIMIT Clause\",\"OFFSET Clause\",null,null,null,\"Union Operation\",null,null,\"SELECT Results Clause\",\"SELECT Results Modifier\",null,null,null,null,\"FROM Clause\",\"WHERE Clause\",\"GROUP BY Clause\",\"HAVING Clause\",null,null,null,null,null,null,\"CROSS JOIN Operation\",\"JOIN Operation\",null,null,\"Qualified Table\",\"Qualified Table Identifier\",\"Qualfied Table Index\",null,null,\"SELECT Source\",\"Subquery\",\"Alias\",\"JOIN Operator\",null,null,null,null,null,\"JOIN Constraint\",\"Join ON Clause\",\"Join USING Clause\",\"VALUES Clause\",null,null,\"Ordering Expression\",\"Star\",\"Fallback Type\",\"INSERT Statement\",null,\"INSERT Keyword\",\"REPLACE Keyword\",\"INSERT OR Modifier\",null,\"INTO Clause\",\"INTO Keyword\",\"VALUES Clause\",\"Column List\",null,\"Column Name\",\"VALUES Clause\",\"VALUES Keyword\",null,null,\"Wrapped Expression List\",\"DEFAULT VALUES Clause\",\"Compound Operator\",\"UNION Operator\",null,\"UPDATE Statement\",\"UPDATE Keyword\",\"UPDATE OR Modifier\",\"SET Clause\",null,null,\"Column Assignment\",\"DELETE Statement\",\"DELETE Keyword\",\"CREATE Statement\",null,null,null,null,null,null,\"CREATE TABLE Statement\",null,null,\"IF NOT EXISTS Modifier\",null,\"Table Definition\",null,null,null,null,\"Column Definition\",null,\"Column Datatype\",null,null,\"Column Constraint\",null,\"CONSTRAINT Name\",null,\"FOREIGN KEY Column Constraint\",\"PRIMARY KEY Column Constraint\",\"PRIMARY KEY Keyword\",\"AUTOINCREMENT Keyword\",null,\"UNIQUE Column Constraint\",\"NULL Column Constraint\",\"CHECK Column Constraint\",\"DEFAULT Column Constraint\",null,\"COLLATE Column Constraint\",\"Table Constraint\",null,\"CHECK Table Constraint\",\"PRIMARY KEY Table Constraint\",null,\"PRIMARY KEY Keyword\",\"UNIQUE Keyword\",null,null,null,null,\"Indexed Column\",null,\"Collation\",null,\"Column Direction\",null,\"ON CONFLICT Keyword\",null,\"FOREIGN KEY Table Constraint\",\"FOREIGN KEY Keyword\",null,\"REFERENCES Clause\",null,null,\"FOREIGN KEY Action Clause\",null,\"FOREIGN KEY Action\",null,null,null,null,\"DEFERRABLE Clause\",null,null,\"CREATE INDEX Statement\",null,null,\"ON Clause\",\"CREATE TRIGGER Statement\",null,\"Conditional Clause\",null,null,\"Conditional Action\",null,null,null,null,null,\"WHEN Clause\",\"Actions Clause\",null,null,\"CREATE VIEW Statement\",null,null,null,\"CREATE VIRTUAL TABLE Statement\",null,null,\"Module Arguments\",null,null,null,null,\"DROP Statement\",\"DROP Keyword\",\"DROP Type\",\"IF EXISTS Keyword\",\"Or\",\"Add\",\"Subtract\",\"Multiply\",\"Divide\",\"Modulo\",\"Shift Left\",\"Shift Right\",\"Logical AND\",\"Logical OR\",\"Less Than\",\"Greater Than\",\"Less Than Or Equal\",\"Greater Than Or Equal\",\"Equal\",\"Not Equal\",\"Not Equal\",\"IS\",\"Identifier\",\"Database Identifier\",\"Function Identifier\",\"Table Identifier\",null,\"Column Identifier\",null,null,null,\"Collation Identifier\",\"Savepoint Identifier\",\"Index Identifier\",\"Trigger Identifier\",\"View Identifier\",\"Pragma Identifier\",\"CTE Identifier\",null,\"Table Constraint Identifier\",\"Column Constraint Identifier\",\"Datatype Name\",\"TEXT Datatype Name\",\"REAL Datatype Name\",\"DOUBLE Datatype Name\",\"NUMERIC Datatype Name\",\"INTEGER Datatype Name\",null,\"BLOB Datatype Name\",null,null,null,null,null,null,null,null,null,null,null,\"Open Bracket\",\"Close Bracket\",\"Open Parenthesis\",\"Close Parenthesis\",\"Comma\",\"Period\",\"Asterisk\",\"Question Mark\",\"Single Quote\",\"Double Quote\",\"Backtick\",\"Tilde\",\"Plus\",\"Minus\",\"Equal\",\"Ampersand\",\"Pipe\",\"Modulo\",\"Less Than\",\"Greater Than\",\"Exclamation\",\"Semicolon\",\"Colon\",\"Forward Slash\",\"Backslash\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"Line Comment\",\"Block Comment\",null,null,null,null,null,\"Whitespace\",null];var peg$tracer=\"tracer\"in options?options.tracer:new peg$DefaultTracer();var peg$result;if(\"startRule\"in options){if(!(options.startRule in peg$startRuleIndices)){throw new Error(\"Can't start parsing from rule \\\"\"+options.startRule+\"\\\".\");}peg$startRuleIndex=peg$startRuleIndices[options.startRule];}function text(){return input.substring(peg$savedPos,peg$currPos);}function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}function expected(description,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildStructuredError([peg$otherExpectation(description)],input.substring(peg$savedPos,peg$currPos),location);}function error(message,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location);}function peg$literalExpectation(text,ignoreCase){return{type:\"literal\",text:text,ignoreCase:ignoreCase};}function peg$classExpectation(parts,inverted,ignoreCase){return{type:\"class\",parts:parts,inverted:inverted,ignoreCase:ignoreCase};}function peg$anyExpectation(){return{type:\"any\"};}function peg$endExpectation(){return{type:\"end\"};}function peg$otherExpectation(description){return{type:\"other\",description:description};}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos];var p;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(ppeg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}peg$maxFailExpected.push(expected);}function peg$buildSimpleError(message,location){return new peg$SyntaxError(message,null,null,location);}function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location);}function peg$decode(s){return s.split(\"\").map(function(ch){return ch.charCodeAt(0)-32;});}function peg$parseRule(index){var bc=peg$bytecode[index];var ip=0;var ips=[];var end=bc.length;var ends=[];var stack=[];var startPos=peg$currPos;var params;peg$tracer.trace({type:\"rule.enter\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});var key=peg$currPos*545+index;var cached=peg$resultsCache[key];if(cached){peg$currPos=cached.nextPos;if(cached.result!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:cached.result,location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return cached.result;}while(true){while(ippeg$currPos){end=ip+3+bc[ip+1];ip+=3;}else{end=ip+3+bc[ip+1]+bc[ip+2];ip+=3+bc[ip+1];}break;case 18:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length)===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 19:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length).toLowerCase()===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 20:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(peg$consts[bc[ip+1]].test(input.charAt(peg$currPos))){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 21:stack.push(input.substr(peg$currPos,bc[ip+1]));peg$currPos+=bc[ip+1];ip+=2;break;case 22:stack.push(peg$consts[bc[ip+1]]);peg$currPos+=peg$consts[bc[ip+1]].length;ip+=2;break;case 23:stack.push(peg$FAILED);if(peg$silentFails===0){peg$fail(peg$consts[bc[ip+1]]);}ip+=2;break;case 24:peg$savedPos=stack[stack.length-1-bc[ip+1]];ip+=2;break;case 25:peg$savedPos=peg$currPos;ip++;break;case 26:params=bc.slice(ip+4,ip+4+bc[ip+3]).map(function(p){return stack[stack.length-1-p];});stack.splice(stack.length-bc[ip+2],bc[ip+2],peg$consts[bc[ip+1]].apply(null,params));ip+=4+bc[ip+3];break;case 27:stack.push(peg$parseRule(bc[ip+1]));ip+=2;break;case 28:peg$silentFails++;ip++;break;case 29:peg$silentFails--;ip++;break;default:throw new Error(\"Invalid opcode: \"+bc[ip]+\".\");}}if(ends.length>0){end=ends.pop();ip=ips.pop();}else{break;}}peg$resultsCache[key]={nextPos:peg$currPos,result:stack[0]};if(stack[0]!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:stack[0],location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return stack[0];}function makeArray(arr){if(!isOkay(arr)){return[];}return!Array.isArray(arr)?[arr]:arr;}function isOkay(obj){return obj!=null;}function foldString(parts){var glue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:' ';var folded=parts.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return\"\"+prev+nodeToString(cur)+glue;},'');return folded.trim();}function foldStringWord(parts){return foldString(parts,'');}function foldStringKey(parts){return foldString(parts).toLowerCase();}function flattenAll(arr){return arr.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return prev.concat(cur);},[]);}function unescape(str){var quoteChar=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'\\'';var re=new RegExp(quoteChar+\"{2}\",'g');return nodeToString(str).replace(re,quoteChar);}function nodeToString(){var node=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return makeArray(node).join('');}function textNode(node){return nodeToString(node).trim();}function keyNode(node){return textNode(node).toLowerCase();}function isArrayOkay(arr){return Array.isArray(arr)&&arr.length>0&&isOkay(arr[0]);}function composeBinary(first,rest){return rest.reduce(function(left,_ref7){var _ref8=_slicedToArray(_ref7,4);var x=_ref8[0];var operation=_ref8[1];var y=_ref8[2];var right=_ref8[3];return{'type':'expression','format':'binary','variant':'operation','operation':keyNode(operation),'left':left,'right':right};},first);}peg$result=peg$parseRule(peg$startRuleIndex);if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos=0;i-=1){if(func(arr[i])){return i;}}return-1;}function takeWhile(arr,func){var len=arr.length;var i=0;for(;i1){return false;}if(!deep){if(elem.indentation>bestNode.indentation){bestNode=elem;}else{deep=true;}}else if(/^(stmt)$/i.test(elem.rule)){deep=true;return true;}return true;});if(chain.length){location=bestNode.location;firstNode=chain.find(function(elem){return that.firstNodeRule.test(elem.description)&&elem.description!==bestNode.description&&elem.indentation!==bestNode.indentation;});if(firstNode!=null){if(this.statementRule.test(bestNode.description)&&this.statementRule.test(firstNode.description)){chainDetail=firstNode.description;}else{chainDetail=bestNode.description+' ('+firstNode.description+')';}}else{chainDetail=bestNode.description;}message='Syntax error found near '+chainDetail;Object.assign(err,{'message':message,'location':location});}return err;};return Tracer;}();\n\n},{}]},{},[1])(1)\n});","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n 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':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n var curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","'use strict'\n\nfunction isPromise (obj) {\n // via https://unpkg.com/is-promise@2.1.0/index.js\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction registerPromiseWorker (callback) {\n function postOutgoingMessage (e, messageId, error, result) {\n function postMessage (msg) {\n /* istanbul ignore if */\n if (typeof self.postMessage !== 'function') { // service worker\n e.ports[0].postMessage(msg)\n } else { // web worker\n self.postMessage(msg)\n }\n }\n if (error) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined' && 'error' in console) {\n // This is to make errors easier to debug. I think it's important\n // enough to just leave here without giving the user an option\n // to silence it.\n console.error('Worker caught an error:', error)\n }\n postMessage([messageId, {\n message: error.message\n }])\n } else {\n postMessage([messageId, null, result])\n }\n }\n\n function tryCatchFunc (callback, message) {\n try {\n return { res: callback(message) }\n } catch (e) {\n return { err: e }\n }\n }\n\n function handleIncomingMessage (e, callback, messageId, message) {\n var result = tryCatchFunc(callback, message)\n\n if (result.err) {\n postOutgoingMessage(e, messageId, result.err)\n } else if (!isPromise(result.res)) {\n postOutgoingMessage(e, messageId, null, result.res)\n } else {\n result.res.then(function (finalResult) {\n postOutgoingMessage(e, messageId, null, finalResult)\n }, function (finalError) {\n postOutgoingMessage(e, messageId, finalError)\n })\n }\n }\n\n function onIncomingMessage (e) {\n var payload = e.data\n if (!Array.isArray(payload) || payload.length !== 2) {\n // message doens't match communication format; ignore\n return\n }\n var messageId = payload[0]\n var message = payload[1]\n\n if (typeof callback !== 'function') {\n postOutgoingMessage(e, messageId, new Error(\n 'Please pass a function into register().'))\n } else {\n handleIncomingMessage(e, callback, messageId, message)\n }\n }\n\n self.addEventListener('message', onIncomingMessage)\n}\n\nmodule.exports = registerPromiseWorker\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n 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]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n 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);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n do {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n } while (true);\n};\n\nEC.prototype._truncateToN = function truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; true; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n\n if (!this.curve._maxwellTrick) {\n var p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n var p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","module.exports = require('./readable').PassThrough\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = require('./readable').Transform\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n 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);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","module.exports = require('events').EventEmitter;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/_worker.5e0dd41a.worker.js.map b/js/_worker.5e0dd41a.worker.js.map deleted file mode 100644 index 7f16fa4..0000000 --- a/js/_worker.5e0dd41a.worker.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./lib/sql-js/dist/sql-wasm.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash-base/node_modules/safe-buffer/index.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/vm-browserify/index.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/core-js/modules/es.weak-map.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-sign/node_modules/safe-buffer/index.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./src/lib/database/_statements.js","webpack:///./src/lib/database/_sql.js","webpack:///./src/lib/database/_worker.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/sqlite-parser/dist/sqlite-parser.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/elliptic/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/pbkdf2/lib/to-buffer.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/promise-worker/register.js","webpack:///./node_modules/core-js/modules/es.array.copy-within.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/core-js/internals/collection-weak.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/asn1.js/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","primes","DH","getDiffieHellman","mod","prime","Buffer","gen","ENCODINGS","createDiffieHellman","enc","generator","genc","isBuffer","undefined","generatePrime","DiffieHellmanGroup","createDiffieHellmanGroup","DiffieHellman","wellKnownSymbol","TO_STRING_TAG","test","String","assert","val","msg","Error","inherits","ctor","superCtor","super_","TempCtor","constructor","BN","number","base","endian","isBN","this","negative","words","length","red","_init","wordSize","e","parseHex","str","start","end","len","Math","min","charCodeAt","parseBase","mul","num","Array","isArray","max","left","right","cmp","_initNumber","_initArray","toString","replace","_parseHex","_parseBase","strip","toArray","ceil","j","w","off","limbLen","limbPow","total","word","imuln","_iaddn","pow","copy","dest","clone","_expand","size","_normSign","inspect","zeros","groupSizes","groupBases","toBitArray","bitLength","bit","wbit","smallMulTo","self","out","a","b","lo","carry","k","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","ArrayType","byteLength","reqLength","littleEndian","res","q","andln","iushrn","clz32","_countBits","_zeroBits","hi","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","iadd","isub","add","sub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","x","y","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","iushln","bits","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","bhi","bhiBits","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","z","inv","windowSize","wnd","current","currentLen","mont","u","encrypt","block","_cipher","encryptBlock","decrypt","decryptBlock","Cipher","options","type","blockSize","buffer","bufferOff","update","data","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","_update","inputOff","outputOff","count","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal","constants","_reverse","map","keys","forEach","der","initSqlJsPromise","initSqlJs","moduleConfig","Promise","resolveModule","reject","Module","originalOnAbortFunction","errorThatCausedAbort","push","apiTemp","stackAlloc","cwrap","NULL","SQLITE_OK","SQLITE_ROW","SQLITE_DONE","SQLITE_INTEGER","SQLITE_FLOAT","SQLITE_TEXT","SQLITE_BLOB","SQLITE_UTF8","sqlite3_open","sqlite3_close_v2","sqlite3_exec","sqlite3_changes","sqlite3_prepare_v2","sqlite3_sql","sqlite3_normalized_sql","sqlite3_prepare_v2_sqlptr","sqlite3_bind_text","sqlite3_bind_blob","sqlite3_bind_double","sqlite3_bind_int","sqlite3_bind_parameter_index","sqlite3_step","sqlite3_errmsg","sqlite3_column_count","sqlite3_data_count","sqlite3_column_double","sqlite3_column_text","sqlite3_column_blob","sqlite3_column_bytes","sqlite3_column_type","sqlite3_column_name","sqlite3_reset","sqlite3_clear_bindings","sqlite3_finalize","sqlite3_create_function_v2","sqlite3_value_type","sqlite3_value_bytes","sqlite3_value_text","sqlite3_value_blob","sqlite3_value_double","sqlite3_result_double","sqlite3_result_null","sqlite3_result_text","sqlite3_result_blob","sqlite3_result_int","sqlite3_result_error","registerExtensionFunctions","Statement","stmt1","db","stmt","pos","allocatedmem","StatementIterator","sql","sz","lengthBytesUTF8","sqlPtr","_malloc","stringToUTF8","nextSqlPtr","nextSqlString","activeStatement","Database","filename","random","FS","createDataFile","handleError","getValue","statements","functions","values","bindFromArray","bindFromObject","getNumber","getString","getBlob","ptr","result","Uint8Array","HEAP8","params","results1","ref","field","names","rowObject","bindString","string","bytes","intArrayFromString","strptr","allocate","ALLOC_NORMAL","bindBlob","array","blobptr","bindNumber","bindfunc","bindNull","bindValue","valuesObj","that","freemem","mem","pop","_free","done","finalize","stack","stackSave","pzTail","setValue","pStmt","UTF8ToString","stackRestore","iterator","allocateUTF8OnStack","results","curresult","columns","errCaught","callback","removeFunction","binaryDb","readFile","encoding","unlink","returnCode","errmsg","func","wrapped_func","cx","argc","argv","extract_blob","blob_ptr","blob_arg","args","arg","value_ptr","value_type","apply","error","func_ptr","addFunction","moduleOverrides","arguments_","thisProgram","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","window","importScripts","process","versions","node","read_","readAsync","readBinary","nodeFS","nodePath","scriptDirectory","locateFile","path","require","dirname","__dirname","binary","slice","ex","ExitStatus","abort","status","read","f","readbuffer","scriptArgs","arguments","quit","print","console","log","warn","printErr","location","href","document","currentScript","src","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","onload","onerror","err","STACK_ALIGN","alignMemory","factor","convertJsFunctionToWasm","sig","WebAssembly","Function","typeNames","parameters","typeSection","sigRet","sigParam","typeCodes","instance","Instance","wrappedFunc","functionsInTableMap","wasmBinary","freeTableIndexes","getEmptyTableSlot","wasmTable","grow","RangeError","addFunctionWasm","WeakMap","item","set","has","TypeError","wrapped","index","delete","wasmMemory","noSafe","charAt","HEAP16","HEAP32","tempI64","tempDouble","floor","HEAPF32","HEAPF64","ABORT","condition","text","getCFunc","ident","ccall","returnType","argTypes","opts","toC","arr","writeArrayToMemory","convertReturnValue","Boolean","cArgs","converter","numericArgs","every","numericRet","ALLOC_STACK","slab","allocator","subarray","HEAPU8","UTF8Decoder","TextDecoder","UTF8ArrayToString","heap","idx","maxBytesToRead","endIdx","endPtr","decode","u0","u1","u2","fromCharCode","ch","stringToUTF8Array","outIdx","maxBytesToWrite","startIdx","outPtr","allocateUTF8","writeAsciiToMemory","dontAddNull","alignUp","multiple","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","preRun","addOnPreRun","callRuntimeCallbacks","initRuntime","init","initialized","ignorePermissions","TTY","postRun","addOnPostRun","cb","unshift","addOnInit","runDependencies","runDependencyWatcher","dependenciesFulfilled","getUniqueRunDependency","id","addRunDependency","removeRunDependency","clearInterval","what","RuntimeError","wasmBinaryFile","dataURIPrefix","isDataURI","startsWith","isFileURI","getBinary","file","getBinaryPromise","fetch","credentials","then","catch","resolve","createWasm","info","asmLibraryArg","receiveInstance","receiveInstantiationResult","instantiateArrayBuffer","receiver","instantiate","reason","instantiateAsync","instantiateStreaming","callbacks","demangle","demangleAll","regex","jsStackTrace","stackTrace","js","___assert_fail","line","_tzset","called","currentYear","Date","getFullYear","winter","summer","winterOffset","getTimezoneOffset","summerOffset","stdTimezoneOffset","__get_timezone","__get_daylight","Number","winterName","extractZone","summerName","winterNamePtr","summerNamePtr","__get_tzname","date","match","toTimeString","_localtime_r","time","tmPtr","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","yday","getTime","dst","zonePtr","___localtime_r","PATH","splitPath","splitPathRe","exec","normalizeArray","parts","allowAboveRoot","up","splice","normalize","isAbsolute","trailingSlash","filter","join","root","dir","basename","lastSlash","extname","paths","join2","getRandomDevice","crypto","randomBuffer","getRandomValues","crypto_module","PATH_FS","resolvedPath","resolvedAbsolute","cwd","relative","from","to","trim","fromParts","toParts","samePartsLength","outputParts","ttys","shutdown","register","dev","ops","registerDevice","stream_ops","stream","tty","rdev","ErrnoError","seekable","close","flush","offset","get_char","bytesRead","timestamp","now","write","put_char","default_tty_ops","BUFSIZE","alloc","readSync","stdin","fd","includes","prompt","readline","default_tty1_ops","mmapAlloc","alignedSize","_emscripten_get_now","MEMFS","ops_table","mount","createNode","parent","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","rmdir","readdir","symlink","llseek","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","CAPACITY_DOUBLING_MAX","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","newname","oldpath","position","canOwn","whence","address","prot","flags","allocated","byteOffset","mmapFlags","mounts","devices","streams","nextInode","nameTable","currentPath","trackingDelegate","tracking","openFlags","READ","WRITE","filesystems","syncFSRequests","lookupPath","defaults","follow_mount","recurse_count","current_path","islast","isMountpoint","mounted","follow","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","mayCreate","mayDelete","isdir","errno","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","getStream","createStream","FSStream","isRead","isWrite","isAppend","newStream","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","syncfs","populate","completed","doCallback","errored","pseudo","mountRoot","unmount","mkdir","mkdirTree","dirs","mkdev","newpath","old_path","new_path","old_dir","old_dirname","new_dirname","old_name","message","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","ungotten","readFiles","trackingFlags","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","cmd","writeFile","actualNumBytes","ArrayBuffer","isView","chdir","createDefaultDirectories","createDefaultDevices","random_device","createDevice","createSpecialDirectories","proc_self","createStandardStreams","ensureErrnoError","setErrno","code","staticInit","fflush","getMode","canRead","canWrite","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createPath","reverse","part","createFile","properties","forceLoadFile","obj","isDevice","isFolder","createLazyFile","LazyUint8Array","lengthKnown","chunks","chunkOffset","chunkSize","chunkNum","setDataGetter","cacheLength","header","datalength","getResponseHeader","hasByteServing","usesGzip","doXHR","setRequestHeader","overrideMimeType","lazyArray","_length","_chunkSize","defineProperties","fn","createPreloadedFile","dontCreateFile","preFinish","Browser","fullname","dep","processData","byteArray","finish","handled","plugin","asyncLoad","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","pathname","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","putRequest","put","loadFilesFromDB","getRequest","SYSCALLS","mappings","DEFAULT_POLLMASK","umask","calculateAt","dirfd","allowEmpty","dirstream","doStat","doMsync","addr","doMkdir","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doDup","suggestFD","suggest","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","get64","low","high","___sys_access","___sys_chmod","___sys_chown32","owner","group","___sys_fchmod","___sys_fchown32","setErrNo","___errno_location","___sys_fcntl64","___sys_fstat64","___sys_ftruncate64","zero","___sys_getcwd","cwdLengthInBytes","___sys_getegid32","___sys_geteuid32","___sys_getpid","___sys_lstat64","___sys_mkdir","syscallMmap2","_memalign","_memset","malloc","___sys_mmap2","syscallMunmap","___sys_munmap","___sys_open","___sys_readlink","___sys_rmdir","___sys_stat64","___sys_unlink","_emscripten_get_heap_max","_emscripten_memcpy_big","copyWithin","emscripten_realloc_buffer","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","replacement","_emscripten_thread_sleep","msecs","dateNow","performance","ENV","getExecutableName","getEnvStrings","strings","lang","navigator","languages","env","_environ_get","__environ","environ_buf","bufSize","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","_fd_fdstat_get","pbuf","_fd_read","pnum","_fd_seek","offset_low","offset_high","newOffset","HIGH_OFFSET","DOUBLE_LIMIT","_fd_sync","fsync","_fd_write","_gettimeofday","_time","setFileTime","_utimes","times","readMode","writeMode","stringy","u8array","numBytesWritten","calledRun","run","doRun","setTimeout","runCaller","default","define","aFunction","toIndexedObject","nativeGetOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","it","ERR_INVALID_OPT_VALUE","codes","highWaterMarkFrom","isDuplex","duplexKey","highWaterMark","getHighWaterMark","state","hwm","isFinite","objectMode","copyProps","SafeBuffer","encodingOrOffset","allocUnsafe","allocUnsafeSlow","fill","SlowBuffer","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","xs","Object_keys","defineProp","writable","configurable","globals","Context","Script","runInContext","context","iframe","createElement","style","display","body","appendChild","win","contentWindow","wEval","eval","wExecScript","execScript","winKeys","removeChild","runInThisContext","runInNewContext","createContext","isContext","createScript","$","$values","target","utils","SHA256","SHA224","outSize","hmacStrength","padLength","_digest","toHex32","split32","Hash","K","W","Sha","_w","rotl5","rotl30","ft","_a","_b","_c","_d","_e","M","readInt32BE","_hash","H","writeInt32BE","Transform","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","ts","_transformState","transforming","writecb","emit","writechunk","rs","_readableState","reading","needReadable","_read","needTransform","writeencoding","sync","_transform","_flush","on","prefinish","_this","destroyed","_writableState","chunk","_write","_destroy","err2","aes","StreamCipher","iv","AES","_prev","_cache","_secCache","_decrypt","_mode","_final","scrub","PassThrough","toInteger","toLength","des","des3","pre","curves","curve","PresetCurve","short","edwards","validate","isInfinity","defineCurve","sha256","gRed","sha384","sha512","beta","lambda","basis","fails","proto","CBCState","Base","CBC","_cbcInit","_cbcState","inp","inOff","outOff","superProto","parseKeys","mgf","crt","createHash","withPublic","oaep","modulus","iHash","digest","hLen","maskedSeed","maskedDb","seed","compare","pkcs1","p1","ps","dif","privateKey","zBuffer","InternalWeakMap","global","redefineAll","InternalMetadataModule","collection","collectionWeak","isObject","enforceIternalState","enforce","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","isExtensible","wrapper","$WeakMap","getConstructor","REQUIRED","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","MAX_BYTES","MAX_UINT32","oldBrowser","msCrypto","randomBytes","generated","nextTick","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","callRegExpExec","regexpExec","arrayPush","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","lim","lastIndex","lastLength","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","splitter","regexp","S","unicodeMatching","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","createTypedArrayConstructor","toObject","toAbsoluteIndex","inc","classof","R","DES","EDE","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","begin","beginIndex","BYTES_PER_ELEMENT","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","callbackfn","toPositiveInteger","BYTES","Constructor","CorkedRequest","entry","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","Stream","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","realHasInstance","destroyImpl","_require","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","writev","_writev","destroy","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","rState","endEmitted","endWritable","once","corkReq","getBuffer","hasInstance","pipe","cork","uncork","setDefaultEncoding","toLowerCase","_undestroy","undestroy","Legacy","md5","RIPEMD160","sha","ZEROS","Hmac","alg","blocksize","_alg","_key","ipad","_ipad","opad","_opad","getBuiltIn","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","dh","sign","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","ITERATOR","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","V8_VERSION","SPECIES","METHOD_NAME","foo","CipherBase","modes","modeName","_des","toByteArray","fromByteArray","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","EDEState","k1","k2","k3","ciphers","_edeState","ZERO_BUF","checkParameters","subtle","toBrowser","sha1","checks","checkNative","algo","browser","importKey","deriveBits","prom","browserPbkdf2","password","salt","iterations","resolvePromise","promise","keylen","resp","decoders","pem","inner","outer","$sort","sort","comparefn","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterate","iterable","AS_ENTRIES","IS_ITERATOR","iterFn","step","boundFunction","stop","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_classCallCheck","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_require2","custom","copyBuffer","BufferList","head","tail","v","hasStrings","_getString","_getBuffer","nb","depth","customInspect","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","notARegExp","correctIsRegExpLogic","searchString","$reduceRight","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","unsafe","definePropertyModule","CONSTRUCTOR_NAME","util","_this2","aTypedArrayConstructor","$slice","list","asn1","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","tag","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","pub_key","DSAparam","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","kde","kdeparams","iters","parseInt","cipher","cipherText","signature","IS_PURE","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","search","version","userAgent","v8","$lastIndexOf","searchElement","ShortCurve","conf","tinv","two","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","BasePoint","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","l1","l2","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","c1","c2","p2","q1","q2","pointFromX","point","ax","rhs","_endoWnafMulAdd","points","coeffs","jacobianResult","npoints","ncoeffs","_getBeta","_wnafMulAdd","pointFromJSON","fromJSON","precomputed","endoMul","naf","doubles","JSON","parse","obj2point","dbl","nx","ny","ys1","dyinv","getX","getY","_hasDoubles","_fixedNafMul","_wnafMul","mulAdd","jmulAdd","_precompute","negate","toJ","jpoint","toP","zinv","zinv2","ay","pz2","z2","s1","s2","h2","h3","nz","mixedAdd","dblp","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","xc","redN","elliptic","rand","ec","eddsa","Readable","pipeline","encoders","encryptStart","Iterators","DEREncoder","entity","tree","DERNode","Node","encodeTag","primitive","cls","reporter","tagByName","tagClassByName","encode","_encode","_encodeComposite","content","encodedTag","_createEncoderBuffer","lenOctets","_encodeStr","unused","writeUInt16BE","_isNumstr","_isPrintstr","_encodeObjid","stringify","objid","_encodeTime","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_encodeNull","_encodeInt","numArray","_encodeBool","_use","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","objectKeys","Properties","parseBytes","cachedProperty","KeyPair","_secret","secret","isPoint","pub","_pub","_pubBytes","fromPublic","fromSecret","encodePoint","decodePoint","priv","lastIx","encodingLength","decodeInt","privBytes","verify","getSecret","getPublic","pubBytes","move","_move","for","modrn","postfix","_toArrayLikeLE","_toArrayLikeBE","isNegNum","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","writeUInt32BE","m1","$findIndex","findIndex","predicate","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isDate","isError","isFunction","isPrimitive","toOffset","arrayLike","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","other","ZEROES","fromArray","GHASH","cache","ghash","_multiply","lsbVi","Vi","Zi","abl","bl","$map","mapfn","seq","int","use","AlgorithmIdentifier","bitstr","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","getPrototypeOf","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","asyncIterator","createReadableStreamAsyncIterator","_Object$create","Reporter","DecoderBuffer","EncoderBuffer","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","unpad","padded","suite","config","thing","setAutoPadding","setTo","autoPadding","ReadableState","EventEmitter","EElistenerCount","emitter","listeners","debug","debugUtil","debuglog","StringDecoder","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","event","_events","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readable","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","clear","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","ondata","pause","dests","ev","addListener","removeAllListeners","wrap","method","_fromList","ERR_STREAM_PREMATURE_CLOSE","_len","noop","isRequest","setHeader","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","platform","arch","execPath","title","pid","binding","exit","kill","dlopen","uptime","memoryUsage","uvCounters","features","Signature","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","toBytes","toHex","toUpperCase","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","MATCH","regExpExec","nativeMatch","matcher","fullUnicode","matchStr","pna","readableDestroyed","writableDestroyed","emitErrorNT","defaultConstructor","emitCloseNT","emitErrorAndCloseNT","createMethod","IS_INCLUDES","$this","el","fromIndex","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","createProperty","argumentsLength","mapping","iteratorMethod","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","pad","lStart","rStart","keyL","keyR","expand","substitute","rip","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","_createForOfIteratorHelper","allowArrayLike","unsupportedIterableToArray","F","normalCompletion","didErr","_e2","_typeof","_arrayWithHoles","_iterableToArrayLimit","_i","_s","_arr","_n","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","generateChunks","matrix","col","row","transposedMatrix","column","getInsertStmt","tabName","colList","getCreateStatement","getAst","fixedSql","sqliteParser","getColumns","ast","columnDefinition","statement","format","definition","expression","variant","datatype","SQL","sqlModuleReady","sqlModule","_getDataSourcesFromSqlResult","sqlResult","dataSorces","Sql","createDb","ready","sqlResults","progressCounterId","progressCallback","rowCount","dbUtils","chunksAmount","insertStr","insertStmt","prepare","progress","export","sqlReady","build","processMsg","action","import","postMessage","onError","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","eh","fh","gh","hh","al","cl","dl","fl","gl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","argument","getBlock","encryptByte","byteParam","shiftIn","paddedMsg","publicExponent","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","nativeReplace","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","groups","replacerArgs","getSubstitution","tailPos","capture","objectDefinePropertyModule","regExpFlags","UNSUPPORTED_Y","MillerRabin","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","checkPrime","hex","rem","simpleSieve","fermatTest","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","bn","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","getPrivateKey","getGenerator","store","copyright","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","any","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","def","TBSCertificate","implicit","X509Certificate","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","n2","whitespaces","whitespace","ltrim","rtrim","TYPE","sha224","MD5","bitmap","allowHalfOpen","onEndNT","inL","inR","outL","outR","pc2table","sTable","sb","permuteTable","padSplit","$join","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","NATIVE_ARRAY_BUFFER","anInstance","toIndex","IEEE754","arrayFill","setToStringTag","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","conversion","NaN","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","DataView","save","restore","isEmpty","readUInt8","skip","_reporterState","raw","SqliteParserTransform","SingleNodeTransform","1","_parser","_tracer","_streaming","Tracer","isAsync","streaming","SyntaxError","smartError","2","sliceIterator","peg$subclass","child","peg$SyntaxError","expected","found","captureStackTrace","peg$DefaultTracer","indentLevel","peg$parse","peg$result","peg$FAILED","peg$startRuleIndices","start_streaming","peg$startRuleIndex","peg$consts","flattenAll","peg$otherExpectation","assign","foldStringKey","affinity","peg$classExpectation","keyNode","unescape","peg$literalExpectation","isOkay","foldStringWord","sfx","op","rest","composeBinary","recursive","isArrayOkay","elem","makeArray","ne","ln","nl","_ref","_ref2","auto","find","_ref3","_ref4","_ref5","_ref6","cd","me","wh","peg$anyExpectation","textNode","peg$bytecode","peg$decode","peg$currPos","peg$posDetailsCache","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$resultsCache","peg$ruleNames","peg$descNames","peg$tracer","tracer","startRule","inverted","peg$endExpectation","description","peg$computePosDetails","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$buildStructuredError","buildMessage","peg$parseRule","bc","ips","ends","trace","rule","cached","nextPos","substring","foldString","glue","folded","reduce","cur","nodeToString","quoteChar","_ref7","_ref8","operation","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","escapedParts","classEscape","describeExpectation","describeExpected","descriptions","describeFound","repeat","DefaultTracer","3","findLastIndex","takeWhile","events","indentation","whitespaceRule","statementRule","firstNodeRule","lastWsIndex","chain","chainDetail","firstNode","bestNode","deep","stmts","namedEvents","webpackPolyfill","children","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","getAuthTag","setAuthTag","setAAD","fin","$some","some","CONVERT_TO_STRING","second","codeAt","originalArray","MontCurve","i4","a24","precompute","aa","bb","diffAdd","da","jumlAdd","Algorithm","objectHas","sharedKey","wmget","wmhas","wmset","metadata","STATE","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonce","nonceEnc","pers","persEnc","_hmac","hmac","kmac","reseed","addEnc","generate","temp","incr32","checkCorrectnessOfIteration","inheritIfRequired","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","KEY","nativeMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","inspectSource","enforceInternalState","TEMPLATE","simple","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","TO_ENTRIES","EC","hashType","signType","ecSign","dsaSign","curveId","keyFromPrivate","toDER","bits2int","kv","getKey","makeKey","makeR","hlen","hbits","bits2octets","obits","Wrapper","NewTarget","NewTargetPrototype","Sha256","Sha224","_f","_g","_h","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","$fill","wrappedWellKnownSymbolModule","NAME","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","typedArrayFrom","setSpecies","getOwnPropertyDescriptorModule","nativeDefineProperty","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG","TypedArray","TypedArrayPrototype","isTypedArray","isArrayBuffer","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","setter","addElement","typedArrayOffset","$length","$len","safeBuffer","randombytes","kBufferMaxLength","kMaxLength","kMaxUint32","assertOffset","assertSize","actualFill","ourBuf","uint","zero2","Infinity","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","nBits","brorand","Rand","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","activeXDocument","html","documentCreateElement","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","parentWindow","NullProtoObjectViaIFrame","iframeDocument","JS","NullProtoObject","domain","MAX_ALLOC","isEncoding","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","ripemd","ripemd160","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","Sha1","rotl1","bignum","xorTest","calcIv","ck","_finID","toPad","ivBits","writeUIntBE","_ghash","_alen","_authTag","_called","rump","$includes","tags","overrided","reverseArgs","useDecoder","contains","_wrap","stateProps","cstate","prop","_useArgs","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_encodeChoice","_encodePrimitive","propertyKey","quot","attribute","PEMEncoder","label","functionToString","PADDING","equals","padBuff","writeUInt8","tagClass","0","SHA512","SHA384","DERDecoder","PEMDecoder","lines","base64","isLE","mLen","nBytes","eLen","isNaN","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","throwIfNotStringOrBuffer","prefix","HashBase","_block","_blockSize","_blockOffset","_finalized","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","keyFromPublic","SG","RplusAh","intFromLE","normed","xIsOdd","feature","detection","POLYFILL","NATIVE","aesModes","desModes","keyLen","ivLen","arg1","arg2","arg3","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","genFun","mark","__proto__","awrap","async","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ecVerify","dsaVerify","padNum","pubkey","unpacked","checkValue","montp","createHTML","forcedStringHTMLMethod","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","$copyWithin","returnMethod","Attributes","_inheritsLoose","subClass","superClass","createErrorType","getMessage","NodeError","_Base","oneOf","endsWith","this_len","actual","determiner","RE","pVersionMajor","IndexedObject","nativeJoin","ES3_STRINGS","ACCESSORS","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","shared","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","symbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","valueOf","INCORRECT_ITERATION","isPromise","registerPromiseWorker","postOutgoingMessage","messageId","ports","tryCatchFunc","handleIncomingMessage","finalResult","finalError","onIncomingMessage","payload","addEventListener","addToUnscopables","blind","getr","blinder","unblinder","blinds","blinded","prime1","prime2","qinv","coefficient","exponent1","m2","exponent2","$every","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","third","radix","maxCode","digits","NumberWrapper","rotr32","p32","ERR_MISSING_ARGS","destroyer","closed","popCallback","destroys","getWeakData","ArrayIterationModule","$has","internalStateGetterFor","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","hLen2","dblen","nonZero","publicKey","dotAll","readableHwm","readableHighWaterMark","defaultHwm","needMoreData","fromListPartial","copyFromBufferString","copyFromBuffer","increasedAwaitDrain","thrower","argument0","argument1","EVP_BytesToKey","keyBits","used","keyStart","ivStart","PrototypeOfArrayIteratorPrototype","arrayIterator","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","ARRAY16","zr","sl","sr","hr","rotl","fn1","fn2","fn3","fn4","fn5","readInt32LE","ar","br","cr","dr","tl","tr","writeUInt32LE","writeInt32LE","createWellKnownSymbol","withoutSetter","ieee754","typedArraySupport","TYPED_ARRAY_SUPPORT","createBuffer","fromArrayBuffer","fromString","fromObject","checked","fromArrayLike","isnan","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","MAX_ARGUMENTS_LENGTH","codePoints","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUInt16LE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","nativeKeys","FAILS_ON_PRIMITIVES","finalSize","_finalSize","accum","assigned","remainder","lowBits","highBits","algorithms","_hashType","_tag","_signType","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","_importDER","recoveryParam","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","backHalf","warned","deprecated","localStorage","Sha384","nh","keyPair","fromPrivate","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","canonical","sinv","_maxwellTrick","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","preventExtensions","_importPrivate","privEnc","_importPublic","pubEnc","compact","derive","sum32_3","Kh","Ah","Bh","Dh","Eh","T","rh","sh","PREFERRED_STRING","arrayBufferModule","isSurrogatePair","htonl","zero8","join32","SHARED","$reduce","EXISTS","middle","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","year","mon","day","hour","sec","UTC","_getDecoder","variable","namespace","$find","errors","ReporterError","rethrow","pathLen","inherited","partial","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","TAG","EE","_isStdio","didOnEnd","IS_RIGHT","memo","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","forceStringMethod","stringMethod","regexMethod","globalThis","asyncWrite","setImmediate","writableHwm","writableHighWaterMark","valid","ArrayIteratorMethods","ArrayValues","matchedSlash","sep","delimiter","hasRoot","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","shaFunc","rmd160Func","DK","block1","destPos","U","CORRECT_PROTOTYPE_GETTER","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","otherPub","ARRAY_ITERATOR","kind","Arguments","nativeLastIndexOf","NEGATIVE_ZERO","$indexOf","getNAF","getJSF","BaseCurve","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","_getDoubles","I","repr","nafW","nafPoints","_getNAFPoints","defW","wndWidth","comb","jsf","ja","jb","encodeCompressed","power","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","isPrototypeOf","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","ARRAY","exportTypedArrayStaticMethod","pending","pendingTotal","_delta8","_delta32","api","Entity","_createNamed","named","_initNamed","FREEZING","METADATA","setMetadata","objectID","weakData","fastKey","onFreeze","meta","minAssert","minUtils","d1","d2","m14","m24","m8","computer","i2ops","fnF","fnG","fnH","fnI","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","ReflectOwnKeys","Reflect","ReflectApply","ProcessEmitWarning","warning","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","existing","newListener","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","spliceOne","eventListener","errorListener","setMaxListeners","getMaxListeners","doError","handler","prependOnceListener","originalListener","rawListeners","eventNames","nativeSlice","deciphers","_rand","getBytes","getByte","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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CA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINW,IAAK,CACHriD,IAAK,EACL0hD,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEA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AA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,6CAA4DA,EAAW,6CAA2EA,EAAW,6CAA2EA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA+DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA+DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA+DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA+DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,+CAA8DA,EAAW,8CAA8DA,EAAW,8CAA8DA,EAAW,8CAA+DA,EAAW,8CAA8DA,EAAW,8CAA8D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","file":"js/_worker.5e0dd41a.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"4ef2\");\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\nvar Module=typeof Module!==\"undefined\"?Module:{};null;Module[\"onRuntimeInitialized\"]=function onRuntimeInitialized(){var apiTemp=stackAlloc(4);var cwrap=Module[\"cwrap\"];var NULL=0;var SQLITE_OK=0;var SQLITE_ROW=100;var SQLITE_DONE=101;var SQLITE_INTEGER=1;var SQLITE_FLOAT=2;var SQLITE_TEXT=3;var SQLITE_BLOB=4;var SQLITE_UTF8=1;var sqlite3_open=cwrap(\"sqlite3_open\",\"number\",[\"string\",\"number\"]);var sqlite3_close_v2=cwrap(\"sqlite3_close_v2\",\"number\",[\"number\"]);var sqlite3_exec=cwrap(\"sqlite3_exec\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\"]);var sqlite3_changes=cwrap(\"sqlite3_changes\",\"number\",[\"number\"]);var sqlite3_prepare_v2=cwrap(\"sqlite3_prepare_v2\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\"]);var sqlite3_sql=cwrap(\"sqlite3_sql\",\"string\",[\"number\"]);var sqlite3_normalized_sql=cwrap(\"sqlite3_normalized_sql\",\"string\",[\"number\"]);var sqlite3_prepare_v2_sqlptr=cwrap(\"sqlite3_prepare_v2\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_text=cwrap(\"sqlite3_bind_text\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_blob=cwrap(\"sqlite3_bind_blob\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_double=cwrap(\"sqlite3_bind_double\",\"number\",[\"number\",\"number\",\"number\"]);var sqlite3_bind_int=cwrap(\"sqlite3_bind_int\",\"number\",[\"number\",\"number\",\"number\"]);var sqlite3_bind_parameter_index=cwrap(\"sqlite3_bind_parameter_index\",\"number\",[\"number\",\"string\"]);var sqlite3_step=cwrap(\"sqlite3_step\",\"number\",[\"number\"]);var sqlite3_errmsg=cwrap(\"sqlite3_errmsg\",\"string\",[\"number\"]);var sqlite3_column_count=cwrap(\"sqlite3_column_count\",\"number\",[\"number\"]);var sqlite3_data_count=cwrap(\"sqlite3_data_count\",\"number\",[\"number\"]);var sqlite3_column_double=cwrap(\"sqlite3_column_double\",\"number\",[\"number\",\"number\"]);var sqlite3_column_text=cwrap(\"sqlite3_column_text\",\"string\",[\"number\",\"number\"]);var sqlite3_column_blob=cwrap(\"sqlite3_column_blob\",\"number\",[\"number\",\"number\"]);var sqlite3_column_bytes=cwrap(\"sqlite3_column_bytes\",\"number\",[\"number\",\"number\"]);var sqlite3_column_type=cwrap(\"sqlite3_column_type\",\"number\",[\"number\",\"number\"]);var sqlite3_column_name=cwrap(\"sqlite3_column_name\",\"string\",[\"number\",\"number\"]);var sqlite3_reset=cwrap(\"sqlite3_reset\",\"number\",[\"number\"]);var sqlite3_clear_bindings=cwrap(\"sqlite3_clear_bindings\",\"number\",[\"number\"]);var sqlite3_finalize=cwrap(\"sqlite3_finalize\",\"number\",[\"number\"]);var sqlite3_create_function_v2=cwrap(\"sqlite3_create_function_v2\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_value_type=cwrap(\"sqlite3_value_type\",\"number\",[\"number\"]);var sqlite3_value_bytes=cwrap(\"sqlite3_value_bytes\",\"number\",[\"number\"]);var sqlite3_value_text=cwrap(\"sqlite3_value_text\",\"string\",[\"number\"]);var sqlite3_value_blob=cwrap(\"sqlite3_value_blob\",\"number\",[\"number\"]);var sqlite3_value_double=cwrap(\"sqlite3_value_double\",\"number\",[\"number\"]);var sqlite3_result_double=cwrap(\"sqlite3_result_double\",\"\",[\"number\",\"number\"]);var sqlite3_result_null=cwrap(\"sqlite3_result_null\",\"\",[\"number\"]);var sqlite3_result_text=cwrap(\"sqlite3_result_text\",\"\",[\"number\",\"string\",\"number\",\"number\"]);var sqlite3_result_blob=cwrap(\"sqlite3_result_blob\",\"\",[\"number\",\"number\",\"number\",\"number\"]);var sqlite3_result_int=cwrap(\"sqlite3_result_int\",\"\",[\"number\",\"number\"]);var sqlite3_result_error=cwrap(\"sqlite3_result_error\",\"\",[\"number\",\"string\",\"number\"]);var registerExtensionFunctions=cwrap(\"RegisterExtensionFunctions\",\"number\",[\"number\"]);function Statement(stmt1,db){this.stmt=stmt1;this.db=db;this.pos=1;this.allocatedmem=[]}Statement.prototype[\"bind\"]=function bind(values){if(!this.stmt){throw\"Statement closed\"}this[\"reset\"]();if(Array.isArray(values))return this.bindFromArray(values);if(values!=null&&typeof values===\"object\"){return this.bindFromObject(values)}return true};Statement.prototype[\"step\"]=function step(){if(!this.stmt){throw\"Statement closed\"}this.pos=1;var ret=sqlite3_step(this.stmt);switch(ret){case SQLITE_ROW:return true;case SQLITE_DONE:return false;default:throw this.db.handleError(ret)}};Statement.prototype.getNumber=function getNumber(pos){if(pos==null){pos=this.pos;this.pos+=1}return sqlite3_column_double(this.stmt,pos)};Statement.prototype.getString=function getString(pos){if(pos==null){pos=this.pos;this.pos+=1}return sqlite3_column_text(this.stmt,pos)};Statement.prototype.getBlob=function getBlob(pos){if(pos==null){pos=this.pos;this.pos+=1}var size=sqlite3_column_bytes(this.stmt,pos);var ptr=sqlite3_column_blob(this.stmt,pos);var result=new Uint8Array(size);for(var i=0;i>>0);if(data!=null){FS.createDataFile(\"/\",this.filename,data,true,true)}this.handleError(sqlite3_open(this.filename,apiTemp));this.db=getValue(apiTemp,\"i32\");registerExtensionFunctions(this.db);this.statements={};this.functions={}}Database.prototype[\"run\"]=function run(sql,params){if(!this.db){throw\"Database closed\"}if(params){var stmt=this[\"prepare\"](sql,params);try{stmt[\"step\"]()}finally{stmt[\"free\"]()}}else{this.handleError(sqlite3_exec(this.db,sql,0,0,apiTemp))}return this};Database.prototype[\"exec\"]=function exec(sql,params){if(!this.db){throw\"Database closed\"}var stack=stackSave();var stmt=null;try{var nextSqlPtr=allocateUTF8OnStack(sql);var pzTail=stackAlloc(4);var results=[];while(getValue(nextSqlPtr,\"i8\")!==NULL){setValue(apiTemp,0,\"i32\");setValue(pzTail,0,\"i32\");this.handleError(sqlite3_prepare_v2_sqlptr(this.db,nextSqlPtr,-1,apiTemp,pzTail));var pStmt=getValue(apiTemp,\"i32\");nextSqlPtr=getValue(pzTail,\"i32\");if(pStmt!==NULL){var curresult=null;stmt=new Statement(pStmt,this);if(params!=null){stmt.bind(params)}while(stmt[\"step\"]()){if(curresult===null){curresult={columns:stmt[\"getColumnNames\"](),values:[]};results.push(curresult)}curresult[\"values\"].push(stmt[\"get\"]())}stmt[\"free\"]()}}return results}catch(errCaught){if(stmt)stmt[\"free\"]();throw errCaught}finally{stackRestore(stack)}};Database.prototype[\"each\"]=function each(sql,params,callback,done){var stmt;if(typeof params===\"function\"){done=callback;callback=params;params=undefined}stmt=this[\"prepare\"](sql,params);try{while(stmt[\"step\"]()){callback(stmt[\"getAsObject\"]())}}finally{stmt[\"free\"]()}if(typeof done===\"function\"){return done()}return undefined};Database.prototype[\"prepare\"]=function prepare(sql,params){setValue(apiTemp,0,\"i32\");this.handleError(sqlite3_prepare_v2(this.db,sql,-1,apiTemp,NULL));var pStmt=getValue(apiTemp,\"i32\");if(pStmt===NULL){throw\"Nothing to prepare\"}var stmt=new Statement(pStmt,this);if(params!=null){stmt.bind(params)}this.statements[pStmt]=stmt;return stmt};Database.prototype[\"iterateStatements\"]=function iterateStatements(sql){return new StatementIterator(sql,this)};Database.prototype[\"export\"]=function exportDatabase(){Object.values(this.statements).forEach(function each(stmt){stmt[\"free\"]()});Object.values(this.functions).forEach(removeFunction);this.functions={};this.handleError(sqlite3_close_v2(this.db));var binaryDb=FS.readFile(this.filename,{encoding:\"binary\"});this.handleError(sqlite3_open(this.filename,apiTemp));this.db=getValue(apiTemp,\"i32\");return binaryDb};Database.prototype[\"close\"]=function close(){if(this.db===null){return}Object.values(this.statements).forEach(function each(stmt){stmt[\"free\"]()});Object.values(this.functions).forEach(removeFunction);this.functions={};this.handleError(sqlite3_close_v2(this.db));FS.unlink(\"/\"+this.filename);this.db=null};Database.prototype[\"handleError\"]=function handleError(returnCode){var errmsg;if(returnCode===SQLITE_OK){return null}errmsg=sqlite3_errmsg(this.db);throw new Error(errmsg)};Database.prototype[\"getRowsModified\"]=function getRowsModified(){return sqlite3_changes(this.db)};Database.prototype[\"create_function\"]=function create_function(name,func){function wrapped_func(cx,argc,argv){var result;function extract_blob(ptr){var size=sqlite3_value_bytes(ptr);var blob_ptr=sqlite3_value_blob(ptr);var blob_arg=new Uint8Array(size);for(var j=0;j1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);if(typeof module!==\"undefined\"){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}function getValue(ptr,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":return HEAP8[ptr>>0];case\"i8\":return HEAP8[ptr>>0];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":return HEAP32[ptr>>2];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];default:abort(\"invalid type for getValue: \"+type)}return null}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"sql-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"L\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"Da\"];addOnInit(Module[\"asm\"][\"M\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return\"(no stack trace available)\"}}return error.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function _tzset(){if(_tzset.called)return;_tzset.called=true;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[__get_timezone()>>2]=stdTimezoneOffset*60;HEAP32[__get_daylight()>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function ___localtime_r(a0,a1){return _localtime_r(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};function getRandomDevice(){if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!==\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=path.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,65536);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{\"r\":0,\"r+\":2,\"w\":577,\"w+\":578,\"a\":1089,\"a+\":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate===\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);if(typeof Uint8Array!=\"undefined\")xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]===\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]===\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!==\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_access(path,amode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chown32(path,owner,group){try{path=SYSCALLS.getStr(path);FS.chown(path,owner,group);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ftruncate64(fd,zero,low,high){try{var length=SYSCALLS.get64(low,high);FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!==\"undefined\"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function setFileTime(path,time){path=UTF8ToString(path);try{FS.utime(path,time,time);return 0}catch(e){if(!(e instanceof FS.ErrnoError))throw e+\" : \"+stackTrace();setErrNo(e.errno);return-1}}function _utimes(path,times){var time;if(times){var mtime=times+8;time=HEAP32[mtime>>2]*1e3;time+=HEAP32[mtime+4>>2]/1e3}else{time=Date.now()}return setFileTime(path,time)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"a\":___assert_fail,\"r\":___localtime_r,\"E\":___sys_access,\"g\":___sys_chmod,\"x\":___sys_chown32,\"h\":___sys_fchmod,\"y\":___sys_fchown32,\"b\":___sys_fcntl64,\"i\":___sys_fstat64,\"D\":___sys_ftruncate64,\"B\":___sys_getcwd,\"w\":___sys_geteuid32,\"d\":___sys_getpid,\"j\":___sys_lstat64,\"I\":___sys_mkdir,\"F\":___sys_mmap2,\"G\":___sys_munmap,\"H\":___sys_open,\"z\":___sys_readlink,\"t\":___sys_rmdir,\"e\":___sys_stat64,\"v\":___sys_unlink,\"k\":_emscripten_get_heap_max,\"m\":_emscripten_memcpy_big,\"c\":_emscripten_resize_heap,\"q\":_emscripten_thread_sleep,\"o\":_environ_get,\"p\":_environ_sizes_get,\"f\":_fd_close,\"n\":_fd_fdstat_get,\"s\":_fd_read,\"l\":_fd_seek,\"C\":_fd_sync,\"u\":_fd_write,\"J\":_gettimeofday,\"K\":_time,\"A\":_utimes};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _memset=Module[\"_memset\"]=function(){return(_memset=Module[\"_memset\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _sqlite3_free=Module[\"_sqlite3_free\"]=function(){return(_sqlite3_free=Module[\"_sqlite3_free\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _sqlite3_step=Module[\"_sqlite3_step\"]=function(){return(_sqlite3_step=Module[\"_sqlite3_step\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _sqlite3_finalize=Module[\"_sqlite3_finalize\"]=function(){return(_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=function(){return(_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _sqlite3_reset=Module[\"_sqlite3_reset\"]=function(){return(_sqlite3_reset=Module[\"_sqlite3_reset\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=function(){return(_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=function(){return(_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _sqlite3_value_text=Module[\"_sqlite3_value_text\"]=function(){return(_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=function(){return(_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _sqlite3_value_double=Module[\"_sqlite3_value_double\"]=function(){return(_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _sqlite3_value_int=Module[\"_sqlite3_value_int\"]=function(){return(_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _sqlite3_value_type=Module[\"_sqlite3_value_type\"]=function(){return(_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=function(){return(_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _sqlite3_result_double=Module[\"_sqlite3_result_double\"]=function(){return(_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _sqlite3_result_error=Module[\"_sqlite3_result_error\"]=function(){return(_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _sqlite3_result_int=Module[\"_sqlite3_result_int\"]=function(){return(_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=function(){return(_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _sqlite3_result_null=Module[\"_sqlite3_result_null\"]=function(){return(_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _sqlite3_result_text=Module[\"_sqlite3_result_text\"]=function(){return(_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _sqlite3_column_count=Module[\"_sqlite3_column_count\"]=function(){return(_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _sqlite3_data_count=Module[\"_sqlite3_data_count\"]=function(){return(_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=function(){return(_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=function(){return(_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _sqlite3_column_double=Module[\"_sqlite3_column_double\"]=function(){return(_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _sqlite3_column_text=Module[\"_sqlite3_column_text\"]=function(){return(_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _sqlite3_column_type=Module[\"_sqlite3_column_type\"]=function(){return(_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _sqlite3_column_name=Module[\"_sqlite3_column_name\"]=function(){return(_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=function(){return(_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=function(){return(_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=function(){return(_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=function(){return(_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=function(){return(_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _sqlite3_sql=Module[\"_sqlite3_sql\"]=function(){return(_sqlite3_sql=Module[\"_sqlite3_sql\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _sqlite3_normalized_sql=Module[\"_sqlite3_normalized_sql\"]=function(){return(_sqlite3_normalized_sql=Module[\"_sqlite3_normalized_sql\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=function(){return(_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _sqlite3_exec=Module[\"_sqlite3_exec\"]=function(){return(_sqlite3_exec=Module[\"_sqlite3_exec\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _sqlite3_changes=Module[\"_sqlite3_changes\"]=function(){return(_sqlite3_changes=Module[\"_sqlite3_changes\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=function(){return(_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=function(){return(_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _sqlite3_open=Module[\"_sqlite3_open\"]=function(){return(_sqlite3_open=Module[\"_sqlite3_open\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=function(){return(_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var __get_tzname=Module[\"__get_tzname\"]=function(){return(__get_tzname=Module[\"__get_tzname\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __get_daylight=Module[\"__get_daylight\"]=function(){return(__get_daylight=Module[\"__get_daylight\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var __get_timezone=Module[\"__get_timezone\"]=function(){return(__get_timezone=Module[\"__get_timezone\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stackSave\"]=stackSave;Module[\"stackRestore\"]=stackRestore;Module[\"stackAlloc\"]=stackAlloc;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n // The shell-pre.js and emcc-generated code goes above\n return Module;\n }); // The end of the promise being returned\n\n return initSqlJsPromise;\n} // The end of our initSqlJs function\n\n// This bit below is copied almost exactly from what you get when you use the MODULARIZE=1 flag with emcc\n// However, we don't want to use the emcc modularization. See shell-pre.js\nif (typeof exports === 'object' && typeof module === 'object'){\n module.exports = initSqlJs;\n // This will allow the module to be used in ES6 or CommonJS\n module.exports.default = initSqlJs;\n}\nelse if (typeof define === 'function' && define['amd']) {\n define([], function() { return initSqlJs; });\n}\nelse if (typeof exports === 'object'){\n exports[\"Module\"] = initSqlJs;\n}\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","module.exports = require('./browser/algorithms.json')\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (var i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (var i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","module.exports = {};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'\n ]\n ]\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'\n ]\n ]\n }\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = require('events').EventEmitter;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = new Buffer(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","import initSqlJs from 'sql.js/dist/sql-wasm.js'\nimport dbUtils from './_statements'\n\nlet SQL = null\nconst sqlModuleReady = initSqlJs().then(sqlModule => { SQL = sqlModule })\n\nfunction _getDataSourcesFromSqlResult (sqlResult) {\n if (!sqlResult) {\n return {}\n }\n const dataSorces = {}\n sqlResult.columns.forEach((column, index) => {\n dataSorces[column] = sqlResult.values.map(row => row[index])\n })\n return dataSorces\n}\n\nexport default class Sql {\n constructor () {\n this.db = null\n }\n\n static build () {\n return sqlModuleReady\n .then(() => {\n return new Sql()\n })\n }\n\n createDb (buffer) {\n if (this.db != null) this.db.close()\n this.db = new SQL.Database(buffer)\n return this.db\n }\n\n open (buffer) {\n this.createDb(buffer && new Uint8Array(buffer))\n return {\n ready: true\n }\n }\n\n exec (sql, params) {\n if (this.db === null) {\n this.createDb()\n }\n if (!sql) {\n throw new Error('exec: Missing query string')\n }\n const sqlResults = this.db.exec(sql, params)\n return sqlResults.map(result => _getDataSourcesFromSqlResult(result))\n }\n\n import (tabName, data, progressCounterId, progressCallback, chunkSize = 1500) {\n if (this.db === null) {\n this.createDb()\n }\n const columns = Object.keys(data)\n const rowCount = data[columns[0]].length\n this.db.exec(dbUtils.getCreateStatement(tabName, data))\n const chunks = dbUtils.generateChunks(data, chunkSize)\n const chunksAmount = Math.ceil(rowCount / chunkSize)\n let count = 0\n const insertStr = dbUtils.getInsertStmt(tabName, columns)\n const insertStmt = this.db.prepare(insertStr)\n\n progressCallback({ progress: 0, id: progressCounterId })\n for (const chunk of chunks) {\n this.db.exec('BEGIN')\n for (const row of chunk) {\n insertStmt.run(row)\n }\n this.db.exec('COMMIT')\n count++\n progressCallback({ progress: 100 * (count / chunksAmount), id: progressCounterId })\n }\n\n return {\n finish: true\n }\n }\n\n export () {\n return this.db.export()\n }\n\n close () {\n if (this.db) {\n this.db.close()\n }\n return {\n finished: true\n }\n }\n}\n","import registerPromiseWorker from 'promise-worker/register'\nimport Sql from './_sql'\n\nconst sqlReady = Sql.build()\n\nfunction processMsg (sql) {\n const data = this\n switch (data && data.action) {\n case 'open':\n return sql.open(data.buffer)\n case 'reopen':\n return sql.open(sql.export())\n case 'exec':\n return sql.exec(data.sql, data.params)\n case 'import':\n return sql.import(\n data.tabName,\n data.data,\n data.progressCounterId,\n postMessage\n )\n case 'export':\n return sql.export()\n case 'close':\n return sql.close()\n default:\n throw new Error('Invalid action : ' + (data && data.action))\n }\n}\n\nfunction onError (error) {\n return {\n error: error.message\n }\n}\n\nregisterPromiseWorker(data => {\n return sqlReady\n .then(processMsg.bind(data))\n .catch(onError)\n})\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","module.exports = require('events').EventEmitter;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","/*!\n * sqlite-parser - v1.0.1\n * @copyright 2015-2017 Code School (http://codeschool.com)\n * @author Nick Wronski \n */\n(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.sqliteParser = 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;o0){for(i=1,j=1;i0;},function(d,e){return{'args':Object.assign(e,d)};},function(s){return{'filter':keyNode(s)};},peg$otherExpectation(\"Error Message\"),function(m){return m;},peg$otherExpectation(\"Statement\"),function(m,s){return Object.assign(s,m);},peg$otherExpectation(\"QUERY PLAN\"),function(e,q){return{'explain':isOkay(e)};},peg$otherExpectation(\"QUERY PLAN Keyword\"),function(q,p){return foldStringKey([q,p]);},peg$otherExpectation(\"END Transaction Statement\"),function(s,t){return{'type':'statement','variant':'transaction','action':'commit'};},peg$otherExpectation(\"BEGIN Transaction Statement\"),function(s,m,t,n){return Object.assign({'type':'statement','variant':'transaction','action':'begin'},m,n);},function(t){return t;},function(m){return{'defer':keyNode(m)};},peg$otherExpectation(\"ROLLBACK Statement\"),function(s,n){return Object.assign({'type':'statement','variant':'transaction','action':'rollback'},n);},peg$otherExpectation(\"TO Clause\"),function(n){return{'savepoint':n};},function(s){return keyNode(s);},peg$otherExpectation(\"SAVEPOINT Statement\"),function(s,n){return{'type':'statement','variant':s,'target':n};},peg$otherExpectation(\"RELEASE Statement\"),function(s,a,n){return{'type':'statement','variant':keyNode(s),'target':n};},peg$otherExpectation(\"ALTER TABLE Statement\"),function(s,n,e){return Object.assign({'type':'statement','variant':keyNode(s),'target':n},e);},peg$otherExpectation(\"ALTER TABLE Keyword\"),function(a,t){return foldStringKey([a,t]);},peg$otherExpectation(\"RENAME TO Keyword\"),function(s,n){return{'action':keyNode(s),'name':n};},peg$otherExpectation(\"ADD COLUMN Keyword\"),function(s,d){return{'action':keyNode(s),'definition':d};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"WITH Clause\"),function(s,v,t){var recursive={'variant':isOkay(v)?'recursive':'common'};if(isArrayOkay(t)){t=t.map(function(elem){return Object.assign(elem,recursive);});}return{'with':t};},function(f,r){return flattenAll([f,r]);},peg$otherExpectation(\"Common Table Expression\"),function(t,s){return Object.assign({'type':'expression','format':'table','variant':'common','target':t},s);},function(s){return{'expression':s};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"ATTACH Statement\"),function(a,b,e,n){return{'type':'statement','variant':keyNode(a),'target':n,'attach':e};},peg$otherExpectation(\"DETACH Statement\"),function(d,b,n){return{'type':'statement','variant':keyNode(d),'target':n};},peg$otherExpectation(\"VACUUM Statement\"),function(v,t){return Object.assign({'type':'statement','variant':'vacuum'},t);},function(t){return{'target':t};},peg$otherExpectation(\"ANALYZE Statement\"),function(s,a){return Object.assign({'type':'statement','variant':keyNode(s)},a);},function(n){return{'target':n['name']};},peg$otherExpectation(\"REINDEX Statement\"),function(a){return{'target':a['name']};},peg$otherExpectation(\"PRAGMA Statement\"),function(s,n,v){return{'type':'statement','variant':keyNode(s),'target':n,'args':{'type':'expression','variant':'list','expression':v}};},function(v){return v;},function(v){return /^(yes|no|on|off|false|true|0|1)$/i.test(v);},function(v){return{'type':'literal','variant':'boolean','normalized':/^(yes|on|true|1)$/i.test(v)?'1':'0','value':v};},function(n){return keyNode(n);},function(n){return{'type':'identifier','variant':'name','name':n};},peg$otherExpectation(\"SELECT Statement\"),function(s,o,l){return Object.assign(s,o,l);},peg$otherExpectation(\"ORDER BY Clause\"),function(d){return{'order':d['result']};},peg$otherExpectation(\"LIMIT Clause\"),function(s,e,d){return{'limit':Object.assign({'type':'expression','variant':'limit','start':e},d)};},peg$otherExpectation(\"OFFSET Clause\"),function(o,e){return{'offset':e};},function(s,u){if(isArrayOkay(u)){return{'type':'statement','variant':'compound','statement':s,'compound':u};}else{return s;}},peg$otherExpectation(\"Union Operation\"),function(c,s){return{'type':'compound','variant':c,'statement':s};},function(s,f,w,g){return Object.assign({'type':'statement','variant':'select'},s,f,w,g);},peg$otherExpectation(\"SELECT Results Clause\"),function(d,t){return Object.assign({'result':t},d);},peg$otherExpectation(\"SELECT Results Modifier\"),function(s){return{'distinct':true};},function(s){return{};},peg$otherExpectation(\"FROM Clause\"),function(f,s){return{'from':s};},peg$otherExpectation(\"WHERE Clause\"),function(f,e){return{'where':makeArray(e)};},peg$otherExpectation(\"GROUP BY Clause\"),function(f,e,h){return Object.assign({'group':e},h);},peg$otherExpectation(\"HAVING Clause\"),function(f,e){return{'having':e};},function(q,s){return{'type':'identifier','variant':'star','name':foldStringWord([q,s])};},function(n,s){return foldStringWord([n,s]);},function(e,a){return Object.assign(e,a);},function(f,t){if(isArrayOkay(t)){return{'type':'map','variant':'join','source':f,'map':t};}return f;},function(cl,c){return Object.assign(cl,c);},peg$otherExpectation(\"CROSS JOIN Operation\"),function(n){return{'type':'join','variant':'cross join','source':n};},peg$otherExpectation(\"JOIN Operation\"),function(o,n){return{'type':'join','variant':keyNode(o),'source':n};},function(n,l,a){return Object.assign({'type':'function','variant':'table','name':n,'args':l},a);},peg$otherExpectation(\"Qualified Table\"),function(d,i){return Object.assign(d,i);},peg$otherExpectation(\"Qualified Table Identifier\"),function(n,a){return Object.assign(n,a);},peg$otherExpectation(\"Qualfied Table Index\"),function(s,n){return{'index':n};},function(n,i){return{'index':foldStringKey([n,i])};},peg$otherExpectation(\"SELECT Source\"),function(l,a){return Object.assign(l,a);},peg$otherExpectation(\"Subquery\"),function(s,a){return Object.assign(s,a);},peg$otherExpectation(\"Alias\"),function(a,n){return{'alias':n};},peg$otherExpectation(\"JOIN Operator\"),function(n,t,j){return foldStringKey([n,t,j]);},function(t,o){return foldStringKey([t,o]);},function(t){return keyNode(t);},peg$otherExpectation(\"JOIN Constraint\"),function(c){return{'constraint':Object.assign({'type':'constraint','variant':'join'},c)};},peg$otherExpectation(\"Join ON Clause\"),function(s,e){return{'format':keyNode(s),'on':e};},peg$otherExpectation(\"Join USING Clause\"),function(s,e){return{'format':keyNode(s),'using':e};},peg$otherExpectation(\"VALUES Clause\"),function(s,l){return{'type':'statement','variant':'select','result':l};},function(f,b){return{'result':flattenAll([f,b])};},function(i){return i;},peg$otherExpectation(\"Ordering Expression\"),function(e,d){if(isOkay(d)){return Object.assign({'type':'expression','variant':'order','expression':e},d);}return e;},peg$otherExpectation(\"Star\"),peg$otherExpectation(\"Fallback Type\"),peg$otherExpectation(\"INSERT Statement\"),function(k,t){return Object.assign({'type':'statement','variant':'insert'},k,t);},peg$otherExpectation(\"INSERT Keyword\"),function(a,m){return Object.assign({'action':keyNode(a)},m);},peg$otherExpectation(\"REPLACE Keyword\"),function(a){return{'action':keyNode(a)};},peg$otherExpectation(\"INSERT OR Modifier\"),function(s,m){return{'or':keyNode(m)};},function(i,r){return Object.assign({'into':i},r);},peg$otherExpectation(\"INTO Clause\"),function(s,t){return t;},peg$otherExpectation(\"INTO Keyword\"),function(r){return{'result':r};},peg$otherExpectation(\"Column List\"),function(f,b){return{'columns':flattenAll([f,b])};},function(c){return c;},peg$otherExpectation(\"Column Name\"),function(n){return{'type':'identifier','variant':'column','name':n};},function(s,r){return r;},peg$otherExpectation(\"VALUES Keyword\"),function(f,b){return flattenAll([f,b]);},peg$otherExpectation(\"Wrapped Expression List\"),function(e){return e;},peg$otherExpectation(\"DEFAULT VALUES Clause\"),function(d,v){return{'type':'values','variant':'default'};},peg$otherExpectation(\"Compound Operator\"),peg$otherExpectation(\"UNION Operator\"),function(s,a){return foldStringKey([s,a]);},function(a){return a;},peg$otherExpectation(\"UPDATE Statement\"),function(s,f,t,u,w,o,l){return Object.assign({'type':'statement','variant':s,'into':t},f,u,w,o,l);},peg$otherExpectation(\"UPDATE Keyword\"),peg$otherExpectation(\"UPDATE OR Modifier\"),function(t){return{'or':keyNode(t)};},peg$otherExpectation(\"SET Clause\"),function(c){return{'set':c};},peg$otherExpectation(\"Column Assignment\"),function(f,e){return{'type':'assignment','target':f,'value':e};},peg$otherExpectation(\"DELETE Statement\"),function(s,t,w,o,l){return Object.assign({'type':'statement','variant':s,'from':t},w,o,l);},peg$otherExpectation(\"DELETE Keyword\"),peg$otherExpectation(\"CREATE Statement\"),peg$otherExpectation(\"CREATE TABLE Statement\"),function(s,ne,id,r){return Object.assign({'type':'statement','name':id},s,r,ne);},function(s,tmp,t){return Object.assign({'variant':s,'format':keyNode(t)},tmp);},function(t){return{'temporary':isOkay(t)};},peg$otherExpectation(\"IF NOT EXISTS Modifier\"),function(i,n,e){return{'condition':makeArray({'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':foldStringKey([n,e])}})};},peg$otherExpectation(\"Table Definition\"),function(s,t,r){return Object.assign({'definition':flattenAll([s,t])},r);},function(r,w){return{'optimization':[{'type':'optimization','value':foldStringKey([r,w])}]};},function(f){return f;},peg$otherExpectation(\"Column Definition\"),function(n,t,c){return Object.assign({'type':'definition','variant':'column','name':n,'definition':isOkay(c)?c:[]},t);},peg$otherExpectation(\"Column Datatype\"),function(t){return{'datatype':t};},peg$otherExpectation(\"Column Constraint\"),function(n,c,ln){return Object.assign(c,n);},function(cl){return cl[cl.length-1];},peg$otherExpectation(\"CONSTRAINT Name\"),function(n){return{'name':n};},peg$otherExpectation(\"FOREIGN KEY Column Constraint\"),function(f){return Object.assign({'variant':'foreign key'},f);},peg$otherExpectation(\"PRIMARY KEY Column Constraint\"),function(p,d,c,a){return Object.assign(p,c,d,a);},peg$otherExpectation(\"PRIMARY KEY Keyword\"),function(s,k){return{'type':'constraint','variant':foldStringKey([s,k])};},peg$otherExpectation(\"AUTOINCREMENT Keyword\"),function(a){return{'autoIncrement':true};},function(s,c){return Object.assign({'type':'constraint','variant':s},c);},peg$otherExpectation(\"UNIQUE Column Constraint\"),peg$otherExpectation(\"NULL Column Constraint\"),function(n,l){return foldStringKey([n,l]);},peg$otherExpectation(\"CHECK Column Constraint\"),peg$otherExpectation(\"DEFAULT Column Constraint\"),function(s,v){return{'type':'constraint','variant':keyNode(s),'value':v};},peg$otherExpectation(\"COLLATE Column Constraint\"),function(c){return{'type':'constraint','variant':'collate','collate':c};},peg$otherExpectation(\"Table Constraint\"),function(n,c,nl){return Object.assign({'type':'definition','variant':'constraint'},c,n);},peg$otherExpectation(\"CHECK Table Constraint\"),function(c){return{'definition':makeArray(c)};},peg$otherExpectation(\"PRIMARY KEY Table Constraint\"),function(k,c,t){return{'definition':makeArray(Object.assign(k,t,c[1])),'columns':c[0]};},function(s){return{'type':'constraint','variant':keyNode(s)};},function(p,k){return foldStringKey([p,k]);},peg$otherExpectation(\"UNIQUE Keyword\"),function(u){return keyNode(u);},function(f,b){return[f].concat(b);},function(c){return c.map(function(_ref){var _ref2=_slicedToArray(_ref,1);var res=_ref2[0];return res;});},function(c){var auto=c.find(function(_ref3){var _ref4=_slicedToArray(_ref3,2);var res=_ref4[0];var a=_ref4[1];return isOkay(a);});return[c.map(function(_ref5){var _ref6=_slicedToArray(_ref5,2);var res=_ref6[0];var a=_ref6[1];return res;}),auto?auto[1]:null];},peg$otherExpectation(\"Indexed Column\"),function(e,d,a){var res=e;if(isOkay(d)){res=Object.assign({'type':'expression','variant':'order','expression':e},d);}return[res,a];},peg$otherExpectation(\"Collation\"),function(c){return{'collate':makeArray(c)};},peg$otherExpectation(\"Column Direction\"),function(t){return{'direction':keyNode(t)};},function(s,t){return{'conflict':keyNode(t)};},peg$otherExpectation(\"ON CONFLICT Keyword\"),function(o,c){return foldStringKey([o,c]);},function(k,c){return{'type':'constraint','variant':keyNode(k),'expression':c};},peg$otherExpectation(\"FOREIGN KEY Table Constraint\"),function(k,l,c){return Object.assign({'definition':makeArray(Object.assign(k,c))},l);},peg$otherExpectation(\"FOREIGN KEY Keyword\"),function(f,k){return{'type':'constraint','variant':foldStringKey([f,k])};},function(r,a,d){return Object.assign({'type':'constraint'},r,a,d);},peg$otherExpectation(\"REFERENCES Clause\"),function(s,t){return{'references':t};},function(f,b){return{'action':flattenAll([f,b])};},peg$otherExpectation(\"FOREIGN KEY Action Clause\"),function(m,a,n){return{'type':'action','variant':keyNode(m),'action':keyNode(n)};},peg$otherExpectation(\"FOREIGN KEY Action\"),function(s,v){return foldStringKey([s,v]);},function(c){return keyNode(c);},function(n,a){return foldStringKey([n,a]);},function(m,n){return{'type':'action','variant':keyNode(m),'action':n};},peg$otherExpectation(\"DEFERRABLE Clause\"),function(n,d,i){return{'defer':foldStringKey([n,d,i])};},function(i,d){return foldStringKey([i,d]);},function(s){return{'definition':makeArray(s)};},peg$otherExpectation(\"CREATE INDEX Statement\"),function(s,ne,n,o,w){return Object.assign({'type':'statement','target':n,'on':o},s,ne,w);},function(s,u,i){return Object.assign({'variant':keyNode(s),'format':keyNode(i)},u);},function(u){return{'unique':true};},peg$otherExpectation(\"ON Clause\"),function(o,t,c){return{'type':'identifier','variant':'expression','format':'table','name':t['name'],'columns':c};},peg$otherExpectation(\"CREATE TRIGGER Statement\"),function(s,ne,n,cd,o,me,wh,a){return Object.assign({'type':'statement','target':n,'on':o,'event':cd,'by':isOkay(me)?me:'row','action':makeArray(a)},s,ne,wh);},function(s,tmp,t){return Object.assign({'variant':keyNode(s),'format':keyNode(t)},tmp);},peg$otherExpectation(\"Conditional Clause\"),function(m,d){return Object.assign({'type':'event'},m,d);},function(m){return{'occurs':keyNode(m)};},function(i,o){return foldStringKey([i,o]);},peg$otherExpectation(\"Conditional Action\"),function(o){return{'event':keyNode(o)};},function(s,f){return{'event':keyNode(s),'of':f};},function(s,c){return c;},\"statement\",peg$literalExpectation(\"STATEMENT\",true),function(f,e,r){return keyNode(r);},function(w,e){return{'when':e};},peg$otherExpectation(\"Actions Clause\"),function(s,a,e){return a;},function(l){return l;},peg$otherExpectation(\"CREATE VIEW Statement\"),function(s,ne,n,r){return Object.assign({'type':'statement','target':n,'result':r},s,ne);},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'view','name':n['name'],'columns':[]},a);},function(s,tmp,v){return Object.assign({'variant':keyNode(s),'format':keyNode(v)},tmp);},peg$otherExpectation(\"CREATE VIRTUAL TABLE Statement\"),function(s,ne,n,m){return Object.assign({'type':'statement','target':n,'result':m},s,ne);},function(s,v,t){return{'variant':keyNode(s),'format':keyNode(v)};},function(m,a){return Object.assign({'type':'module','variant':'virtual','name':m},a);},peg$otherExpectation(\"Module Arguments\"),function(l){return{'args':{'type':'expression','variant':'list','expression':isOkay(l)?l:[]}};},function(f,b){return flattenAll([f,b]).filter(function(arg){return isOkay(arg);});},function(a){return a;},peg$otherExpectation(\"DROP Statement\"),function(s,q){return Object.assign({'type':'statement','target':Object.assign(q,{'variant':s['format']})},s);},peg$otherExpectation(\"DROP Keyword\"),function(s,t,i){return Object.assign({'variant':keyNode(s),'format':t,'condition':[]},i);},peg$otherExpectation(\"DROP Type\"),peg$otherExpectation(\"IF EXISTS Keyword\"),function(i,e){return{'condition':[{'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':keyNode(e)}}]};},peg$otherExpectation(\"Or\"),peg$otherExpectation(\"Add\"),peg$otherExpectation(\"Subtract\"),peg$otherExpectation(\"Multiply\"),peg$otherExpectation(\"Divide\"),peg$otherExpectation(\"Modulo\"),peg$otherExpectation(\"Shift Left\"),peg$otherExpectation(\"Shift Right\"),peg$otherExpectation(\"Logical AND\"),peg$otherExpectation(\"Logical OR\"),peg$otherExpectation(\"Less Than\"),peg$otherExpectation(\"Greater Than\"),peg$otherExpectation(\"Less Than Or Equal\"),peg$otherExpectation(\"Greater Than Or Equal\"),peg$otherExpectation(\"Equal\"),peg$otherExpectation(\"Not Equal\"),peg$otherExpectation(\"IS\"),function(i,n){return foldStringKey([i,n]);},peg$otherExpectation(\"Identifier\"),peg$otherExpectation(\"Database Identifier\"),function(n){return{'type':'identifier','variant':'database','name':n};},peg$otherExpectation(\"Function Identifier\"),function(d,n){return{'type':'identifier','variant':'function','name':foldStringWord([d,n])};},peg$otherExpectation(\"Table Identifier\"),function(d,n){return{'type':'identifier','variant':'table','name':foldStringWord([d,n])};},function(n,d){return foldStringWord([n,d]);},peg$otherExpectation(\"Column Identifier\"),function(q,n){return{'type':'identifier','variant':'column','name':foldStringWord([q,n])};},function(){return'';},function(d,t){return foldStringWord([d,t]);},peg$otherExpectation(\"Collation Identifier\"),function(n){return{'type':'identifier','variant':'collation','name':n};},peg$otherExpectation(\"Savepoint Identifier\"),function(n){return{'type':'identifier','variant':'savepoint','name':n};},peg$otherExpectation(\"Index Identifier\"),function(d,n){return{'type':'identifier','variant':'index','name':foldStringWord([d,n])};},peg$otherExpectation(\"Trigger Identifier\"),function(d,n){return{'type':'identifier','variant':'trigger','name':foldStringWord([d,n])};},peg$otherExpectation(\"View Identifier\"),function(d,n){return{'type':'identifier','variant':'view','name':foldStringWord([d,n])};},peg$otherExpectation(\"Pragma Identifier\"),function(d,n){return{'type':'identifier','variant':'pragma','name':foldStringWord([d,n])};},peg$otherExpectation(\"CTE Identifier\"),function(d){return d;},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'table','name':n['name'],'columns':[]},a);},peg$otherExpectation(\"Table Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'table','name':n};},peg$otherExpectation(\"Column Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'column','name':n};},peg$otherExpectation(\"Datatype Name\"),function(t){return[t,'text'];},function(t){return[t,'real'];},function(t){return[t,'numeric'];},function(t){return[t,'integer'];},function(t){return[t,'none'];},peg$otherExpectation(\"TEXT Datatype Name\"),\"n\",peg$literalExpectation(\"N\",true),\"var\",peg$literalExpectation(\"VAR\",true),\"char\",peg$literalExpectation(\"CHAR\",true),\"tiny\",peg$literalExpectation(\"TINY\",true),\"medium\",peg$literalExpectation(\"MEDIUM\",true),\"long\",peg$literalExpectation(\"LONG\",true),\"text\",peg$literalExpectation(\"TEXT\",true),\"clob\",peg$literalExpectation(\"CLOB\",true),peg$otherExpectation(\"REAL Datatype Name\"),\"float\",peg$literalExpectation(\"FLOAT\",true),\"real\",peg$literalExpectation(\"REAL\",true),peg$otherExpectation(\"DOUBLE Datatype Name\"),\"double\",peg$literalExpectation(\"DOUBLE\",true),\"precision\",peg$literalExpectation(\"PRECISION\",true),function(d,p){return foldStringWord([d,p]);},peg$otherExpectation(\"NUMERIC Datatype Name\"),\"numeric\",peg$literalExpectation(\"NUMERIC\",true),\"decimal\",peg$literalExpectation(\"DECIMAL\",true),\"boolean\",peg$literalExpectation(\"BOOLEAN\",true),\"date\",peg$literalExpectation(\"DATE\",true),\"time\",peg$literalExpectation(\"TIME\",true),\"stamp\",peg$literalExpectation(\"STAMP\",true),\"string\",peg$literalExpectation(\"STRING\",true),peg$otherExpectation(\"INTEGER Datatype Name\"),\"int\",peg$literalExpectation(\"INT\",true),\"2\",peg$literalExpectation(\"2\",false),\"4\",peg$literalExpectation(\"4\",false),\"8\",peg$literalExpectation(\"8\",false),\"eger\",peg$literalExpectation(\"EGER\",true),\"big\",peg$literalExpectation(\"BIG\",true),\"small\",peg$literalExpectation(\"SMALL\",true),\"floating\",peg$literalExpectation(\"FLOATING\",true),\"point\",peg$literalExpectation(\"POINT\",true),function(f,p){return foldStringWord([f,p]);},peg$otherExpectation(\"BLOB Datatype Name\"),\"blob\",peg$literalExpectation(\"BLOB\",true),/^[a-z0-9$_]/i,peg$classExpectation([[\"a\",\"z\"],[\"0\",\"9\"],\"$\",\"_\"],false,true),\"\\\\u\",peg$literalExpectation(\"\\\\u\",false),/^[a-f0-9]/i,peg$classExpectation([[\"a\",\"f\"],[\"0\",\"9\"]],false,true),function(u,s){return foldStringWord([u,s]).toLowerCase();},function(n){return keyNode(n);},peg$anyExpectation(),function(n){return textNode(n);},/^[ \\t]/,peg$classExpectation([\" \",\"\\t\"],false,false),\"\\\"\",peg$literalExpectation(\"\\\"\",false),\"\\\"\\\"\",peg$literalExpectation(\"\\\"\\\"\",false),/^[^\"]/,peg$classExpectation([\"\\\"\"],true,false),function(n){return unescape(n,'\"');},\"'\",peg$literalExpectation(\"'\",false),function(n){return unescape(n,\"'\");},\"`\",peg$literalExpectation(\"`\",false),\"``\",peg$literalExpectation(\"``\",false),/^[^`]/,peg$classExpectation([\"`\"],true,false),function(n){return unescape(n,'`');},peg$otherExpectation(\"Open Bracket\"),\"[\",peg$literalExpectation(\"[\",false),peg$otherExpectation(\"Close Bracket\"),\"]\",peg$literalExpectation(\"]\",false),peg$otherExpectation(\"Open Parenthesis\"),\"(\",peg$literalExpectation(\"(\",false),peg$otherExpectation(\"Close Parenthesis\"),\")\",peg$literalExpectation(\")\",false),peg$otherExpectation(\"Comma\"),\",\",peg$literalExpectation(\",\",false),peg$otherExpectation(\"Period\"),\".\",peg$literalExpectation(\".\",false),peg$otherExpectation(\"Asterisk\"),\"*\",peg$literalExpectation(\"*\",false),peg$otherExpectation(\"Question Mark\"),\"?\",peg$literalExpectation(\"?\",false),peg$otherExpectation(\"Single Quote\"),peg$otherExpectation(\"Double Quote\"),peg$otherExpectation(\"Backtick\"),peg$otherExpectation(\"Tilde\"),\"~\",peg$literalExpectation(\"~\",false),peg$otherExpectation(\"Plus\"),\"+\",peg$literalExpectation(\"+\",false),peg$otherExpectation(\"Minus\"),\"-\",peg$literalExpectation(\"-\",false),\"=\",peg$literalExpectation(\"=\",false),peg$otherExpectation(\"Ampersand\"),\"&\",peg$literalExpectation(\"&\",false),peg$otherExpectation(\"Pipe\"),\"|\",peg$literalExpectation(\"|\",false),\"%\",peg$literalExpectation(\"%\",false),\"<\",peg$literalExpectation(\"<\",false),\">\",peg$literalExpectation(\">\",false),peg$otherExpectation(\"Exclamation\"),\"!\",peg$literalExpectation(\"!\",false),peg$otherExpectation(\"Semicolon\"),\";\",peg$literalExpectation(\";\",false),peg$otherExpectation(\"Colon\"),peg$otherExpectation(\"Forward Slash\"),\"/\",peg$literalExpectation(\"/\",false),peg$otherExpectation(\"Backslash\"),\"\\\\\",peg$literalExpectation(\"\\\\\",false),\"abort\",peg$literalExpectation(\"ABORT\",true),\"action\",peg$literalExpectation(\"ACTION\",true),\"add\",peg$literalExpectation(\"ADD\",true),\"after\",peg$literalExpectation(\"AFTER\",true),\"all\",peg$literalExpectation(\"ALL\",true),\"alter\",peg$literalExpectation(\"ALTER\",true),\"analyze\",peg$literalExpectation(\"ANALYZE\",true),\"and\",peg$literalExpectation(\"AND\",true),\"as\",peg$literalExpectation(\"AS\",true),\"asc\",peg$literalExpectation(\"ASC\",true),\"attach\",peg$literalExpectation(\"ATTACH\",true),\"autoincrement\",peg$literalExpectation(\"AUTOINCREMENT\",true),\"before\",peg$literalExpectation(\"BEFORE\",true),\"begin\",peg$literalExpectation(\"BEGIN\",true),\"between\",peg$literalExpectation(\"BETWEEN\",true),\"by\",peg$literalExpectation(\"BY\",true),\"cascade\",peg$literalExpectation(\"CASCADE\",true),\"case\",peg$literalExpectation(\"CASE\",true),\"cast\",peg$literalExpectation(\"CAST\",true),\"check\",peg$literalExpectation(\"CHECK\",true),\"collate\",peg$literalExpectation(\"COLLATE\",true),\"column\",peg$literalExpectation(\"COLUMN\",true),\"commit\",peg$literalExpectation(\"COMMIT\",true),\"conflict\",peg$literalExpectation(\"CONFLICT\",true),\"constraint\",peg$literalExpectation(\"CONSTRAINT\",true),\"create\",peg$literalExpectation(\"CREATE\",true),\"cross\",peg$literalExpectation(\"CROSS\",true),\"current_date\",peg$literalExpectation(\"CURRENT_DATE\",true),\"current_time\",peg$literalExpectation(\"CURRENT_TIME\",true),\"current_timestamp\",peg$literalExpectation(\"CURRENT_TIMESTAMP\",true),\"database\",peg$literalExpectation(\"DATABASE\",true),\"default\",peg$literalExpectation(\"DEFAULT\",true),\"deferrable\",peg$literalExpectation(\"DEFERRABLE\",true),\"deferred\",peg$literalExpectation(\"DEFERRED\",true),\"delete\",peg$literalExpectation(\"DELETE\",true),\"desc\",peg$literalExpectation(\"DESC\",true),\"detach\",peg$literalExpectation(\"DETACH\",true),\"distinct\",peg$literalExpectation(\"DISTINCT\",true),\"drop\",peg$literalExpectation(\"DROP\",true),\"each\",peg$literalExpectation(\"EACH\",true),\"else\",peg$literalExpectation(\"ELSE\",true),\"end\",peg$literalExpectation(\"END\",true),\"escape\",peg$literalExpectation(\"ESCAPE\",true),\"except\",peg$literalExpectation(\"EXCEPT\",true),\"exclusive\",peg$literalExpectation(\"EXCLUSIVE\",true),\"exists\",peg$literalExpectation(\"EXISTS\",true),\"explain\",peg$literalExpectation(\"EXPLAIN\",true),\"fail\",peg$literalExpectation(\"FAIL\",true),\"for\",peg$literalExpectation(\"FOR\",true),\"foreign\",peg$literalExpectation(\"FOREIGN\",true),\"from\",peg$literalExpectation(\"FROM\",true),\"full\",peg$literalExpectation(\"FULL\",true),\"glob\",peg$literalExpectation(\"GLOB\",true),\"group\",peg$literalExpectation(\"GROUP\",true),\"having\",peg$literalExpectation(\"HAVING\",true),\"if\",peg$literalExpectation(\"IF\",true),\"ignore\",peg$literalExpectation(\"IGNORE\",true),\"immediate\",peg$literalExpectation(\"IMMEDIATE\",true),\"in\",peg$literalExpectation(\"IN\",true),\"index\",peg$literalExpectation(\"INDEX\",true),\"indexed\",peg$literalExpectation(\"INDEXED\",true),\"initially\",peg$literalExpectation(\"INITIALLY\",true),\"inner\",peg$literalExpectation(\"INNER\",true),\"insert\",peg$literalExpectation(\"INSERT\",true),\"instead\",peg$literalExpectation(\"INSTEAD\",true),\"intersect\",peg$literalExpectation(\"INTERSECT\",true),\"into\",peg$literalExpectation(\"INTO\",true),\"is\",peg$literalExpectation(\"IS\",true),\"isnull\",peg$literalExpectation(\"ISNULL\",true),\"join\",peg$literalExpectation(\"JOIN\",true),\"key\",peg$literalExpectation(\"KEY\",true),\"left\",peg$literalExpectation(\"LEFT\",true),\"like\",peg$literalExpectation(\"LIKE\",true),\"limit\",peg$literalExpectation(\"LIMIT\",true),\"match\",peg$literalExpectation(\"MATCH\",true),\"natural\",peg$literalExpectation(\"NATURAL\",true),\"no\",peg$literalExpectation(\"NO\",true),\"not\",peg$literalExpectation(\"NOT\",true),\"notnull\",peg$literalExpectation(\"NOTNULL\",true),\"of\",peg$literalExpectation(\"OF\",true),\"offset\",peg$literalExpectation(\"OFFSET\",true),\"on\",peg$literalExpectation(\"ON\",true),\"or\",peg$literalExpectation(\"OR\",true),\"order\",peg$literalExpectation(\"ORDER\",true),\"outer\",peg$literalExpectation(\"OUTER\",true),\"plan\",peg$literalExpectation(\"PLAN\",true),\"pragma\",peg$literalExpectation(\"PRAGMA\",true),\"primary\",peg$literalExpectation(\"PRIMARY\",true),\"query\",peg$literalExpectation(\"QUERY\",true),\"raise\",peg$literalExpectation(\"RAISE\",true),\"recursive\",peg$literalExpectation(\"RECURSIVE\",true),\"references\",peg$literalExpectation(\"REFERENCES\",true),\"regexp\",peg$literalExpectation(\"REGEXP\",true),\"reindex\",peg$literalExpectation(\"REINDEX\",true),\"release\",peg$literalExpectation(\"RELEASE\",true),\"rename\",peg$literalExpectation(\"RENAME\",true),\"replace\",peg$literalExpectation(\"REPLACE\",true),\"restrict\",peg$literalExpectation(\"RESTRICT\",true),\"right\",peg$literalExpectation(\"RIGHT\",true),\"rollback\",peg$literalExpectation(\"ROLLBACK\",true),\"row\",peg$literalExpectation(\"ROW\",true),\"rowid\",peg$literalExpectation(\"ROWID\",true),\"savepoint\",peg$literalExpectation(\"SAVEPOINT\",true),\"select\",peg$literalExpectation(\"SELECT\",true),\"set\",peg$literalExpectation(\"SET\",true),\"table\",peg$literalExpectation(\"TABLE\",true),\"temp\",peg$literalExpectation(\"TEMP\",true),\"temporary\",peg$literalExpectation(\"TEMPORARY\",true),\"then\",peg$literalExpectation(\"THEN\",true),\"to\",peg$literalExpectation(\"TO\",true),\"transaction\",peg$literalExpectation(\"TRANSACTION\",true),\"trigger\",peg$literalExpectation(\"TRIGGER\",true),\"union\",peg$literalExpectation(\"UNION\",true),\"unique\",peg$literalExpectation(\"UNIQUE\",true),\"update\",peg$literalExpectation(\"UPDATE\",true),\"using\",peg$literalExpectation(\"USING\",true),\"vacuum\",peg$literalExpectation(\"VACUUM\",true),\"values\",peg$literalExpectation(\"VALUES\",true),\"view\",peg$literalExpectation(\"VIEW\",true),\"virtual\",peg$literalExpectation(\"VIRTUAL\",true),\"when\",peg$literalExpectation(\"WHEN\",true),\"where\",peg$literalExpectation(\"WHERE\",true),\"with\",peg$literalExpectation(\"WITH\",true),\"without\",peg$literalExpectation(\"WITHOUT\",true),function(r){return keyNode(r);},function(){return null;},peg$otherExpectation(\"Line Comment\"),\"--\",peg$literalExpectation(\"--\",false),/^[\\n\\v\\f\\r]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\"],false,false),peg$otherExpectation(\"Block Comment\"),\"/*\",peg$literalExpectation(\"/*\",false),\"*/\",peg$literalExpectation(\"*/\",false),/^[\\n\\v\\f\\r\\t ]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\",\"\\t\",\" \"],false,false),peg$otherExpectation(\"Whitespace\"),\"__TODO__\",peg$literalExpectation(\"__TODO__\",false)];var peg$bytecode=[peg$decode(\"%;\\u023F/H#;#/?$;\\\".\\\" &\\\"/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/C#;#/:$;x/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;x/B#;\\u023F/9$$;%0#*;%&/)$8#:!#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"$;\\u01B30#*;\\u01B3&\"),peg$decode(\"$;\\u01B3/�#*;\\u01B3&&&#\"),peg$decode(\"%;$/:#;x/1$;\\u023F/($8#:\\\"#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;'.# &;(/@#;\\u023F/7$;*.\\\" &\\\"/)$8#:$#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7#\"),peg$decode(\"%;\\u018B/' 8!:%!! )\"),peg$decode(\"<%;\\u0195/9#$;)0#*;)&/)$8\\\":'\\\"\\\"! )(\\\"'#&'#=.\\\" 7&\"),peg$decode(\"%4(\\\"\\\"5!7)/1#;\\u0197/($8\\\":*\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;5/I$;\\u023F/@$;+.\\\" &\\\"/2$;\\u01A1/)$8%:,%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7+\"),peg$decode(\"%;\\u01A2/C#;\\u023F/:$;5/1$;\\u023F/($8$:-$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\";5.; &;6.5 &;2./ &;-.) &;..# &;/\"),peg$decode(\"<%;\\u0206/1#;\\u023F/($8\\\":/\\\"!!)(\\\"'#&'#=.\\\" 7.\"),peg$decode(\"<%;\\u01D2.) &;\\u01D4.# &;\\u01D3/1#;\\u023F/($8\\\":1\\\"!!)(\\\"'#&'#=.\\\" 70\"),peg$decode(\"<%;4.\\\" &\\\"/2#;0/)$8\\\":3\\\"\\\"! )(\\\"'#&'#=.\\\" 72\"),peg$decode(\"<%;\\u01A6/A#$;10#*;1&/1$;\\u01A6/($8#:5#!!)(#'#(\\\"'#&'#=.\\\" 74\"),peg$decode(\"26\\\"\\\"6677.) &48\\\"\\\"5!79\"),peg$decode(\"<%4;\\\"\\\"5!7!! )\"),peg$decode(\"<%;\\u01AA.# &;\\u01AB/' 8!:\\\"!! )=.\\\" 7?\"),peg$decode(\"%;4.\\\" &\\\"/2#;6/)$8\\\":@\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";<.# &;7\"),peg$decode(\"%;8/7#;;.\\\" &\\\"/)$8\\\":A\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<;9.# &;:=.\\\" 7B\"),peg$decode(\"%$;>/�#*;>&&&#/7#;:.\\\" &\\\"/)$8\\\":C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u01A3/9#$;>0#*;>&/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3F\\\"\\\"5!7G/T#4H\\\"\\\"5!7I.\\\" &\\\"/@$$;>/�#*;>&&&#/*$8#:J##\\\"! )(#'#(\\\"'#&'#=.\\\" 7E\"),peg$decode(\"<%3L\\\"\\\"5\\\"7M/?#$;=/�#*;=&&&#/)$8\\\":N\\\"\\\"! )(\\\"'#&'#=.\\\" 7K\"),peg$decode(\"4O\\\"\\\"5!7P\"),peg$decode(\"4Q\\\"\\\"5!7R\"),peg$decode(\"<%;@.) &;B.# &;C/' 8!:T!! )=.\\\" 7S\"),peg$decode(\"<%;\\u01A5/@#;A.\\\" &\\\"/2$;\\u023F/)$8#:V#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7U\"),peg$decode(\"%4W\\\"\\\"5!7X/9#$;>0#*;>&/)$8\\\":Y\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%4[\\\"\\\"5!7\\\\/H#$;\\u0193/�#*;\\u0193&&&#/2$;\\u023F/)$8#:]#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7Z\"),peg$decode(\"<%2_\\\"\\\"6_7`/o#$;\\u0193.) &2a\\\"\\\"6a7b/2#0/*;\\u0193.) &2a\\\"\\\"6a7b&&&#/A$;\\u023F/8$;D.\\\" &\\\"/*$8$:c$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7^\"),peg$decode(\"%;\\u019B/1#;\\u023F/($8\\\":d\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;F.\\\" &\\\"/;#;\\u023F/2$;\\x94/)$8#:f#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7e\"),peg$decode(\"<%;k.\\\" &\\\"/;#;\\u01E4/2$;\\u023F/)$8#:h#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7g\"),peg$decode(\"<%;\\u0211/_#;\\u023F/V$;\\u01A0/M$;\\u023F/D$;H/;$;\\u023F/2$;\\u01A1/)$8':j'\\\"&\\\")(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7i\"),peg$decode(\"<%;I.# &;J/' 8!:l!! )=.\\\" 7k\"),peg$decode(\"<%;\\u01EF/' 8!:n!! )=.\\\" 7m\"),peg$decode(\"%;\\u021B.) &;\\u01B7.# &;\\u01E6/M#;\\u023F/D$;\\u01A2/;$;\\u023F/2$;w/)$8%:o%\\\"$ )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";?./ &;t.) &;,.# &;\\u017D\"),peg$decode(\"%;\\u01A0/L#;\\u023F/C$;p/:$;\\u023F/1$;\\u01A1/($8%:p%!\\\")(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";L.; &;E.5 &;_./ &;a.) &;G.# &;K\"),peg$decode(\"%;M/;#;\\u023F/2$;Q/)$8#:q#\\\"\\\" )(#'#(\\\"'#&'#.# &;M\"),peg$decode(\"%;P/A#;\\u023F/8$;N.# &;p/)$8#:r#\\\"\\\" )(#'#(\\\"'#&'#.# &;N\"),peg$decode(\";\\u01A9.U &;\\u01AB.O &;\\u01AA.I &%%;k/8#%<;\\u01E4=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"<%;\\u012D/' 8!:t!! )=.\\\" 7s\"),peg$decode(\"%;O/\\x83#$%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;R/\\x83#$%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0169.) &;\\u016A.# &;\\u016B\"),peg$decode(\"%;S/\\x83#$%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0167.# &;\\u0168\"),peg$decode(\"%;U/\\x83#$%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u016C.U &;\\u016D.O &;\\u016E.I &%%;\\u016F/8#%<;\\u016F=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;W/\\x83#$%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0172.{ &;\\u0173.u &%%;\\u0170/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,).I &%%;\\u0171/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;Y/9#$;\\\\0#*;\\\\&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;]/($8\\\":v\\\"! )(\\\"'#&'#.H &%;\\u023F/>#;^/5$;\\u023F/,$;Y/#$+$)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%3w\\\"\\\"5$7x/?#;\\u023F/6$3y\\\"\\\"5$7z/'$8#:{# )(#'#(\\\"'#&'#.? &%;\\u01FB/& 8!:|! ).. &%;\\u0205/& 8!:{! )\"),peg$decode(\";\\u0177./ &;\\u0175.) &;\\u0176.# &;\\u0174\"),peg$decode(\"<%;\\u01C9/i#;\\u023F/`$;\\u01A0/W$;p/N$;\\u023F/E$;`/<$;\\u023F/3$;\\u01A1/*$8(:~(#'$\\\")(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7}\"),peg$decode(\"<%;\\u01BF/:#;\\u023F/1$;&/($8#:\\x80#! )(#'#(\\\"'#&'#=.\\\" 7\\x7F\"),peg$decode(\"<%;\\u01C8/\\x93#;\\u023F/\\x8A$;b.\\\" &\\\"/|$;\\u023F/s$$;c/�#*;c&&&#/]$;\\u023F/T$;d.\\\" &\\\"/F$;\\u023F/=$;\\u01E0/4$;\\u023F/+$8*:\\x82*$)'%#)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x81\"),peg$decode(\"%%<;\\u0230=.##&&!&'#/1#;p/($8\\\":\\x83\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/i#;\\u023F/`$;p/W$;\\u023F/N$;\\u0224/E$;\\u023F/<$;p/3$;\\u023F/*$8(:\\x85(#'%!)(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01DF/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x87$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x86\"),peg$decode(\"%;[/;#;\\u023F/2$;f/)$8#:\\x88#\\\"\\\" )(#'#(\\\"'#&'#.# &;[\"),peg$decode(\";l.) &;i.# &;g\"),peg$decode(\"<%;k.\\\" &\\\"/o#;\\u01FF./ &;\\u01EB.) &;\\u0214.# &;\\u0201/T$;\\u023F/K$;p/B$;\\u023F/9$;h.\\\" &\\\"/+$8&:\\x8A&$%$\\\" )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x89\"),peg$decode(\"<%;\\u01E1/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x8C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x8B\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01C5/<$;\\u023F/3$;j/*$8$:\\x8E$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x8D\"),peg$decode(\"%;e/W#%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#/)$8\\\":\\x8F\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0204/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01F1/<$;\\u023F/3$;m/*$8$:\\x92$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x91\"),peg$decode(\";n.# &;\\u017B\"),peg$decode(\"%;\\u01A0/I#;\\x95.# &;q/:$;\\u023F/1$;\\u01A1/($8$:\\x93$!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;e/\\x83#$%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;o/\\x83#$%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;r.\\\" &\\\"/1#;\\u023F/($8\\\":\\x95\\\"!!)(\\\"'#&'#=.\\\" 7\\x94\"),peg$decode(\"%;p/B#;\\u023F/9$$;s0#*;s&/)$8#:\\x96#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;p/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017A/[#;\\u023F/R$;\\u01A0/I$;u.\\\" &\\\"/;$;\\u023F/2$;\\u01A1/)$8&:\\x98&\\\"%\\\")(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x97\"),peg$decode(\"<%;\\xDB/' 8!:\\x9A!! ).V &%;v.\\\" &\\\"/G#;q/>$9:\\x9B \\\"! -\\\"\\\"&!&#/)$8#:\\x9C#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\x99\"),peg$decode(\"%;\\u01DC.# &;\\u01BB/1#;\\u023F/($8\\\":\\x9D\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;//' 8!:\\x9F!! )=.\\\" 7\\x9E\"),peg$decode(\"<%;y.\\\" &\\\"/;#;{/2$;\\u023F/)$8#:\\xA1#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\xA0\"),peg$decode(\"<%;\\u01E5/@#;\\u023F/7$;z.\\\" &\\\"/)$8#:\\xA3#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA2\"),peg$decode(\"<%;\\u0210/D#;\\u023F/;$;\\u020D/2$;\\u023F/)$8$:\\xA5$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xA4\"),peg$decode(\";\\x8C.S &;\\xFB.M &;\\u0162.G &;}.A &;|.; &;\\x86.5 &;\\x80./ &;\\x84.) &;\\x85.# &;\\x96\"),peg$decode(\"<%;\\u01CD.# &;\\u01E0/@#;\\u023F/7$;~.\\\" &\\\"/)$8#:\\xA7#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA6\"),peg$decode(\"<%;\\u01C4/^#;\\u023F/U$;\\x7F.\\\" &\\\"/G$;~.\\\" &\\\"/9$;\\x82.\\\" &\\\"/+$8%:\\xA9%$$\\\"! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xA8\"),peg$decode(\"%;\\u0226/1#;\\u023F/($8\\\":\\xAA\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01D8.) &;\\u01F0.# &;\\u01E3/1#;\\u023F/($8\\\":\\xAB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u021B/N#;\\u023F/E$;~.\\\" &\\\"/7$;\\x81.\\\" &\\\"/)$8$:\\xAD$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xAC\"),peg$decode(\"<%%;\\u0225/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/?#;\\x83.\\\" &\\\"/1$;\\x82/($8#:p#! )(#'#(\\\"'#&'#=.\\\" 7\\xAE\"),peg$decode(\"%;\\u0182/1#;\\u023F/($8\\\":\\xAF\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u021E/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\x83/2#;\\x82/)$8\\\":\\xB2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xB1\"),peg$decode(\"<%;\\u0216/J#;\\u023F/A$;\\x83.\\\" &\\\"/3$;\\x82/*$8$:\\xB4$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\xB3\"),peg$decode(\"<%;\\x87/N#;\\u017B/E$;\\u023F/<$;\\x88/3$;\\u023F/*$8%:\\xB6%#$#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB5\"),peg$decode(\"<%;\\u01BC/D#;\\u023F/;$;\\u0221/2$;\\u023F/)$8$:\\xB8$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xB7\"),peg$decode(\";\\x89.# &;\\x8A\"),peg$decode(\"<%;\\u0217/M#;\\u023F/D$;\\u0225/;$;\\u023F/2$;\\u017B/)$8%:\\xBA%\\\"$ )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB9\"),peg$decode(\"<%;\\u01B9/I#;\\u023F/@$;\\x8B.\\\" &\\\"/2$;\\u010C/)$8$:\\xBC$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xBB\"),peg$decode(\"%;\\u01CC/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA7/)$8\\\":\\xBD\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\x8E.\\\" &\\\"/1#;\\u023F/($8\\\":*\\\"!!)(\\\"'#&'#=.\\\" 7\\xBE\"),peg$decode(\"%;\\u0232/J#;\\u023F/A$;\\x8F.\\\" &\\\"/3$;\\x90/*$8$:\\xBF$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0212/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x92/B#;\\u023F/9$$;\\x910#*;\\x91&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\x92/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0187/2#;\\x93/)$8\\\":\\xC2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xC1\"),peg$decode(\"%;\\u01BF/:#;\\u023F/1$;\\x94/($8#:\\xC3#! )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A0/C#;\\x95/:$;\\u023F/1$;\\u01A1/($8$: $!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA8/)$8\\\":\\xC4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\x97.; &;\\x99.5 &;\\x9A./ &;\\x9C.) &;\\x9E.# &;\\xA0\"),peg$decode(\"<%;\\u01C1/\\x8B#;\\u023F/\\x82$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/a$;p/X$;\\u023F/O$;\\u01BF/F$;\\u023F/=$;\\x98/4$;\\u023F/+$8):\\xC6)$(&%!)()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC5\"),peg$decode(\";\\u0179.) &;-.# &;?\"),peg$decode(\"<%;\\u01DB/f#;\\u023F/]$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/<$;\\x98/3$;\\u023F/*$8%:\\xC8%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC7\"),peg$decode(\"<%;\\u022C/@#;\\u023F/7$;\\x9B.\\\" &\\\"/)$8#:\\xCA#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xC9\"),peg$decode(\"%;\\u0179/1#;\\u023F/($8\\\":\\xCB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01BD/@#;\\u023F/7$;\\x9D.\\\" &\\\"/)$8#:\\xCD#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xCC\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0179/1#;\\u023F/($8\\\":\\xCE\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0215/I#;\\u023F/@$;\\x9F.\\\" &\\\"/2$;\\u023F/)$8$:\\xCD$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xCF\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0181/1#;\\u023F/($8\\\":\\xD0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020E/S#;\\u023F/J$;\\u0186/A$;\\u023F/8$;\\xA1.\\\" &\\\"/*$8%:\\xD2%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD1\"),peg$decode(\"%;\\u01A0/C#;\\xA2/:$;\\u023F/1$;\\u01A1/($8$:\\xD3$!\\\")($'#(#'#(\\\"'#&'#.D &%;\\u01AC/:#;\\xA2/1$;\\u023F/($8#:\\xD3#!!)(#'#(\\\"'#&'#\"),peg$decode(\";\\xA4.) &;\\xA3.# &;\\xA6\"),peg$decode(\";5.) &;/.# &;3\"),peg$decode(\"%;\\xA5/<#9:\\xD4 ! -\\\"\\\"&!&#/($8\\\":\\xD5\\\"!!)(\\\"'#&'#\"),peg$decode(\"%$;\\u0193/�#*;\\u0193&&&#/' 8!:\\xD6!! )\"),peg$decode(\"%;\\xA5/' 8!:\\xD7!! )\"),peg$decode(\";\\xA8./ &;\\xDD.) &;\\xF2.# &;\\xF9\"),peg$decode(\"<%;\\xAE/X#;\\u023F/O$;\\xA9.\\\" &\\\"/A$;\\u023F/8$;\\xAA.\\\" &\\\"/*$8%:\\xD9%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD8\"),peg$decode(\"<%;\\u020B/L#;\\u023F/C$;\\u01C6/:$;\\u023F/1$;\\xD8/($8%:\\xDB%! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDA\"),peg$decode(\"<%;\\u0200/S#;\\u023F/J$;p/A$;\\u023F/8$;\\xAB.\\\" &\\\"/*$8%:\\xDD%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDC\"),peg$decode(\"<%;\\xAC/2#;p/)$8\\\":\\xDF\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xDE\"),peg$decode(\";\\xAD.# &;\\u01A2\"),peg$decode(\"%;\\u0208/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xB0/B#;\\u023F/9$$;\\xAF0#*;\\xAF&/)$8#:\\xE0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xEF/D#;\\u023F/;$;\\xB0/2$;\\u023F/)$8$:\\xE2$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE1\"),peg$decode(\";\\xB1.# &;\\xD7\"),peg$decode(\"%;\\xB2/U#;\\xB8.\\\" &\\\"/G$;\\xB9.\\\" &\\\"/9$;\\xBA.\\\" &\\\"/+$8$:\\xE3$$#\\\"! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u021F/R#;\\u023F/I$;\\xB3.\\\" &\\\"/;$;\\u023F/2$;\\xB6/)$8%:\\xE5%\\\"\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xE4\"),peg$decode(\"<;\\xB4.# &;\\xB5=.\\\" 7\\xE6\"),peg$decode(\"%;\\u01DC/1#;\\u023F/($8\\\":\\xE7\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\xE8\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xBC/B#;\\u023F/9$$;\\xB70#*;\\xB7&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xBC/1$;\\u023F/($8#:-#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01E9/D#;\\u023F/;$;\\xC0/2$;\\u023F/)$8$:\\xEA$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE9\"),peg$decode(\"<%;\\u0231/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xEC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEB\"),peg$decode(\"<%;\\u01EC/e#;\\u023F/\\\\$;\\u01C6/S$;\\u023F/J$;q/A$;\\u023F/8$;\\xBB.\\\" &\\\"/*$8':\\xEE'#&\\\" )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xED\"),peg$decode(\"<%;\\u01ED/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xF0$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEF\"),peg$decode(\";\\xBD.# &;\\xBF\"),peg$decode(\"%;\\xBE.\\\" &\\\"/2#;\\xDB/)$8\\\":\\xF1\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0195/2#;\\u01A3/)$8\\\":\\xF2\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;p/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xF3#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC4/B#;\\u023F/9$$;\\xC10#*;\\xC1&/)$8#:\\xF4#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC2.# &;\\xC3/7#;\\xD4.\\\" &\\\"/)$8\\\":\\xF5\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A2/:#;\\xC4/1$;\\u023F/($8#:\\xF7#!!)(#'#(\\\"'#&'#=.\\\" 7\\xF6\"),peg$decode(\"<%;\\xCE/D#;\\u023F/;$;\\xC4/2$;\\u023F/)$8$:\\xF9$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xF8\"),peg$decode(\";\\xCB.5 &;?./ &;\\xC5.) &;\\xC6.# &;\\xCC\"),peg$decode(\"%;\\u017A/S#;\\u023F/J$;\\xED/A$;\\u023F/8$;\\xCD.\\\" &\\\"/*$8%:\\xFA%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xC7/@#;\\u023F/7$;\\xC8.\\\" &\\\"/)$8#:\\xFC#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFB\"),peg$decode(\"<%;\\u017B/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xFE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFD\"),peg$decode(\"<;\\xC9.# &;\\xCA=.\\\" 7\\xFF\"),peg$decode(\"%;\\u01F3/V#;\\u023F/M$;\\u01C6/D$;\\u023F/;$;\\u0183/2$;\\u023F/)$8&:\\u0100&\\\"%!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;k/;#;\\u01F3/2$;\\u023F/)$8#:\\u0101#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;\\xC0/I$;\\u023F/@$;\\u01A1/7$;\\xCD.\\\" &\\\"/)$8%:\\u0103%\\\"# )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0102\"),peg$decode(\"<%;\\x94/7#;\\xCD.\\\" &\\\"/)$8\\\":\\u0105\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0104\"),peg$decode(\"<%%;\\u01BF/Q#%%<;\\u0193.# &;\\u0236=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/#$+\\\")(\\\"'#&'#.\\\" &\\\"/;#;\\u0195/2$;\\u023F/)$8#:\\u0107#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u0106\"),peg$decode(\"<%;\\xCF.\\\" &\\\"/J#;\\u023F/A$;\\xD0.\\\" &\\\"/3$;\\u01FC/*$8$:\\u0109$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0108\"),peg$decode(\"%;\\u0202/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\";\\xD1.# &;\\xD3\"),peg$decode(\"%;\\u01FE.) &;\\u021A.# &;\\u01EA/@#;\\u023F/7$;\\xD2.\\\" &\\\"/)$8#:\\u010A#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u020C/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F5.# &;\\u01D1/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xD5.# &;\\xD6/1#;\\u023F/($8\\\":\\u010D\\\"!!)(\\\"'#&'#=.\\\" 7\\u010C\"),peg$decode(\"<%;\\u0209/;#;\\u023F/2$;p/)$8#:\\u010F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u010E\"),peg$decode(\"<%;\\u022B/;#;\\u023F/2$;\\xE6/)$8#:\\u0111#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0110\"),peg$decode(\"<%;\\u022D/;#;\\u023F/2$;\\xEB/)$8#:\\u0113#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"%;\\xDA/B#;\\u023F/9$$;\\xD90#*;\\xD9&/)$8#:\\u0114#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xDA/1$;\\u023F/($8#:\\u0115#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;p/@#;\\u023F/7$;\\u012F.\\\" &\\\"/)$8#:\\u0117#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0116\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u0118\"),peg$decode(\"<;\\u0218.5 &;\\u021B./ &;\\u01B7.) &;\\u01E6.# &;\\u01EF=.\\\" 7\\u0119\"),peg$decode(\"<%;\\xDE/;#;\\u023F/2$;\\xE2/)$8#:\\u011B#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011A\"),peg$decode(\";\\xDF.# &;\\xE0\"),peg$decode(\"<%;\\u01F6/@#;\\u023F/7$;\\xE1.\\\" &\\\"/)$8#:\\u011D#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011C\"),peg$decode(\"<%;\\u0218/1#;\\u023F/($8\\\":\\u011F\\\"!!)(\\\"'#&'#=.\\\" 7\\u011E\"),peg$decode(\"<%;\\u020A/;#;\\u023F/2$;\\xDC/)$8#:\\u0121#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0120\"),peg$decode(\"%;\\xE3/2#;\\xE5/)$8\\\":\\u0122\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\xE4/2#;\\u0187/)$8\\\":\\u0124\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0123\"),peg$decode(\"<%;\\u01F9/,#;\\u023F/#$+\\\")(\\\"'#&'#=.\\\" 7\\u0125\"),peg$decode(\"<%;\\xE9.) &;\\x95.# &;\\xEE/1#;\\u023F/($8\\\":\\u0126\\\"!!)(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u01A0/T#;\\xE8/K$;\\u023F/B$$;\\xE70#*;\\xE7&/2$;\\u01A1/)$8%:\\u0128%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0127\"),peg$decode(\"%;\\u01A2/:#;\\xE8/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u012B!! )=.\\\" 7\\u012A\"),peg$decode(\"<%;\\xEA/2#;\\xEB/)$8\\\":\\u012C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u022D/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u012D\"),peg$decode(\"%;\\xED/B#;\\u023F/9$$;\\xEC0#*;\\xEC&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xED/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/C#;q/:$;\\u023F/1$;\\u01A1/($8$:\\u0130$!\\\")($'#(#'#(\\\"'#&'#=.\\\" 7\\u012F\"),peg$decode(\"<%;\\u01D6/;#;\\u023F/2$;\\u022D/)$8#:\\u0132#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0131\"),peg$decode(\"<%;\\xF0.) &;\\u01F8.# &;\\u01E2/' 8!:\\xB0!! )=.\\\" 7\\u0133\"),peg$decode(\"<%;\\u0228/@#;\\u023F/7$;\\xF1.\\\" &\\\"/)$8#:\\u0135#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0134\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xF3/\\x8A#;\\xF4.\\\" &\\\"/|$;\\xC6/s$;\\u023F/j$;\\xF5/a$;\\xB9.\\\" &\\\"/S$;\\xA9.\\\" &\\\"/E$;\\u023F/<$;\\xAA.\\\" &\\\"/.$8):\\u0138)'('&$#\\\" )()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0137\"),peg$decode(\"<%;\\u022A/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u0139\"),peg$decode(\"<%;\\u020A/C#;\\u023F/:$;\\xDC/1$;\\u023F/($8$:\\u013B$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013A\"),peg$decode(\"<%;\\u0220/C#;\\u023F/:$;\\xF6/1$;\\u023F/($8$:\\u013D$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013C\"),peg$decode(\"%;\\xF8/9#$;\\xF70#*;\\xF7&/)$8\\\":\\u012E\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/:#;\\u01A2/1$;\\xF8/($8#:\\u0129#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017D/M#;\\u023F/D$;\\u01AC/;$;p/2$;\\u023F/)$8%:\\u013F%\\\"$!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u013E\"),peg$decode(\"<%;\\xFA/h#;\\xC6/_$;\\u023F/V$;\\xB9.\\\" &\\\"/H$;\\xA9.\\\" &\\\"/:$;\\xAA.\\\" &\\\"/,$8&:\\u0141&%%$\\\"! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0140\"),peg$decode(\"<%;\\u01D9/C#;\\u023F/:$;\\u01E9/1$;\\u023F/($8$:\\xB0$!#)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0142\"),peg$decode(\"<;\\xFD.5 &;\\xFE./ &;\\xFF.) &;\\u0100.# &;\\u0101=.\\\" 7\\u0143\"),peg$decode(\"%;\\u01D0/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u01F2./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0102/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0143/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0147/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0156/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u015A/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0103/T#;\\u0105.\\\" &\\\"/F$;\\u017B/=$;\\u023F/4$;\\u0106/+$8%:\\u0145%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0144\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0221/3$;\\u023F/*$8$:\\u0146$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0223.# &;\\u0222/1#;\\u023F/($8\\\":\\u0147\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01EE/N#;\\u023F/E$;k/<$;\\u01E4/3$;\\u023F/*$8%:\\u0149%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0148\"),peg$decode(\";\\u0107.# &;\\u0142\"),peg$decode(\"<%;\\u01A0/Z#;\\u0109/Q$$;\\u010B0#*;\\u010B&/A$;\\u01A1/8$;\\u0108.\\\" &\\\"/*$8%:\\u014B%##\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u014A\"),peg$decode(\"%;\\u0233/D#;\\u023F/;$;\\u021D/2$;\\u023F/)$8$:\\u014C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u010C/B#;\\u023F/9$$;\\u010A0#*;\\u010A&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\u010C/1$;\\u023F/($8#:\\xAA#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2.\\\" &\\\"/1#;\\u0120/($8\\\":\\u014D\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u010D/O#;\\u023F/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u014E\"),peg$decode(\"%;\\u0195/=#%<;\\u023F=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.\\\\ &%%<;\\u010E.) &;\\u0111.# &;\\u0120=.##&&!&'#/:#;\\u023F/1$;\\u0198/($8#:p#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;&/1#;\\u023F/($8\\\":\\u0151\\\"!!)(\\\"'#&'#=.\\\" 7\\u0150\"),peg$decode(\"%;\\u0111/B#$;\\u01100#*;\\u0110&/2$;\\u023F/)$8#:\\u012E#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;\\u0111/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/A#;\\u0114/8$;\\u0112.\\\" &\\\"/*$8#:\\u0153##\\\"! )(#'#(\\\"'#&'#=.\\\" 7\\u0152\"),peg$decode(\"%$;\\u0113/�#*;\\u0113&&&#/' 8!:\\u0154!! )\"),peg$decode(\"<%;\\u01CF/C#;\\u023F/:$;\\u0195/1$;\\u023F/($8$:\\u0156$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0155\"),peg$decode(\";\\u0116.; &;\\u0119.5 &;\\u011C./ &;\\u011D.) &;\\u011F.# &;\\u0115\"),peg$decode(\"<%;\\u0135/' 8!:\\u0158!! )=.\\\" 7\\u0157\"),peg$decode(\"<%;\\u0117/U#;\\u012F.\\\" &\\\"/G$;\\u0130.\\\" &\\\"/9$;\\u0118.\\\" &\\\"/+$8$:\\u015A$$#\\\"! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0159\"),peg$decode(\"<%;\\u020F.# &;\\u020E/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u015C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u01C2/1#;\\u023F/($8\\\":\\u015E\\\"!!)(\\\"'#&'#=.\\\" 7\\u015D\"),peg$decode(\"%;\\u011A/@#;\\u0130.\\\" &\\\"/2$;\\u023F/)$8#:\\u015F#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u011B.# &;\\u0229/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u0160\"),peg$decode(\"<%;k.\\\" &\\\"/2#;\\u0206/)$8\\\":\\u0162\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0161\"),peg$decode(\"<;\\u0132=.\\\" 7\\u0163\"),peg$decode(\"<%;\\u01D6/D#;\\u023F/;$;\\u011E/2$;\\u023F/)$8$:\\u0165$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0164\"),peg$decode(\";L./ &;5.) &;,.# &;3\"),peg$decode(\"<%;\\u012D/' 8!:\\u0167!! )=.\\\" 7\\u0166\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/J#;\\u0121/A$;\\u023F/8$;\\u0112.\\\" &\\\"/*$8$:\\u0169$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0168\"),peg$decode(\";\\u0133.) &;\\u0123.# &;\\u0122\"),peg$decode(\"<%;\\u0132/' 8!:\\u016B!! )=.\\\" 7\\u016A\"),peg$decode(\"<%;\\u0124/J#;\\u023F/A$;\\u0129/8$;\\u0130.\\\" &\\\"/*$8$:\\u016D$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u016C\"),peg$decode(\"%;\\u0125.# &;\\u0126/1#;\\u023F/($8\\\":\\u016E\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020F/;#;\\u023F/2$;\\u01FD/)$8#:\\u016F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u0229/' 8!:\\u0171!! )=.\\\" 7\\u0170\"),peg$decode(\"%;\\u01A0/T#;\\u012B/K$;\\u023F/B$$;\\u012A0#*;\\u012A&/2$;\\u01A1/)$8%:\\u0172%\\\"#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0127/' 8!:\\u0173!! )\"),peg$decode(\"%;\\u0127/' 8!:\\u0174!! )\"),peg$decode(\"%;\\u01A2/:#;\\u012B/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u012C/O#;\\u023F/F$;\\u012F.\\\" &\\\"/8$;\\u0118.\\\" &\\\"/*$8$:\\u0176$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0175\"),peg$decode(\"%;\\xE8/\\\\#%<%;\\u023F/8#;\\u01B3.) &;\\u01A1.# &;\\u012F/#$+\\\")(\\\"'#&'#=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.# &;p\"),peg$decode(\"<%$;\\u012E/�#*;\\u012E&&&#/' 8!:\\u0178!! )=.\\\" 7\\u0177\"),peg$decode(\"%;\\u01CB/C#;\\u023F/:$;\\u0181/1$;\\u023F/($8$:p$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01C0.# &;\\u01DA/1#;\\u023F/($8\\\":\\u017A\\\"!!)(\\\"'#&'#=.\\\" 7\\u0179\"),peg$decode(\"%;\\u0131/;#;\\xDC/2$;\\u023F/)$8#:\\u017B#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/D#;\\u023F/;$;\\u01CE/2$;\\u023F/)$8$:\\u017D$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017C\"),peg$decode(\"%;\\u01CA/;#;\\u023F/2$;L/)$8#:\\u017E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0134/E#;\\xE6/<$;\\u0135/3$;\\u023F/*$8$:\\u0180$##\\\"!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017F\"),peg$decode(\"<%;\\u01E8/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u0182$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0181\"),peg$decode(\"%;\\u0136/F#;\\u0137.\\\" &\\\"/8$;\\u0140.\\\" &\\\"/*$8#:\\u0183##\\\"! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0213/D#;\\u023F/;$;\\u0187/2$;\\u023F/)$8$:\\u0185$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0184\"),peg$decode(\"%;\\u0139/B#;\\u023F/9$$;\\u01380#*;\\u0138&/)$8#:\\u0186#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0139/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<;\\u013A.# &;\\u013F=.\\\" 7\\u0187\"),peg$decode(\"%;\\u0209/T#;\\u023F/K$;\\u01D9.# &;\\u022A/<$;\\u023F/3$;\\u013B/*$8%:\\u0188%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u013C.) &;\\u013D.# &;\\u013E=.\\\" 7\\u0189\"),peg$decode(\"%;\\u0220/J#;\\u023F/A$;\\u0206.# &;\\u01D6/2$;\\u023F/)$8$:\\u018A$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01C7.# &;\\u0219/1#;\\u023F/($8\\\":\\u018B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u0203/D#;\\u023F/;$;\\u01B8/2$;\\u023F/)$8$:\\u018C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0201/D#;\\u023F/;$;\\u0195/2$;\\u023F/)$8$:\\u018D$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/J#;\\u01D7/A$;\\u023F/8$;\\u0141.\\\" &\\\"/*$8$:\\u018F$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u018E\"),peg$decode(\"%;\\u01F4/J#;\\u023F/A$;\\u01D8.# &;\\u01F0/2$;\\u023F/)$8$:\\u0190$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0159/' 8!:\\u0191!! )\"),peg$decode(\"<%;\\u0144/c#;\\u0105.\\\" &\\\"/U$;\\u0183/L$;\\u023F/C$;\\u0146/:$;\\xB9.\\\" &\\\"/,$8&:\\u0193&%%$#! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0192\"),peg$decode(\"%;\\xFC/J#;\\u0145.\\\" &\\\"/<$;\\u01F2/3$;\\u023F/*$8$:\\u0194$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0229/1#;\\u023F/($8\\\":\\u0195\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/N#;\\u023F/E$;\\u017B/<$;\\u023F/3$;\\u0128/*$8%:\\u0197%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0196\"),peg$decode(\"<%;\\u0148/\\xA6#;\\u0105.\\\" &\\\"/\\x98$;\\u0184.\\\" &\\\"/\\x8A$;\\u023F/\\x81$;\\u0149/x$;\\u0209/o$;\\u023F/f$;\\u017B/]$;\\u023F/T$;\\u0151.\\\" &\\\"/F$;\\u0152.\\\" &\\\"/8$;\\u0153//$8,:\\u0199,(+*)'$\\\"! )(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0198\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0227/3$;\\u023F/*$8$:\\u019A$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u014A.\\\" &\\\"/2#;\\u014C/)$8\\\":\\u019C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u019B\"),peg$decode(\"%;\\u01C3.) &;\\u01BA.# &;\\u014B/1#;\\u023F/($8\\\":\\u019D\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F7/;#;\\u023F/2$;\\u0207/)$8#:\\u019E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u014D.# &;\\u014E=.\\\" 7\\u019F\"),peg$decode(\"%;\\u01D9.# &;\\u01F6/1#;\\u023F/($8\\\":\\u01A0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u022A/@#;\\u023F/7$;\\u014F.\\\" &\\\"/)$8#:\\u01A1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0207/;#;\\u023F/2$;\\u0150/)$8#:\\u01A2#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xE8/B#;\\u023F/9$$;\\xE70#*;\\xE7&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01E7/c#;\\u023F/Z$;\\u01DE/Q$;\\u023F/H$;\\u021C.) &3\\u01A3\\\"\\\"5)7\\u01A4/3$;\\u023F/*$8&:\\u01A5&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\u01A6$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01C4/W#;\\u023F/N$;\\u0154/E$;\\u023F/<$;\\u01E0/3$;\\u023F/*$8&:\\u01A8&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01A7\"),peg$decode(\"%$;\\u0155/�#*;\\u0155&&&#/' 8!:\\u01A9!! )\"),peg$decode(\"%;\\x8C/:#;\\u023F/1$;$/($8#:\\\"#!\\\")(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0158/T#;\\u0105.\\\" &\\\"/F$;\\u0157/=$;\\u023F/4$;\\u0159/+$8%:\\u01AB%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AA\"),peg$decode(\"%;\\u0185/;#;\\u023F/2$;\\xE6/)$8#:\\u01AC#\\\"\\\" )(#'#(\\\"'#&'#.# &;\\u0185\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u022E/3$;\\u023F/*$8$:\\u01AD$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01BF/D#;\\u023F/;$;\\xA8/2$;\\u023F/)$8$:\\u012C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u015B/f#;\\u0105.\\\" &\\\"/X$;\\u017B/O$;\\u023F/F$;\\u022B/=$;\\u023F/4$;\\u015C/+$8':\\u01AF'$&%$ )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AE\"),peg$decode(\"%;\\xFC/N#;\\u022F/E$;\\u023F/<$;\\u0221/3$;\\u023F/*$8%:\\u01B0%#$#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0197/@#;\\u023F/7$;\\u015D.\\\" &\\\"/)$8#:\\u01B1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/Z#;\\u023F/Q$;\\u015E.\\\" &\\\"/C$;\\u023F/:$;\\u01A1/1$;\\u023F/($8&:\\u01B3&!#)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B2\"),peg$decode(\"%;\\u0160/9#$;\\u015F0#*;\\u015F&/)$8\\\":\\u01B4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/H#;\\u01A2/?$;\\u023F/6$;\\u0160.\\\" &\\\"/($8$:\\u01B5$! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%%<%;\\u0195/;#;\\u023F/2$;&.# &;\\u0111/#$+#)(#'#(\\\"'#&'#=.##&&!&'#/:#;p/1$;\\u023F/($8#:\\u0130#!!)(#'#(\\\"'#&'#.x &%;\\u0161/n#%%<;\\u0193=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\";\\u0195.# &;\\u0198\"),peg$decode(\"<%;\\u0163/;#;\\u017B/2$;\\u023F/)$8#:\\u01B7#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u01B6\"),peg$decode(\"<%;\\u01DD/J#;\\u023F/A$;\\u0164/8$;\\u0165.\\\" &\\\"/*$8$:\\u01B9$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B8\"),peg$decode(\"<%;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u01BA\"),peg$decode(\"<%;\\u01EE/D#;\\u023F/;$;\\u01E4/2$;\\u023F/)$8$:\\u01BC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u01BB\"),peg$decode(\"<%;\\u01AE/,#;\\u01AE/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01BD\"),peg$decode(\"<;\\u01AA=.\\\" 7\\u01BE\"),peg$decode(\"<;\\u01AB=.\\\" 7\\u01BF\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u01C0\"),peg$decode(\"<;\\u01B5=.\\\" 7\\u01C1\"),peg$decode(\"<;\\u01AF=.\\\" 7\\u01C2\"),peg$decode(\"<%;\\u01B0/,#;\\u01B0/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C3\"),peg$decode(\"<%;\\u01B1/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C4\"),peg$decode(\"<;\\u01AD=.\\\" 7\\u01C5\"),peg$decode(\"<;\\u01AE=.\\\" 7\\u01C6\"),peg$decode(\"<;\\u01B0=.\\\" 7\\u01C7\"),peg$decode(\"<;\\u01B1=.\\\" 7\\u01C8\"),peg$decode(\"<%;\\u01B0/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C9\"),peg$decode(\"<%;\\u01B1/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CA\"),peg$decode(\"<%;\\u01AC/1#;\\u01AC.\\\" &\\\"/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%;\\u01B2/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01B0/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01FA/@#;\\u023F/7$;k.\\\" &\\\"/)$8#:\\u01CE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u01CD\"),peg$decode(\"<;\\u0195.# &;\\u0198=.\\\" 7\\u01CF\"),peg$decode(\"<%;\\u0178/' 8!:\\u01D1!! )=.\\\" 7\\u01D0\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D3\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D2\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D5\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D4\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":\\u01D6\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u017F.) &;\\u0180.# &;\\u017E/2#;\\u0178/)$8\\\":\\u01D8\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D7\"),peg$decode(\"%;\\u023F/& 8!:\\u01D9! )\"),peg$decode(\"%;\\u017C/2#;\\u0180/)$8\\\":\\u01DA\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DC!! )=.\\\" 7\\u01DB\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DE!! )=.\\\" 7\\u01DD\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E0\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01DF\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E1\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E4\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E3\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E6\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E5\"),peg$decode(\"<%;\\u0188.# &;\\u017B/1#;\\u023F/($8\\\":\\u01E8\\\"!!)(\\\"'#&'#=.\\\" 7\\u01E7\"),peg$decode(\"%;\\u017B/;#;\\u023F/2$;\\xE6/)$8#:\\u01E9#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01EB!! )=.\\\" 7\\u01EA\"),peg$decode(\"<%;\\u0178/' 8!:\\u01ED!! )=.\\\" 7\\u01EC\"),peg$decode(\"<%;\\u018C/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01EF\\\"!!)(\\\"'#&'#.\\xC5 &%;\\u018D/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F0\\\"!!)(\\\"'#&'#.\\x9B &%;\\u018F/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F1\\\"!!)(\\\"'#&'#.q &%;\\u0190/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F2\\\"!!)(\\\"'#&'#.G &%;\\u0192/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F3\\\"!!)(\\\"'#&'#=.\\\" 7\\u01EE\"),peg$decode(\"<%%3\\u01F5\\\"\\\"5!7\\u01F6.\\\" &\\\"/F#3\\u01F7\\\"\\\"5#7\\u01F8.\\\" &\\\"/2$3\\u01F9\\\"\\\"5$7\\u01FA/#$+#)(#'#(\\\"'#&'#.k &%3\\u01FB\\\"\\\"5$7\\u01FC.5 &3\\u01FD\\\"\\\"5&7\\u01FE.) &3\\u01FF\\\"\\\"5$7\\u0200.\\\" &\\\"/2#3\\u0201\\\"\\\"5$7\\u0202/#$+\\\")(\\\"'#&'#.) &3\\u0203\\\"\\\"5$7\\u0204/' 8!:\\u010B!! )=.\\\" 7\\u01F4\"),peg$decode(\"<%;\\u018E.5 &3\\u0206\\\"\\\"5%7\\u0207.) &3\\u0208\\\"\\\"5$7\\u0209/' 8!:\\u010B!! )=.\\\" 7\\u0205\"),peg$decode(\"<%3\\u020B\\\"\\\"5&7\\u020C/i#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u020D\\\"\\\"5)7\\u020E/#$+\\\")(\\\"'#&'#.\\\" &\\\"/)$8\\\":\\u020F\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u020A\"),peg$decode(\"<%3\\u0211\\\"\\\"5'7\\u0212.\\x95 &3\\u0213\\\"\\\"5'7\\u0214.\\x89 &3\\u0215\\\"\\\"5'7\\u0216.} &%3\\u0217\\\"\\\"5$7\\u0218/7#3\\u0219\\\"\\\"5$7\\u021A.\\\" &\\\"/#$+\\\")(\\\"'#&'#.S &%3\\u0219\\\"\\\"5$7\\u021A/7#3\\u021B\\\"\\\"5%7\\u021C.\\\" &\\\"/#$+\\\")(\\\"'#&'#.) &3\\u021D\\\"\\\"5&7\\u021E/' 8!:\\u010B!! )=.\\\" 7\\u0210\"),peg$decode(\"<%%3\\u0220\\\"\\\"5#7\\u0221/V#2\\u0222\\\"\\\"6\\u02227\\u0223.A &2\\u0224\\\"\\\"6\\u02247\\u0225.5 &2\\u0226\\\"\\\"6\\u02267\\u0227.) &3\\u0228\\\"\\\"5$7\\u0229/#$+\\\")(\\\"'#&'#.q &%3\\u022A\\\"\\\"5#7\\u022B.A &3\\u01FD\\\"\\\"5&7\\u01FE.5 &3\\u022C\\\"\\\"5%7\\u022D.) &3\\u01FB\\\"\\\"5$7\\u01FC.\\\" &\\\"/2#3\\u0220\\\"\\\"5#7\\u0221/#$+\\\")(\\\"'#&'#.# &;\\u0191/' 8!:\\u010B!! )=.\\\" 7\\u021F\"),peg$decode(\"%3\\u022E\\\"\\\"5(7\\u022F/d#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u0230\\\"\\\"5%7\\u0231/#$+\\\")(\\\"'#&'#/)$8\\\":\\u0232\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3\\u0234\\\"\\\"5$7\\u0235/' 8!:\\u010B!! )=.\\\" 7\\u0233\"),peg$decode(\"4\\u0236\\\"\\\"5!7\\u0237\"),peg$decode(\"%2\\u0238\\\"\\\"6\\u02387\\u0239/K#$4\\u023A\\\"\\\"5!7\\u023B/,#0)*4\\u023A\\\"\\\"5!7\\u023B&&&#/)$8\\\":\\u023C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0196.# &;\\u0197\"),peg$decode(\";\\u0199./ &;\\u019D.) &;\\u019B.# &;\\u019C\"),peg$decode(\"%%<;\\u0234.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\xD6\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<;\\u0236.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\u023D\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u019E/\\x99#;\\u023F/\\x90$%$%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0G*%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/\\\"!&,)/1$;\\u019A/($8$:\\u023F$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%$4\\u0240\\\"\\\"5!7\\u02410)*4\\u0240\\\"\\\"5!7\\u0241&/5#;\\u019F/,$;\\u023F/#$+#)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0242\\\"\\\"6\\u02427\\u0243/k#$2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u024705*2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u0247&/7$2\\u0242\\\"\\\"6\\u02427\\u0243/($8#:\\u0248#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0249\\\"\\\"6\\u02497\\u024A/k#$26\\\"\\\"6677.) &48\\\"\\\"5!7905*26\\\"\\\"6677.) &48\\\"\\\"5!79&/7$2\\u0249\\\"\\\"6\\u02497\\u024A/($8#:\\u024B#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u024C\\\"\\\"6\\u024C7\\u024D/k#$2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u025105*2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u0251&/7$2\\u024C\\\"\\\"6\\u024C7\\u024D/($8#:\\u0252#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%2\\u0254\\\"\\\"6\\u02547\\u0255/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0253\"),peg$decode(\"<%2\\u0257\\\"\\\"6\\u02577\\u0258/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0256\"),peg$decode(\"<%2\\u025A\\\"\\\"6\\u025A7\\u025B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0259\"),peg$decode(\"<%2\\u025D\\\"\\\"6\\u025D7\\u025E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025C\"),peg$decode(\"<%2\\u0260\\\"\\\"6\\u02607\\u0261/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025F\"),peg$decode(\"<%2\\u0263\\\"\\\"6\\u02637\\u0264/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0262\"),peg$decode(\"<%2\\u0266\\\"\\\"6\\u02667\\u0267/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0265\"),peg$decode(\"<%2\\u0269\\\"\\\"6\\u02697\\u026A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0268\"),peg$decode(\"<%2\\u0249\\\"\\\"6\\u02497\\u024A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026B\"),peg$decode(\"<%2\\u0242\\\"\\\"6\\u02427\\u0243/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026C\"),peg$decode(\"<%2\\u024C\\\"\\\"6\\u024C7\\u024D/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026D\"),peg$decode(\"<%2\\u026F\\\"\\\"6\\u026F7\\u0270/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026E\"),peg$decode(\"<%2\\u0272\\\"\\\"6\\u02727\\u0273/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0271\"),peg$decode(\"<%2\\u0275\\\"\\\"6\\u02757\\u0276/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0274\"),peg$decode(\"<%2\\u0277\\\"\\\"6\\u02777\\u0278/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%2\\u027A\\\"\\\"6\\u027A7\\u027B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0279\"),peg$decode(\"<%2\\u027D\\\"\\\"6\\u027D7\\u027E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u027C\"),peg$decode(\"<%2\\u027F\\\"\\\"6\\u027F7\\u0280/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C2\"),peg$decode(\"<%2\\u0281\\\"\\\"6\\u02817\\u0282/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C7\"),peg$decode(\"<%2\\u0283\\\"\\\"6\\u02837\\u0284/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C8\"),peg$decode(\"<%2\\u0286\\\"\\\"6\\u02867\\u0287/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0285\"),peg$decode(\"<%2\\u0289\\\"\\\"6\\u02897\\u028A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0288\"),peg$decode(\"<%2a\\\"\\\"6a7b/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028B\"),peg$decode(\"<%2\\u028D\\\"\\\"6\\u028D7\\u028E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028C\"),peg$decode(\"<%2\\u0290\\\"\\\"6\\u02907\\u0291/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028F\"),peg$decode(\"%3\\u0292\\\"\\\"5%7\\u0293/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0294\\\"\\\"5&7\\u0295/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0296\\\"\\\"5#7\\u0297/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0298\\\"\\\"5%7\\u0299/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029A\\\"\\\"5#7\\u029B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029C\\\"\\\"5%7\\u029D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029E\\\"\\\"5'7\\u029F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A0\\\"\\\"5#7\\u02A1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A2\\\"\\\"5\\\"7\\u02A3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A4\\\"\\\"5#7\\u02A5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A6\\\"\\\"5&7\\u02A7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A8\\\"\\\"5-7\\u02A9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AA\\\"\\\"5&7\\u02AB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AC\\\"\\\"5%7\\u02AD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AE\\\"\\\"5'7\\u02AF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B0\\\"\\\"5\\\"7\\u02B1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B2\\\"\\\"5'7\\u02B3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B4\\\"\\\"5$7\\u02B5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B6\\\"\\\"5$7\\u02B7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B8\\\"\\\"5%7\\u02B9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BA\\\"\\\"5'7\\u02BB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BC\\\"\\\"5&7\\u02BD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BE\\\"\\\"5&7\\u02BF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C0\\\"\\\"5(7\\u02C1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C2\\\"\\\"5*7\\u02C3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C4\\\"\\\"5&7\\u02C5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C6\\\"\\\"5%7\\u02C7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C8\\\"\\\"5,7\\u02C9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CA\\\"\\\"5,7\\u02CB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CC\\\"\\\"517\\u02CD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CE\\\"\\\"5(7\\u02CF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D0\\\"\\\"5'7\\u02D1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D2\\\"\\\"5*7\\u02D3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D4\\\"\\\"5(7\\u02D5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D6\\\"\\\"5&7\\u02D7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D8\\\"\\\"5$7\\u02D9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DA\\\"\\\"5&7\\u02DB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DC\\\"\\\"5(7\\u02DD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DE\\\"\\\"5$7\\u02DF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E0\\\"\\\"5$7\\u02E1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E2\\\"\\\"5$7\\u02E3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E4\\\"\\\"5#7\\u02E5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E6\\\"\\\"5&7\\u02E7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E8\\\"\\\"5&7\\u02E9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EA\\\"\\\"5)7\\u02EB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EC\\\"\\\"5&7\\u02ED/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EE\\\"\\\"5'7\\u02EF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F0\\\"\\\"5$7\\u02F1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F2\\\"\\\"5#7\\u02F3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F4\\\"\\\"5'7\\u02F5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F6\\\"\\\"5$7\\u02F7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F8\\\"\\\"5$7\\u02F9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FA\\\"\\\"5$7\\u02FB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FC\\\"\\\"5%7\\u02FD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FE\\\"\\\"5&7\\u02FF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0300\\\"\\\"5\\\"7\\u0301/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0302\\\"\\\"5&7\\u0303/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0304\\\"\\\"5)7\\u0305/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0306\\\"\\\"5\\\"7\\u0307/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0308\\\"\\\"5%7\\u0309/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030A\\\"\\\"5'7\\u030B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030C\\\"\\\"5)7\\u030D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030E\\\"\\\"5%7\\u030F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0310\\\"\\\"5&7\\u0311/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0312\\\"\\\"5'7\\u0313/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0314\\\"\\\"5)7\\u0315/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0316\\\"\\\"5$7\\u0317/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0318\\\"\\\"5\\\"7\\u0319/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031A\\\"\\\"5&7\\u031B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031C\\\"\\\"5$7\\u031D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031E\\\"\\\"5#7\\u031F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0320\\\"\\\"5$7\\u0321/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0322\\\"\\\"5$7\\u0323/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0324\\\"\\\"5%7\\u0325/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0326\\\"\\\"5%7\\u0327/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0328\\\"\\\"5'7\\u0329/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032A\\\"\\\"5\\\"7\\u032B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032C\\\"\\\"5#7\\u032D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032E\\\"\\\"5'7\\u032F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3y\\\"\\\"5$7z/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0330\\\"\\\"5\\\"7\\u0331/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0332\\\"\\\"5&7\\u0333/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0334\\\"\\\"5\\\"7\\u0335/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0336\\\"\\\"5\\\"7\\u0337/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0338\\\"\\\"5%7\\u0339/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033A\\\"\\\"5%7\\u033B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033C\\\"\\\"5$7\\u033D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033E\\\"\\\"5&7\\u033F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0340\\\"\\\"5'7\\u0341/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0342\\\"\\\"5%7\\u0343/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0344\\\"\\\"5%7\\u0345/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0346\\\"\\\"5)7\\u0347/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0348\\\"\\\"5*7\\u0349/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034A\\\"\\\"5&7\\u034B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034C\\\"\\\"5'7\\u034D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034E\\\"\\\"5'7\\u034F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0350\\\"\\\"5&7\\u0351/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0352\\\"\\\"5'7\\u0353/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0354\\\"\\\"5(7\\u0355/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0356\\\"\\\"5%7\\u0357/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0358\\\"\\\"5(7\\u0359/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035A\\\"\\\"5#7\\u035B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035C\\\"\\\"5%7\\u035D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035E\\\"\\\"5)7\\u035F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0360\\\"\\\"5&7\\u0361/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0362\\\"\\\"5#7\\u0363/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0364\\\"\\\"5%7\\u0365/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0366\\\"\\\"5$7\\u0367/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0368\\\"\\\"5)7\\u0369/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036A\\\"\\\"5$7\\u036B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036C\\\"\\\"5\\\"7\\u036D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036E\\\"\\\"5+7\\u036F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0370\\\"\\\"5'7\\u0371/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0372\\\"\\\"5%7\\u0373/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0374\\\"\\\"5&7\\u0375/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0376\\\"\\\"5&7\\u0377/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0378\\\"\\\"5%7\\u0379/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037A\\\"\\\"5&7\\u037B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037C\\\"\\\"5&7\\u037D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037E\\\"\\\"5$7\\u037F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0380\\\"\\\"5'7\\u0381/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0382\\\"\\\"5$7\\u0383/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0384\\\"\\\"5%7\\u0385/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0386\\\"\\\"5$7\\u0387/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0388\\\"\\\"5'7\\u0389/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%;\\u0235/' 8!:\\u038A!! )\"),peg$decode(\";\\u01B7.\\u02F9 &;\\u01B8.\\u02F3 &;\\u01B9.\\u02ED &;\\u01BA.\\u02E7 &;\\u01BB.\\u02E1 &;\\u01BC.\\u02DB &;\\u01BD.\\u02D5 &;\\u01BE.\\u02CF &;\\u01BF.\\u02C9 &;\\u01C0.\\u02C3 &;\\u01C1.\\u02BD &;\\u01C2.\\u02B7 &;\\u01C3.\\u02B1 &;\\u01C4.\\u02AB &;\\u01C5.\\u02A5 &;\\u01C6.\\u029F &;\\u01C7.\\u0299 &;\\u01C8.\\u0293 &;\\u01C9.\\u028D &;\\u01CA.\\u0287 &;\\u01CB.\\u0281 &;\\u01CC.\\u027B &;\\u01CD.\\u0275 &;\\u01CE.\\u026F &;\\u01CF.\\u0269 &;\\u01D0.\\u0263 &;\\u01D1.\\u025D &;\\u01D2.\\u0257 &;\\u01D3.\\u0251 &;\\u01D4.\\u024B &;\\u01D5.\\u0245 &;\\u01D6.\\u023F &;\\u01D7.\\u0239 &;\\u01D8.\\u0233 &;\\u01D9.\\u022D &;\\u01DA.\\u0227 &;\\u01DB.\\u0221 &;\\u01DC.\\u021B &;\\u01DD.\\u0215 &;\\u01DE.\\u020F &;\\u01DF.\\u0209 &;\\u01E0.\\u0203 &;\\u01E1.\\u01FD &;\\u01E2.\\u01F7 &;\\u01E3.\\u01F1 &;\\u01E4.\\u01EB &;\\u01E5.\\u01E5 &;\\u01E6.\\u01DF &;\\u01E7.\\u01D9 &;\\u01E8.\\u01D3 &;\\u01E9.\\u01CD &;\\u01EA.\\u01C7 &;\\u01EB.\\u01C1 &;\\u01EC.\\u01BB &;\\u01ED.\\u01B5 &;\\u01EE.\\u01AF &;\\u01EF.\\u01A9 &;\\u01F0.\\u01A3 &;\\u01F1.\\u019D &;\\u01F2.\\u0197 &;\\u01F3.\\u0191 &;\\u01F4.\\u018B &;\\u01F5.\\u0185 &;\\u01F6.\\u017F &;\\u01F7.\\u0179 &;\\u01F8.\\u0173 &;\\u01F9.\\u016D &;\\u01FA.\\u0167 &;\\u01FB.\\u0161 &;\\u01FC.\\u015B &;\\u01FD.\\u0155 &;\\u01FE.\\u014F &;\\u01FF.\\u0149 &;\\u0200.\\u0143 &;\\u0201.\\u013D &;\\u0202.\\u0137 &;\\u0203.\\u0131 &;\\u0204.\\u012B &;\\u0205.\\u0125 &;\\u0206.\\u011F &;\\u0207.\\u0119 &;\\u0208.\\u0113 &;\\u0209.\\u010D &;\\u020A.\\u0107 &;\\u020B.\\u0101 &;\\u020C.\\xFB &;\\u020D.\\xF5 &;\\u020E.\\xEF &;\\u020F.\\xE9 &;\\u0210.\\xE3 &;\\u0211.\\xDD &;\\u0212.\\xD7 &;\\u0213.\\xD1 &;\\u0214.\\xCB &;\\u0215.\\xC5 &;\\u0216.\\xBF &;\\u0217.\\xB9 &;\\u0218.\\xB3 &;\\u0219.\\xAD &;\\u021A.\\xA7 &;\\u021B.\\xA1 &;\\u021C.\\x9B &;\\u021E.\\x95 &;\\u021F.\\x8F &;\\u0220.\\x89 &;\\u0221.\\x83 &;\\u0223.} &;\\u0224.w &;\\u0225.q &;\\u0226.k &;\\u0227.e &;\\u0228._ &;\\u0229.Y &;\\u022A.S &;\\u022B.M &;\\u022C.G &;\\u022D.A &;\\u022E.; &;\\u022F.5 &;\\u0230./ &;\\u0231.) &;\\u0232.# &;\\u0233\"),peg$decode(\";\\u01B9.\\u0167 &;\\u01BB.\\u0161 &;\\u01BC.\\u015B &;\\u01BE.\\u0155 &;\\u01BF.\\u014F &;\\u01C2.\\u0149 &;\\u01C5.\\u0143 &;\\u01C8.\\u013D &;\\u01CA.\\u0137 &;\\u01CB.\\u0131 &;\\u01CD.\\u012B &;\\u01CF.\\u0125 &;\\u01D0.\\u011F &;\\u01D6.\\u0119 &;\\u01D7.\\u0113 &;\\u01D9.\\u010D &;\\u01DC.\\u0107 &;\\u01DD.\\u0101 &;\\u01DF.\\xFB &;\\u01E1.\\xF5 &;\\u01E2.\\xEF &;\\u01E4.\\xE9 &;\\u01E8.\\xE3 &;\\u01E9.\\xDD &;\\u01EC.\\xD7 &;\\u01ED.\\xD1 &;\\u01F1.\\xCB &;\\u01F2.\\xC5 &;\\u01F6.\\xBF &;\\u01F8.\\xB9 &;\\u01F9.\\xB3 &;\\u01FA.\\xAD &;\\u01FB.\\xA7 &;\\u01FC.\\xA1 &;\\u0200.\\x9B &;\\u0204.\\x95 &;\\u0205.\\x8F &;\\u0206.\\x89 &;\\u0209.\\x83 &;\\u020A.} &;\\u020B.w &;\\u020F.q &;\\u0213.k &;\\u021F.e &;\\u0220._ &;\\u0221.Y &;\\u0224.S &;\\u0225.M &;\\u0226.G &;\\u0228.A &;\\u0229.; &;\\u022A.5 &;\\u022B./ &;\\u022D.) &;\\u0230.# &;\\u0231\"),peg$decode(\";\\u0238.. &%;\\u0239/& 8!:\\u038B! )\"),peg$decode(\"<%2\\u038D\\\"\\\"6\\u038D7\\u038E/\\x87#$%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0M*%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#=.\\\" 7\\u038C\"),peg$decode(\"<%;\\u023A/5#;\\u023E/,$;\\u023B/#$+#)(#'#(\\\"'#&'#=.\\\" 7\\u0391\"),peg$decode(\"2\\u0392\\\"\\\"6\\u03927\\u0393\"),peg$decode(\"2\\u0394\\\"\\\"6\\u03947\\u0395\"),peg$decode(\"$%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#/P#0M*%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&&&#\"),peg$decode(\";\\u023C.# &;\\u0239\"),peg$decode(\"%;\\u023D/K#$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D0/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D&/#$+\\\")(\\\"'#&'#\"),peg$decode(\"<%$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u02370/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u0237&/' 8!:-!! )=.\\\" 7\\u0398\"),peg$decode(\"2\\u0399\\\"\\\"6\\u03997\\u039A\")];var peg$currPos=0;var peg$savedPos=0;var peg$posDetailsCache=[{line:1,column:1}];var peg$maxFailPos=0;var peg$maxFailExpected=[];var peg$silentFails=0;var peg$resultsCache={};var peg$ruleNames=[\"start\",\"start_streaming\",\"stmt_list\",\"semi_optional\",\"semi_required\",\"stmt_list_tail\",\"type_definition\",\"type_definition_types\",\"datatype_custom\",\"datatype_word_tail\",\"type_definition_args\",\"definition_args_loop\",\"literal_value\",\"literal_null\",\"literal_date\",\"literal_string\",\"literal_string_single\",\"literal_string_schar\",\"literal_blob\",\"literal_text\",\"number_sign\",\"literal_number_signed\",\"literal_number\",\"literal_number_decimal\",\"number_decimal_node\",\"number_decimal_full\",\"number_decimal_fraction\",\"number_decimal_exponent\",\"literal_number_hex\",\"number_hex\",\"number_digit\",\"bind_parameter\",\"bind_parameter_numbered\",\"bind_number_id\",\"bind_parameter_named\",\"bind_parameter_tcl\",\"tcl_suffix\",\"expression_exists\",\"expression_exists_ne\",\"expression_raise\",\"expression_raise_args\",\"raise_args_ignore\",\"raise_args_message\",\"expression_root\",\"expression_wrapped\",\"expression_recur\",\"expression_unary_collate\",\"expression_unary\",\"expression_unary_op\",\"expression_collate\",\"expression_concat\",\"expression_multiply\",\"expression_multiply_op\",\"expression_add\",\"expression_add_op\",\"expression_shift\",\"expression_shift_op\",\"expression_compare\",\"expression_compare_op\",\"expression_equiv\",\"expression_equiv_tails\",\"expression_equiv_null_op\",\"expression_equiv_op\",\"expression_cast\",\"type_alias\",\"expression_case\",\"case_expression\",\"expression_case_when\",\"expression_case_else\",\"expression_postfix\",\"expression_postfix_tail\",\"expression_like\",\"expression_escape\",\"expression_between\",\"expression_between_tail\",\"expression_is_not\",\"expression_in\",\"expression_in_target\",\"expression_list_or_select\",\"expression_and\",\"expression\",\"expression_list\",\"expression_list_loop\",\"expression_list_rest\",\"function_call\",\"function_call_args\",\"args_list_distinct\",\"error_message\",\"stmt\",\"stmt_modifier\",\"modifier_query\",\"stmt_nodes\",\"stmt_commit\",\"stmt_begin\",\"commit_transaction\",\"stmt_begin_modifier\",\"stmt_rollback\",\"rollback_savepoint\",\"savepoint_name\",\"savepoint_alt\",\"stmt_savepoint\",\"stmt_release\",\"stmt_alter\",\"alter_start\",\"alter_action\",\"alter_action_rename\",\"alter_action_add\",\"action_add_modifier\",\"stmt_crud\",\"stmt_core_with\",\"clause_with\",\"clause_with_recursive\",\"clause_with_tables\",\"clause_with_loop\",\"expression_cte\",\"select_alias\",\"select_wrapped\",\"stmt_select_full\",\"stmt_sqlite\",\"stmt_attach\",\"attach_arg\",\"stmt_detach\",\"stmt_vacuum\",\"vacuum_target\",\"stmt_analyze\",\"analyze_arg\",\"stmt_reindex\",\"reindex_arg\",\"stmt_pragma\",\"pragma_expression\",\"pragma_value\",\"pragma_value_literal\",\"pragma_value_bool\",\"pragma_bool_id\",\"pragma_value_name\",\"stmt_crud_types\",\"stmt_select\",\"stmt_core_order\",\"stmt_core_limit\",\"stmt_core_limit_offset\",\"limit_offset_variant\",\"limit_offset_variant_name\",\"select_loop\",\"select_loop_union\",\"select_parts\",\"select_parts_core\",\"select_core_select\",\"select_modifier\",\"select_modifier_distinct\",\"select_modifier_all\",\"select_target\",\"select_target_loop\",\"select_core_from\",\"stmt_core_where\",\"select_core_group\",\"select_core_having\",\"select_node\",\"select_node_star\",\"select_node_star_qualified\",\"select_node_aliased\",\"select_source\",\"source_loop_tail\",\"select_cross_clause\",\"select_join_clause\",\"table_or_sub\",\"table_or_sub_func\",\"table_qualified\",\"table_qualified_id\",\"table_or_sub_index_node\",\"index_node_indexed\",\"index_node_none\",\"table_or_sub_sub\",\"table_or_sub_select\",\"alias\",\"join_operator\",\"join_operator_natural\",\"join_operator_types\",\"operator_types_hand\",\"types_hand_outer\",\"operator_types_misc\",\"join_condition\",\"join_condition_on\",\"join_condition_using\",\"select_parts_values\",\"stmt_core_order_list\",\"stmt_core_order_list_loop\",\"stmt_core_order_list_item\",\"select_star\",\"stmt_fallback_types\",\"stmt_insert\",\"insert_keyword\",\"insert_keyword_ins\",\"insert_keyword_repl\",\"insert_keyword_mod\",\"insert_target\",\"insert_into\",\"insert_into_start\",\"insert_results\",\"loop_columns\",\"loop_column_tail\",\"loop_name\",\"insert_value\",\"insert_value_start\",\"insert_values_list\",\"insert_values_loop\",\"expression_list_wrapped\",\"insert_default\",\"operator_compound\",\"compound_union\",\"compound_union_all\",\"stmt_update\",\"update_start\",\"update_fallback\",\"update_set\",\"update_columns\",\"update_columns_tail\",\"update_column\",\"stmt_delete\",\"delete_start\",\"stmt_create\",\"create_start\",\"create_table_only\",\"create_index_only\",\"create_trigger_only\",\"create_view_only\",\"create_virtual_only\",\"create_table\",\"create_table_start\",\"create_core_tmp\",\"create_core_ine\",\"create_table_source\",\"table_source_def\",\"source_def_rowid\",\"source_def_loop\",\"source_def_tail\",\"source_tbl_loop\",\"source_def_column\",\"source_def_name\",\"column_type\",\"column_constraints\",\"column_constraint_tail\",\"column_constraint\",\"constraint_name\",\"constraint_name_loop\",\"column_constraint_types\",\"column_constraint_foreign\",\"column_constraint_primary\",\"col_primary_start\",\"col_primary_auto\",\"column_constraint_null\",\"constraint_null_types\",\"constraint_null_value\",\"column_constraint_check\",\"column_constraint_default\",\"column_default_values\",\"column_constraint_collate\",\"table_constraint\",\"table_constraint_types\",\"table_constraint_check\",\"table_constraint_primary\",\"primary_start\",\"primary_start_normal\",\"primary_start_unique\",\"primary_columns\",\"primary_columns_index\",\"primary_columns_table\",\"primary_column_tail\",\"primary_column\",\"primary_column_types\",\"column_collate\",\"column_collate_loop\",\"primary_column_dir\",\"primary_conflict\",\"primary_conflict_start\",\"constraint_check\",\"table_constraint_foreign\",\"foreign_start\",\"foreign_clause\",\"foreign_references\",\"foreign_actions\",\"foreign_actions_tail\",\"foreign_action\",\"foreign_action_on\",\"action_on_action\",\"on_action_set\",\"on_action_cascade\",\"on_action_none\",\"foreign_action_match\",\"foreign_deferrable\",\"deferrable_initially\",\"table_source_select\",\"create_index\",\"create_index_start\",\"index_unique\",\"index_on\",\"create_trigger\",\"create_trigger_start\",\"trigger_conditions\",\"trigger_apply_mods\",\"trigger_apply_instead\",\"trigger_do\",\"trigger_do_on\",\"trigger_do_update\",\"do_update_of\",\"do_update_columns\",\"trigger_foreach\",\"trigger_when\",\"trigger_action\",\"action_loop\",\"action_loop_stmt\",\"create_view\",\"id_view_expression\",\"create_view_start\",\"create_as_select\",\"create_virtual\",\"create_virtual_start\",\"virtual_module\",\"virtual_args\",\"virtual_args_loop\",\"virtual_args_tail\",\"virtual_arg_types\",\"virtual_column_name\",\"stmt_drop\",\"drop_start\",\"drop_types\",\"drop_ie\",\"binary_concat\",\"binary_plus\",\"binary_minus\",\"binary_multiply\",\"binary_divide\",\"binary_mod\",\"binary_left\",\"binary_right\",\"binary_and\",\"binary_or\",\"binary_lt\",\"binary_gt\",\"binary_lte\",\"binary_gte\",\"binary_equal\",\"binary_notequal_a\",\"binary_notequal_b\",\"binary_lang_isnt\",\"id_name\",\"id_database\",\"id_function\",\"id_table\",\"id_table_qualified\",\"id_column\",\"column_unqualified\",\"column_qualifiers\",\"id_column_qualified\",\"id_collation\",\"id_savepoint\",\"id_index\",\"id_trigger\",\"id_view\",\"id_pragma\",\"id_cte\",\"id_table_expression\",\"id_constraint_table\",\"id_constraint_column\",\"datatype_types\",\"datatype_text\",\"datatype_real\",\"datatype_real_double\",\"datatype_numeric\",\"datatype_integer\",\"datatype_integer_fp\",\"datatype_none\",\"name_char\",\"unicode_char\",\"name\",\"name_quoted\",\"name_unquoted\",\"name_reserved\",\"name_bracketed\",\"bracket_terminator\",\"name_dblquoted\",\"name_sglquoted\",\"name_backticked\",\"sym_bopen\",\"sym_bclose\",\"sym_popen\",\"sym_pclose\",\"sym_comma\",\"sym_dot\",\"sym_star\",\"sym_quest\",\"sym_sglquote\",\"sym_dblquote\",\"sym_backtick\",\"sym_tilde\",\"sym_plus\",\"sym_minus\",\"sym_equal\",\"sym_amp\",\"sym_pipe\",\"sym_mod\",\"sym_lt\",\"sym_gt\",\"sym_excl\",\"sym_semi\",\"sym_colon\",\"sym_fslash\",\"sym_bslash\",\"ABORT\",\"ACTION\",\"ADD\",\"AFTER\",\"ALL\",\"ALTER\",\"ANALYZE\",\"AND\",\"AS\",\"ASC\",\"ATTACH\",\"AUTOINCREMENT\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BY\",\"CASCADE\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"COMMIT\",\"CONFLICT\",\"CONSTRAINT\",\"CREATE\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"DATABASE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DELETE\",\"DESC\",\"DETACH\",\"DISTINCT\",\"DROP\",\"EACH\",\"ELSE\",\"END\",\"ESCAPE\",\"EXCEPT\",\"EXCLUSIVE\",\"EXISTS\",\"EXPLAIN\",\"FAIL\",\"FOR\",\"FOREIGN\",\"FROM\",\"FULL\",\"GLOB\",\"GROUP\",\"HAVING\",\"IF\",\"IGNORE\",\"IMMEDIATE\",\"IN\",\"INDEX\",\"INDEXED\",\"INITIALLY\",\"INNER\",\"INSERT\",\"INSTEAD\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"KEY\",\"LEFT\",\"LIKE\",\"LIMIT\",\"MATCH\",\"NATURAL\",\"NO\",\"NOT\",\"NOTNULL\",\"NULL\",\"OF\",\"OFFSET\",\"ON\",\"OR\",\"ORDER\",\"OUTER\",\"PLAN\",\"PRAGMA\",\"PRIMARY\",\"QUERY\",\"RAISE\",\"RECURSIVE\",\"REFERENCES\",\"REGEXP\",\"REINDEX\",\"RELEASE\",\"RENAME\",\"REPLACE\",\"RESTRICT\",\"RIGHT\",\"ROLLBACK\",\"ROW\",\"ROWID\",\"SAVEPOINT\",\"SELECT\",\"SET\",\"TABLE\",\"TEMP\",\"TEMPORARY\",\"THEN\",\"TO\",\"TRANSACTION\",\"TRIGGER\",\"UNION\",\"UNIQUE\",\"UPDATE\",\"USING\",\"VACUUM\",\"VALUES\",\"VIEW\",\"VIRTUAL\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\",\"reserved_words\",\"reserved_word_list\",\"reserved_critical_list\",\"comment\",\"comment_line\",\"comment_block\",\"comment_block_start\",\"comment_block_end\",\"comment_block_body\",\"block_body_nodes\",\"comment_block_feed\",\"o\",\"_TODO_\"];var peg$descNames=[null,null,null,null,null,null,\"Type Definition\",null,\"Custom Datatype Name\",null,\"Type Definition Arguments\",null,null,\"Null Literal\",\"Date Literal\",\"String Literal\",\"Single-quoted String Literal\",null,\"Blob Literal\",null,\"Number Sign\",null,null,null,\"Decimal Literal\",null,null,\"Decimal Literal Exponent\",\"Hexidecimal Literal\",null,null,\"Bind Parameter\",\"Numbered Bind Parameter\",null,\"Named Bind Parameter\",\"TCL Bind Parameter\",null,\"EXISTS Expression\",\"EXISTS Keyword\",\"RAISE Expression\",\"RAISE Expression Arguments\",\"IGNORE Keyword\",null,null,null,null,null,null,null,\"COLLATE Expression\",null,null,null,null,null,null,null,null,null,null,null,null,null,\"CAST Expression\",\"Type Alias\",\"CASE Expression\",null,\"WHEN Clause\",\"ELSE Clause\",null,null,\"Comparison Expression\",\"ESCAPE Expression\",\"BETWEEN Expression\",null,null,\"IN Expression\",null,null,null,null,\"Expression List\",null,null,\"Function Call\",\"Function Call Arguments\",null,\"Error Message\",\"Statement\",\"QUERY PLAN\",\"QUERY PLAN Keyword\",null,\"END Transaction Statement\",\"BEGIN Transaction Statement\",null,null,\"ROLLBACK Statement\",\"TO Clause\",null,null,\"SAVEPOINT Statement\",\"RELEASE Statement\",\"ALTER TABLE Statement\",\"ALTER TABLE Keyword\",null,\"RENAME TO Keyword\",\"ADD COLUMN Keyword\",null,null,\"WITH Clause\",null,null,null,null,\"Common Table Expression\",null,null,null,null,\"ATTACH Statement\",null,\"DETACH Statement\",\"VACUUM Statement\",null,\"ANALYZE Statement\",null,\"REINDEX Statement\",null,\"PRAGMA Statement\",null,null,null,null,null,null,null,\"SELECT Statement\",\"ORDER BY Clause\",\"LIMIT Clause\",\"OFFSET Clause\",null,null,null,\"Union Operation\",null,null,\"SELECT Results Clause\",\"SELECT Results Modifier\",null,null,null,null,\"FROM Clause\",\"WHERE Clause\",\"GROUP BY Clause\",\"HAVING Clause\",null,null,null,null,null,null,\"CROSS JOIN Operation\",\"JOIN Operation\",null,null,\"Qualified Table\",\"Qualified Table Identifier\",\"Qualfied Table Index\",null,null,\"SELECT Source\",\"Subquery\",\"Alias\",\"JOIN Operator\",null,null,null,null,null,\"JOIN Constraint\",\"Join ON Clause\",\"Join USING Clause\",\"VALUES Clause\",null,null,\"Ordering Expression\",\"Star\",\"Fallback Type\",\"INSERT Statement\",null,\"INSERT Keyword\",\"REPLACE Keyword\",\"INSERT OR Modifier\",null,\"INTO Clause\",\"INTO Keyword\",\"VALUES Clause\",\"Column List\",null,\"Column Name\",\"VALUES Clause\",\"VALUES Keyword\",null,null,\"Wrapped Expression List\",\"DEFAULT VALUES Clause\",\"Compound Operator\",\"UNION Operator\",null,\"UPDATE Statement\",\"UPDATE Keyword\",\"UPDATE OR Modifier\",\"SET Clause\",null,null,\"Column Assignment\",\"DELETE Statement\",\"DELETE Keyword\",\"CREATE Statement\",null,null,null,null,null,null,\"CREATE TABLE Statement\",null,null,\"IF NOT EXISTS Modifier\",null,\"Table Definition\",null,null,null,null,\"Column Definition\",null,\"Column Datatype\",null,null,\"Column Constraint\",null,\"CONSTRAINT Name\",null,\"FOREIGN KEY Column Constraint\",\"PRIMARY KEY Column Constraint\",\"PRIMARY KEY Keyword\",\"AUTOINCREMENT Keyword\",null,\"UNIQUE Column Constraint\",\"NULL Column Constraint\",\"CHECK Column Constraint\",\"DEFAULT Column Constraint\",null,\"COLLATE Column Constraint\",\"Table Constraint\",null,\"CHECK Table Constraint\",\"PRIMARY KEY Table Constraint\",null,\"PRIMARY KEY Keyword\",\"UNIQUE Keyword\",null,null,null,null,\"Indexed Column\",null,\"Collation\",null,\"Column Direction\",null,\"ON CONFLICT Keyword\",null,\"FOREIGN KEY Table Constraint\",\"FOREIGN KEY Keyword\",null,\"REFERENCES Clause\",null,null,\"FOREIGN KEY Action Clause\",null,\"FOREIGN KEY Action\",null,null,null,null,\"DEFERRABLE Clause\",null,null,\"CREATE INDEX Statement\",null,null,\"ON Clause\",\"CREATE TRIGGER Statement\",null,\"Conditional Clause\",null,null,\"Conditional Action\",null,null,null,null,null,\"WHEN Clause\",\"Actions Clause\",null,null,\"CREATE VIEW Statement\",null,null,null,\"CREATE VIRTUAL TABLE Statement\",null,null,\"Module Arguments\",null,null,null,null,\"DROP Statement\",\"DROP Keyword\",\"DROP Type\",\"IF EXISTS Keyword\",\"Or\",\"Add\",\"Subtract\",\"Multiply\",\"Divide\",\"Modulo\",\"Shift Left\",\"Shift Right\",\"Logical AND\",\"Logical OR\",\"Less Than\",\"Greater Than\",\"Less Than Or Equal\",\"Greater Than Or Equal\",\"Equal\",\"Not Equal\",\"Not Equal\",\"IS\",\"Identifier\",\"Database Identifier\",\"Function Identifier\",\"Table Identifier\",null,\"Column Identifier\",null,null,null,\"Collation Identifier\",\"Savepoint Identifier\",\"Index Identifier\",\"Trigger Identifier\",\"View Identifier\",\"Pragma Identifier\",\"CTE Identifier\",null,\"Table Constraint Identifier\",\"Column Constraint Identifier\",\"Datatype Name\",\"TEXT Datatype Name\",\"REAL Datatype Name\",\"DOUBLE Datatype Name\",\"NUMERIC Datatype Name\",\"INTEGER Datatype Name\",null,\"BLOB Datatype Name\",null,null,null,null,null,null,null,null,null,null,null,\"Open Bracket\",\"Close Bracket\",\"Open Parenthesis\",\"Close Parenthesis\",\"Comma\",\"Period\",\"Asterisk\",\"Question Mark\",\"Single Quote\",\"Double Quote\",\"Backtick\",\"Tilde\",\"Plus\",\"Minus\",\"Equal\",\"Ampersand\",\"Pipe\",\"Modulo\",\"Less Than\",\"Greater Than\",\"Exclamation\",\"Semicolon\",\"Colon\",\"Forward Slash\",\"Backslash\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"Line Comment\",\"Block Comment\",null,null,null,null,null,\"Whitespace\",null];var peg$tracer=\"tracer\"in options?options.tracer:new peg$DefaultTracer();var peg$result;if(\"startRule\"in options){if(!(options.startRule in peg$startRuleIndices)){throw new Error(\"Can't start parsing from rule \\\"\"+options.startRule+\"\\\".\");}peg$startRuleIndex=peg$startRuleIndices[options.startRule];}function text(){return input.substring(peg$savedPos,peg$currPos);}function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}function expected(description,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildStructuredError([peg$otherExpectation(description)],input.substring(peg$savedPos,peg$currPos),location);}function error(message,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location);}function peg$literalExpectation(text,ignoreCase){return{type:\"literal\",text:text,ignoreCase:ignoreCase};}function peg$classExpectation(parts,inverted,ignoreCase){return{type:\"class\",parts:parts,inverted:inverted,ignoreCase:ignoreCase};}function peg$anyExpectation(){return{type:\"any\"};}function peg$endExpectation(){return{type:\"end\"};}function peg$otherExpectation(description){return{type:\"other\",description:description};}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos];var p;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(ppeg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}peg$maxFailExpected.push(expected);}function peg$buildSimpleError(message,location){return new peg$SyntaxError(message,null,null,location);}function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location);}function peg$decode(s){return s.split(\"\").map(function(ch){return ch.charCodeAt(0)-32;});}function peg$parseRule(index){var bc=peg$bytecode[index];var ip=0;var ips=[];var end=bc.length;var ends=[];var stack=[];var startPos=peg$currPos;var params;peg$tracer.trace({type:\"rule.enter\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});var key=peg$currPos*545+index;var cached=peg$resultsCache[key];if(cached){peg$currPos=cached.nextPos;if(cached.result!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:cached.result,location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return cached.result;}while(true){while(ippeg$currPos){end=ip+3+bc[ip+1];ip+=3;}else{end=ip+3+bc[ip+1]+bc[ip+2];ip+=3+bc[ip+1];}break;case 18:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length)===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 19:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length).toLowerCase()===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 20:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(peg$consts[bc[ip+1]].test(input.charAt(peg$currPos))){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 21:stack.push(input.substr(peg$currPos,bc[ip+1]));peg$currPos+=bc[ip+1];ip+=2;break;case 22:stack.push(peg$consts[bc[ip+1]]);peg$currPos+=peg$consts[bc[ip+1]].length;ip+=2;break;case 23:stack.push(peg$FAILED);if(peg$silentFails===0){peg$fail(peg$consts[bc[ip+1]]);}ip+=2;break;case 24:peg$savedPos=stack[stack.length-1-bc[ip+1]];ip+=2;break;case 25:peg$savedPos=peg$currPos;ip++;break;case 26:params=bc.slice(ip+4,ip+4+bc[ip+3]).map(function(p){return stack[stack.length-1-p];});stack.splice(stack.length-bc[ip+2],bc[ip+2],peg$consts[bc[ip+1]].apply(null,params));ip+=4+bc[ip+3];break;case 27:stack.push(peg$parseRule(bc[ip+1]));ip+=2;break;case 28:peg$silentFails++;ip++;break;case 29:peg$silentFails--;ip++;break;default:throw new Error(\"Invalid opcode: \"+bc[ip]+\".\");}}if(ends.length>0){end=ends.pop();ip=ips.pop();}else{break;}}peg$resultsCache[key]={nextPos:peg$currPos,result:stack[0]};if(stack[0]!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:stack[0],location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return stack[0];}function makeArray(arr){if(!isOkay(arr)){return[];}return!Array.isArray(arr)?[arr]:arr;}function isOkay(obj){return obj!=null;}function foldString(parts){var glue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:' ';var folded=parts.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return\"\"+prev+nodeToString(cur)+glue;},'');return folded.trim();}function foldStringWord(parts){return foldString(parts,'');}function foldStringKey(parts){return foldString(parts).toLowerCase();}function flattenAll(arr){return arr.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return prev.concat(cur);},[]);}function unescape(str){var quoteChar=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'\\'';var re=new RegExp(quoteChar+\"{2}\",'g');return nodeToString(str).replace(re,quoteChar);}function nodeToString(){var node=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return makeArray(node).join('');}function textNode(node){return nodeToString(node).trim();}function keyNode(node){return textNode(node).toLowerCase();}function isArrayOkay(arr){return Array.isArray(arr)&&arr.length>0&&isOkay(arr[0]);}function composeBinary(first,rest){return rest.reduce(function(left,_ref7){var _ref8=_slicedToArray(_ref7,4);var x=_ref8[0];var operation=_ref8[1];var y=_ref8[2];var right=_ref8[3];return{'type':'expression','format':'binary','variant':'operation','operation':keyNode(operation),'left':left,'right':right};},first);}peg$result=peg$parseRule(peg$startRuleIndex);if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos=0;i-=1){if(func(arr[i])){return i;}}return-1;}function takeWhile(arr,func){var len=arr.length;var i=0;for(;i1){return false;}if(!deep){if(elem.indentation>bestNode.indentation){bestNode=elem;}else{deep=true;}}else if(/^(stmt)$/i.test(elem.rule)){deep=true;return true;}return true;});if(chain.length){location=bestNode.location;firstNode=chain.find(function(elem){return that.firstNodeRule.test(elem.description)&&elem.description!==bestNode.description&&elem.indentation!==bestNode.indentation;});if(firstNode!=null){if(this.statementRule.test(bestNode.description)&&this.statementRule.test(firstNode.description)){chainDetail=firstNode.description;}else{chainDetail=bestNode.description+' ('+firstNode.description+')';}}else{chainDetail=bestNode.description;}message='Syntax error found near '+chainDetail;Object.assign(err,{'message':message,'location':location});}return err;};return Tracer;}();\n\n},{}]},{},[1])(1)\n});","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n 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':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n var curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","'use strict'\n\nfunction isPromise (obj) {\n // via https://unpkg.com/is-promise@2.1.0/index.js\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction registerPromiseWorker (callback) {\n function postOutgoingMessage (e, messageId, error, result) {\n function postMessage (msg) {\n /* istanbul ignore if */\n if (typeof self.postMessage !== 'function') { // service worker\n e.ports[0].postMessage(msg)\n } else { // web worker\n self.postMessage(msg)\n }\n }\n if (error) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined' && 'error' in console) {\n // This is to make errors easier to debug. I think it's important\n // enough to just leave here without giving the user an option\n // to silence it.\n console.error('Worker caught an error:', error)\n }\n postMessage([messageId, {\n message: error.message\n }])\n } else {\n postMessage([messageId, null, result])\n }\n }\n\n function tryCatchFunc (callback, message) {\n try {\n return { res: callback(message) }\n } catch (e) {\n return { err: e }\n }\n }\n\n function handleIncomingMessage (e, callback, messageId, message) {\n var result = tryCatchFunc(callback, message)\n\n if (result.err) {\n postOutgoingMessage(e, messageId, result.err)\n } else if (!isPromise(result.res)) {\n postOutgoingMessage(e, messageId, null, result.res)\n } else {\n result.res.then(function (finalResult) {\n postOutgoingMessage(e, messageId, null, finalResult)\n }, function (finalError) {\n postOutgoingMessage(e, messageId, finalError)\n })\n }\n }\n\n function onIncomingMessage (e) {\n var payload = e.data\n if (!Array.isArray(payload) || payload.length !== 2) {\n // message doens't match communication format; ignore\n return\n }\n var messageId = payload[0]\n var message = payload[1]\n\n if (typeof callback !== 'function') {\n postOutgoingMessage(e, messageId, new Error(\n 'Please pass a function into register().'))\n } else {\n handleIncomingMessage(e, callback, messageId, message)\n }\n }\n\n self.addEventListener('message', onIncomingMessage)\n}\n\nmodule.exports = registerPromiseWorker\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n 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]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n 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);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n do {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n } while (true);\n};\n\nEC.prototype._truncateToN = function truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; true; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n\n if (!this.curve._maxwellTrick) {\n var p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n var p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","module.exports = require('./readable').PassThrough\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = require('./readable').Transform\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n 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);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","module.exports = require('events').EventEmitter;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.6b687a75.js b/js/app.6b687a75.js new file mode 100644 index 0000000..77999fc --- /dev/null +++ b/js/app.6b687a75.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var n,s,o=t[0],c=t[1],l=t[2],u=0,M=[];u0&&e.paneBefore.size>0}]},[100===e.after.max&&e.paneAfter.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneBefore)}}},[n("img",{staticClass:"direction-icon",style:e.directionBeforeIconStyle,attrs:{src:i("0ca3")}})]):e._e(),100===e.before.max&&e.paneBefore.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneAfter)}}},[n("img",{staticClass:"direction-icon",style:e.directionAfterIconStyle,attrs:{src:i("0ca3")}})]):e._e()])]),n("div",{ref:"right",staticClass:"splitpanes-pane",style:e.styles.after},[e._t("right-pane")],2)])}),h=[],I=i("5530"),m=i("ade3"),N={getCurrentMouseDrag:function(e,t){var i=t.getBoundingClientRect(),n="ontouchstart"in window&&e.touches?e.touches[0]:e,a=n.clientX,r=n.clientY;return{x:a-i.left,y:r-i.top}},getCurrentDragPercentage:function(e,t,i){var n=this.getCurrentMouseDrag(e,t);n=n[i?"y":"x"];var a=t[i?"clientHeight":"clientWidth"];return 100*n/a},calculateOffset:function(e,t){var i=t.container,n=t.isHorisontal,a=t.paneBeforeMax,r=t.paneAfterMax,s=this.getCurrentDragPercentage(e,i,n),o=a<100&&s>=a,c=r<100&&s<=100-r;return o||c?o?a:Math.max(100-r,0):Math.min(Math.max(s,0),a)}},f={name:"Splitpanes",props:{horizontal:{type:Boolean,default:!1},before:{type:Object},after:{type:Object}},data:function(){return{container:null,paneBefore:this.before,paneAfter:this.after,beforeMinimising:{before:this.before.size,after:this.after.size},dragging:!1,movableSplitter:{top:0,left:0,visibility:"hidden"}}},computed:{styles:function(){return{before:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneBefore.size,"%")),after:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneAfter.size,"%"))}},movableSplitterStyle:function(){var e=Object(I["a"])({},this.movableSplitter);return e.top+="%",e.left+="%",e},directionBeforeIconStyle:function(){var e=0!==this.paneBefore.size,t="translate(-50%, -50%) ",i="";return i=this.horizontal?e?"rotate(90deg)":"rotate(-90deg)":e?"rotate(0deg)":"rotate(180deg)",{transform:t+i}},directionAfterIconStyle:function(){var e=0!==this.paneAfter.size,t="translate(-50%, -50%)",i="";return i=this.horizontal?e?"rotate(-90deg)":"rotate(90deg)":e?"rotate(180deg)":"rotate(0deg)",{transform:t+i}}},methods:{bindEvents:function(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents:function(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseMove:function(e){e.preventDefault(),this.dragging=!0,this.movableSplitter.visibility="visible",this.moveSplitter(e)},onMouseUp:function(){if(this.dragging){var e=this.horizontal?this.movableSplitter.top:this.movableSplitter.left;this.paneBefore.size=e,this.paneAfter.size=100-e,this.movableSplitter={top:0,left:0,visibility:"hidden"},this.dragging=!1}this.unbindEvents()},moveSplitter:function(e){var t={container:this.container,paneBeforeMax:this.paneBefore.max,paneAfterMax:this.paneAfter.max,isHorisontal:this.horizontal},i=N.calculateOffset(e,t),n=this.horizontal?"top":"left";this.movableSplitter[n]=i},togglePane:function(e){if(e.size>0){this.beforeMinimising.before=this.paneBefore.size,this.beforeMinimising.after=this.paneAfter.size,e.size=0;var t=e===this.paneBefore?this.paneAfter:this.paneBefore;t.size=100-e.size}else this.paneBefore.size=this.beforeMinimising.before,this.paneAfter.size=this.beforeMinimising.after}},mounted:function(){this.container=this.$refs.container}},v=f,D=(i("a1f0"),Object(s["a"])(v,p,h,!1,null,null,null)),j=D.exports,y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"schema-container"}},[i("div",{attrs:{id:"schema-filter"}},[i("text-field",{attrs:{placeholder:"Search table",width:"100%"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1),i("div",{attrs:{id:"db"}},[i("div",{staticClass:"db-name",on:{click:function(t){e.schemaVisible=!e.schemaVisible}}},[i("tree-chevron",{directives:[{name:"show",rawName:"v-show",value:e.schema.length>0,expression:"schema.length > 0"}],attrs:{expanded:e.schemaVisible}}),e._v(" "+e._s(e.dbName)+" ")],1),i("db-uploader",{attrs:{id:"db-edit",type:"small"}}),i("export-icon",{attrs:{tooltip:"Export database"},on:{click:e.exportToFile}}),i("add-table-icon",{on:{click:e.addCsv}})],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.schemaVisible,expression:"schemaVisible"}],staticClass:"schema"},e._l(e.schema,(function(e){return i("table-description",{key:e.name,attrs:{name:e.name,columns:e.columns}})})),1),i("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.$store.state.db,"dialog-name":"addCsv"}})],1)},b=[],C=(i("4de4"),i("b0c0"),i("ac1f"),i("5319"),i("2b3d"),{isDatabase:function(e){var t=["application/vnd.sqlite3","application/x-sqlite3"];return e.type?t.includes(e.type):/\.(db|sqlite(3)?)+$/.test(e.name)},getFileName:function(e){return e.name.replace(/\.[^.]+$/,"")},downloadFromUrl:function(e,t){var i=document.createElement("a");i.href=e,i.download=t,i.click(),URL.revokeObjectURL(e)},exportToFile:function(e,t){var i=arguments,n=this;return Object(u["a"])(regeneratorRuntime.mark((function a(){var r,s,o;return regeneratorRuntime.wrap((function(a){while(1)switch(a.prev=a.next){case 0:r=i.length>2&&void 0!==i[2]?i[2]:"octet/stream",s=new Blob([e],{type:r}),o=URL.createObjectURL(s),n.downloadFromUrl(o,t);case 4:case"end":return a.stop()}}),a)})))()},getFileFromUser:function(e){return new Promise((function(t){var i=document.createElement("input");i.type="file",i.accept=e,i.addEventListener("change",(function(){var e=i.files[0];t(e)})),i.click()}))},importFile:function(){var e=new FileReader;return this.getFileFromUser(".json").then((function(t){return new Promise((function(i,n){e.onload=function(e){i(e.target.result)},e.readAsText(t)}))}))},readFile:function(e){return fetch(e)},readAsArrayBuffer:function(e){var t=new FileReader;return new Promise((function(i,n){t.onerror=function(){t.abort(),n(new Error("Problem parsing input file."))},t.onload=function(){i(t.result)},t.readAsArrayBuffer(e)}))}}),z=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"table-name",on:{click:function(t){e.colVisible=!e.colVisible}}},[i("tree-chevron",{attrs:{expanded:e.colVisible}}),e._v(" "+e._s(e.name)+" ")],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.colVisible,expression:"colVisible"}],staticClass:"columns"},e._l(e.columns,(function(t,n){return i("div",{key:n,staticClass:"column"},[e._v(" "+e._s(t.name)+" "),i("span",{staticClass:"column-type"},[e._v(e._s(t.type))])])})),0)])},T=[],w=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{staticClass:"chevron-icon",style:{transform:e.expanded?"rotate(90deg)":"rotate(0)"},attrs:{width:"9",height:"9",viewBox:"0 0 8 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z",fill:e.expanded?"#506784":"rgba(80, 103, 132, 0.5)"}})])},x=[],O={name:"treeChevron",props:{expanded:{type:Boolean,required:!0}}},A=O,L=(i("2edc"),Object(s["a"])(A,w,x,!1,null,"bfc135e8",null)),k=L.exports,E={name:"TableDescription",components:{TreeChevron:k},props:["name","columns"],data:function(){return{colVisible:!1}}},S=E,Q=(i("dfd4"),Object(s["a"])(S,z,T,!1,null,"060be7fb",null)),U=Q.exports,Y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.label?i("div",{class:["text-field-label",{error:e.errorMsg},{disabled:e.disabled}]},[e._v(" "+e._s(e.label)+" "),e.hint?i("hint-icon",{staticClass:"hint",attrs:{hint:e.hint,"max-width":e.maxHintWidth||"149px"}}):e._e()],1):e._e(),i("input",{class:{error:e.errorMsg},style:{width:e.width},attrs:{type:"text",placeholder:e.placeholder,disabled:e.disabled},domProps:{value:e.value},on:{input:function(t){return e.$emit("input",t.target.value)}}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.errorMsg,expression:"errorMsg"}],staticClass:"text-field-error"},[e._v(e._s(e.errorMsg))])])},Z=[],P=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"hint-icon",attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:Object.assign({},e.tooltipStyle,{maxWidth:e.maxWidth})},[e._v(" "+e._s(e.hint)+" ")])])},_=[],q=(i("1276"),{data:function(){return{tooltipStyle:{visibility:"hidden"}}},computed:{tooltipElement:function(){return this.$refs.tooltip}},methods:{showTooltip:function(e,t){var i=t?t.split("-"):["top","right"],n=12;"top"===i[0]?this.tooltipStyle.top=e.clientY-n+"px":this.tooltipStyle.top=e.clientY+n+"px","right"===i[1]?this.tooltipStyle.left=e.clientX+n+"px":this.tooltipStyle.left=e.clientX-n-this.tooltipElement.offsetWidth+"px",this.tooltipStyle.visibility="visible"},hideTooltip:function(){this.tooltipStyle.visibility="hidden"}}}),V={name:"HintIcon",props:["hint","maxWidth"],mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},R=V,B=(i("80ad"),Object(s["a"])(R,P,_,!1,null,"30581f31",null)),G=B.exports,H={name:"textField",props:["placeholder","label","errorMsg","value","width","hint","maxHintWidth","disabled"],components:{HintIcon:G}},$=H,W=(i("daef"),Object(s["a"])($,Y,Z,!1,null,"59fd41a8",null)),F=W.exports,J=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"db-uploader-container",style:{width:e.width}},["small"===e.type?n("change-db-icon",{on:{click:e.browse}}):e._e(),"illustrated"===e.type?n("div",{staticClass:"drop-area-container"},[n("div",{staticClass:"drop-area",on:{dragover:function(t){t.preventDefault(),e.state="dragover"},dragleave:function(t){t.preventDefault(),e.state=""},drop:function(t){return t.preventDefault(),e.drop(t)},click:e.browse}},[n("div",{staticClass:"text"},[e._v(" Drop the database or CSV file here or click to choose a file from your computer. ")])])]):e._e(),"illustrated"===e.type?n("div",{attrs:{id:"img-container"}},[n("img",{attrs:{id:"drop-file-top-img",src:i("3a016")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"left-arm-img",src:i("9bf4")}}),n("img",{ref:"fileImg",class:{swing:"dragover"===e.state,fly:"dropping"===e.state,hidden:"dropped"===e.state},attrs:{id:"file-img",src:i("87d4")}}),n("img",{attrs:{id:"drop-file-bottom-img",src:i("6a0b")}}),n("img",{attrs:{id:"body-img",src:i("1678")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"right-arm-img",src:i("2335")}})]):e._e(),n("div",{staticClass:"error",attrs:{id:"error"}}),n("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.newDb,"dialog-name":"importFromCsv"},on:{cancel:e.cancelCsvImport,finish:e.finish}})],1)},X=[],K=(i("2ca0"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"db-edit-icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Load another database or CSV ")])])}),ee=[],te={name:"changeDbIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ie=te,ne=(i("637d"),Object(s["a"])(ie,K,ee,!1,null,"2c7f445c",null)),ae=ne.exports,re=i("d4ec"),se=i("bee2"),oe=(i("159b"),i("53ca")),ce=i("3835"),le=(i("d81d"),i("b64b"),i("fb6a"),i("99af"),i("6283")),ue=i.n(le),de={generateChunks:regeneratorRuntime.mark((function e(t,i){var n,a,r,s,o,c,l,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:n=Object.keys(t).map((function(e){return t[e]})),a=Object(ce["a"])(n,1),r=a[0],s=r.map((function(e,t){return n.map((function(e){return e[t]}))})),o=Math.ceil(s.length/i),c=0;case 5:if(!(c<=o-1)){e.next=13;break}return l=i*c,u=l+i,e.next=10,s.slice(l,u);case 10:c++,e.next=5;break;case 13:case"end":return e.stop()}}),e)})),getInsertStmt:function(e,t){var i='"'.concat(t.join('", "'),'"'),n=t.map((function(){return"?"})).join(", ");return'INSERT INTO "'.concat(e,'" (').concat(i,") VALUES (").concat(n,");")},getCreateStatement:function(e,t){var i='CREATE table "'.concat(e,'"(');for(var n in t){var a=t[n][0],r="";switch(Object(oe["a"])(a)){case"number":r="REAL";break;case"boolean":r="INTEGER";break;case"string":r="TEXT";break;default:r="TEXT"}i+='"'.concat(n,'" ').concat(r,", ")}return i=i.replace(/,\s$/,");"),i},getAst:function(e){var t=e.replace(/(tokenize=[^,]+)"tokenchars=.+?"/,"$1").replace(/(tokenize=[^,]+)"remove_diacritics=.+?"/,"$1").replace(/(tokenize=[^,]+)"separators=.+?"/,"$1").replace(/tokenize=.+?(,|\))/,"tokenize=unicode61$1");return ue()(t)},getColumns:function(e){var t=[],i=this.getAst(e),n="table"===i.statement[0].format?i.statement[0].definition:i.statement[0].result.args.expression;return n.forEach((function(e){if("column"===e.variant&&["identifier","definition"].includes(e.type)){var i=e.datatype?e.datatype.variant:"N/A";e.datatype&&e.datatype.args&&(i=i+"("+e.datatype.args.expression[0].value,2===e.datatype.args.expression.length&&(i=i+", "+e.datatype.args.expression[1].value),i+=")"),t.push({name:e.name,type:i})}})),t}};function Me(){return new Worker(i.p+"js/_worker.289a3d4b.worker.js")}var ge=i("ebb0"),pe=i.n(ge);function he(){var e=new Me;return new Ne(e)}var Ie={getNewDatabase:he},me=0,Ne=function(){function e(t){var i=this;Object(re["a"])(this,e),this.dbName=null,this.schema=null,this.worker=t,this.pw=new pe.a(t),this.importProgresses={},t.addEventListener("message",(function(e){var t=e.data.progress;if(void 0!==t){var n=e.data.id;i.importProgresses[n].dispatchEvent(new CustomEvent("progress",{detail:t}))}}))}return Object(se["a"])(e,[{key:"shutDown",value:function(){this.worker.terminate()}},{key:"createProgressCounter",value:function(e){var t=me++;return this.importProgresses[t]=new EventTarget,this.importProgresses[t].addEventListener("progress",(function(t){e(t.detail)})),t}},{key:"deleteProgressCounter",value:function(e){delete this.importProgresses[e]}},{key:"addTableFromCsv",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"import",data:i,progressCounterId:n,tabName:t});case 2:if(a=e.sent,!a.error){e.next=5;break}throw new Error(a.error);case 5:this.dbName=this.dbName||"database",this.refreshSchema();case 7:case"end":return e.stop()}}),e,this)})));function t(t,i,n){return e.apply(this,arguments)}return t}()},{key:"loadDb",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return e.next=3,C.readAsArrayBuffer(t);case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=null;case 7:return i=e.t0,e.next=10,this.pw.postMessage({action:"open",buffer:i});case 10:if(n=e.sent,!n.error){e.next=13;break}throw new Error(n.error);case 13:this.dbName=t?C.getFileName(t):"database",this.refreshSchema();case 15:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"refreshSchema",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t="\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n ",e.next=3,this.execute(t);case 3:i=e.sent,n=[],i&&i.values&&i.values.name&&i.values.name.forEach((function(e,t){n.push({name:e,columns:de.getColumns(i.values.sql[t])})})),this.schema=n;case 7:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"execute",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"reopen"});case 2:return e.next=4,this.pw.postMessage({action:"exec",sql:t});case 4:if(i=e.sent,!i.error){e.next=7;break}throw new Error(i.error);case 7:return e.abrupt("return",i[i.length-1]);case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"export",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"export"});case 2:if(i=e.sent,!i.error){e.next=5;break}throw new Error(i.error);case 5:C.exportToFile(i,t);case 6:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"validateTableName",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t.startsWith("sqlite_")){e.next=2;break}throw new Error("Table name can't start with sqlite_");case 2:if(!/[^\w]/.test(t)){e.next=4;break}throw new Error("Table name can contain only letters, digits and underscores");case 4:if(!/^(\d)/.test(t)){e.next=6;break}throw new Error("Table name can't start with a digit");case 6:return e.next=8,this.execute('BEGIN; CREATE TABLE "'.concat(t,'"(id); ROLLBACK;'));case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"sanitizeTableName",value:function(e){return e.replace(/[^\w]/g,"_").replace(/^(\d)/,"_$1").replace(/_{2,}/g,"_")}}]),e}(),fe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("modal",{attrs:{name:e.dialogName,classes:"dialog",height:"auto",width:"80%",scrollable:"",clickToClose:!1}},[i("div",{staticClass:"dialog-header"},[e._v(" CSV import "),i("close-icon",{attrs:{disabled:e.disableDialog},on:{click:e.cancelCsvImport}})],1),i("div",{staticClass:"dialog-body"},[i("text-field",{attrs:{label:"Table name",width:"484px",disabled:e.disableDialog,"error-msg":e.tableNameError,id:"csv-table-name"},model:{value:e.tableName,callback:function(t){e.tableName=t},expression:"tableName"}}),i("div",{staticClass:"chars"},[i("delimiter-selector",{staticClass:"char-input",attrs:{width:"210px",disabled:e.disableDialog},on:{input:e.previewCsv},model:{value:e.delimiter,callback:function(t){e.delimiter=t},expression:"delimiter"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Quote char",hint:"The character used to quote fields.",width:"93px",disabled:e.disableDialog,id:"quote-char"},model:{value:e.quoteChar,callback:function(t){e.quoteChar=t},expression:"quoteChar"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Escape char",hint:'The character used to escape the quote character within a field (e.g. "column with ""quotes"" in text").',"max-hint-width":"242px",width:"93px",disabled:e.disableDialog,id:"escape-char"},model:{value:e.escapeChar,callback:function(t){e.escapeChar=t},expression:"escapeChar"}})],1),i("check-box",{attrs:{init:!0,label:"Use first row as column headers",disabled:e.disableDialog},on:{click:function(t){e.header=t}}}),e.previewData&&(e.previewData.rowCount>0||Object.keys(e.previewData).length>0)?i("sql-table",{staticClass:"preview-table",attrs:{"data-set":e.previewData,preview:!0}}):i("div",{staticClass:"no-data"},[e._v("No data")]),i("logs",{staticClass:"import-csv-errors",attrs:{messages:e.importCsvMessages}})],1),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",attrs:{disabled:e.disableDialog,id:"csv-cancel"},on:{click:e.cancelCsvImport}},[e._v(" Cancel ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:!e.importCsvCompleted,expression:"!importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-import"},on:{click:function(t){return e.loadFromCsv(e.file)}}},[e._v(" Import ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:e.importCsvCompleted,expression:"importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-finish"},on:{click:e.finish}},[e._v(" Finish ")])])])},ve=[],De=(i("498a"),i("369b")),je=i.n(De),ye={MissingQuotes:"Edit your CSV so that the field has a closing quote char.",TooFewFields:"Add fields or try another delimiter.",TooManyFields:"Edit your CSV or try another delimiter."},be={getResult:function(e){var t={columns:[]},i={};if(e.meta.fields)e.meta.fields.forEach((function(n){var a=n.trim();t.columns.push(a),i[a]=e.data.map((function(e){var t=e[n];return t instanceof Date&&(t=t.toISOString()),t}))}));else for(var n=function(n){var a="col".concat(n+1);t.columns.push(a),i[a]=e.data.map((function(e){var t=e[n];return t instanceof Date&&(t=t.toISOString()),t}))},a=0;a<=e.data[0].length-1;a++)n(a);return t.values=i,t},parse:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,a){var r={delimiter:"",newline:"",quoteChar:'"',escapeChar:'"',header:!1,transformHeader:void 0,dynamicTyping:!0,preview:0,encoding:"UTF-8",worker:!0,comments:!1,step:void 0,complete:function(e){var i={data:t.getResult(e),delimiter:e.meta.delimiter,hasErrors:!1,rowCount:e.data.length};i.messages=e.errors.map((function(e){return e.type="UndetectableDelimiter"===e.code?"info":"error","error"===e.type&&(i.hasErrors=!0),e.hint=ye[e.code],e})),n(i)},error:function(e,t){a(e)},download:!1,downloadRequestHeaders:void 0,downloadRequestBody:void 0,skipEmptyLines:"greedy",chunk:void 0,chunkSize:void 0,fastMode:void 0,beforeFirstChunk:void 0,withCredentials:void 0,transform:void 0,delimitersToGuess:[",","\t","|",";",je.a.RECORD_SEP,je.a.UNIT_SEP]};je.a.parse(e,Object(I["a"])(Object(I["a"])({},r),i))}))}},Ce=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["icon",{disabled:e.disabled}],attrs:{width:e.size,height:e.size,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},on:{click:function(t){return t.stopPropagation(),e.$emit("click")}}},[i("path",{attrs:{d:"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z",fill:"#A2B1C6"}})])},ze=[],Te=(i("a9e3"),{name:"CloseIcon",props:{size:{type:Number,required:!1,default:14},disabled:{type:Boolean,required:!1,default:!1}}}),we=Te,xe=(i("f4da"),Object(s["a"])(we,Ce,ze,!1,null,"86f3a16c",null)),Oe=xe.exports,Ae=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:{disabled:e.disabled}},[i("div",{staticClass:"text-field-label"},[e._v("Delimiter")]),i("div",{staticClass:"delimiter-selector-container",style:{width:e.width},on:{click:e.onContainerClick}},[i("div",{staticClass:"value"},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.inputValue,expression:"inputValue"}],ref:"delimiterInput",class:{filled:e.filled},attrs:{type:"text",maxlength:"1",disabled:e.disabled},domProps:{value:e.inputValue},on:{click:function(e){e.stopPropagation()},input:function(t){t.target.composing||(e.inputValue=t.target.value)}}}),i("div",{staticClass:"name"},[e._v(e._s(e.getSymbolName(e.value)))])]),i("div",{staticClass:"controls",on:{click:function(e){e.stopPropagation()}}},[i("clear-icon",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){return e.clear(t)}}}),i("drop-down-chevron",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){!e.disabled&&(e.showOptions=!e.showOptions)}}})],1)]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showOptions,expression:"showOptions"}],staticClass:"options",style:{width:e.width}},e._l(e.options,(function(t,n){return i("div",{key:n,staticClass:"option",on:{click:function(i){return e.chooseOption(t)}}},[i("pre",[e._v(e._s(t))]),i("div",[e._v(e._s(e.getSymbolName(t)))])])})),0)])},Le=[],ke=(i("25f0"),{0:{name:"null character"},1:{name:"start of header"},2:{name:"start of text"},3:{name:"end of text"},4:{name:"end of transmission"},5:{name:"enquiry"},6:{name:"acknowledge"},7:{name:"bell (ring)"},8:{name:"backspace"},9:{name:"horizontal tab"},10:{name:"line feed"},11:{name:"vertical tab"},12:{name:"form feed"},13:{name:"carriage return"},14:{name:"shift out"},15:{name:"shift in"},16:{name:"data link escape"},17:{name:"device control 1"},18:{name:"device control 2"},19:{name:"device control 3"},20:{name:"device control 4"},21:{name:"negative acknowledge"},22:{name:"synchronize"},23:{name:"end transmission block"},24:{name:"cancel"},25:{name:"end of medium"},26:{name:"substitute"},27:{name:"escape"},28:{name:"file separator"},29:{name:"group separator"},30:{name:"record separator"},31:{name:"unit separator"},32:{name:"space"},33:{name:"exclamation mark"},34:{name:"quotation mark"},35:{name:"number sign"},36:{name:"dollar sign"},37:{name:"percent sign"},38:{name:"ampersand"},39:{name:"apostrophe"},40:{name:"left parenthesis"},41:{name:"right parenthesis"},42:{name:"asterisk"},43:{name:"plus sign"},44:{name:"comma"},45:{name:"hyphen"},46:{name:"period"},47:{name:"slash"},48:{name:"digit 0"},49:{name:"digit 1"},50:{name:"digit 2"},51:{name:"digit 3"},52:{name:"digit 4"},53:{name:"digit 5"},54:{name:"digit 6"},55:{name:"digit 7"},56:{name:"digit 8"},57:{name:"digit 9"},58:{name:"colon"},59:{name:"semicolon"},60:{name:"less-than"},61:{name:"equals-to"},62:{name:"greater-than"},63:{name:"question mark"},64:{name:"at sign"},65:{name:"uppercase A"},66:{name:"uppercase B"},67:{name:"uppercase C"},68:{name:"uppercase D"},69:{name:"uppercase E"},70:{name:"uppercase F"},71:{name:"uppercase G"},72:{name:"uppercase H"},73:{name:"uppercase I"},74:{name:"uppercase J"},75:{name:"uppercase K"},76:{name:"uppercase L"},77:{name:"uppercase M"},78:{name:"uppercase N"},79:{name:"uppercase O"},80:{name:"uppercase P"},81:{name:"uppercase Q"},82:{name:"uppercase R"},83:{name:"uppercase S"},84:{name:"uppercase T"},85:{name:"uppercase U"},86:{name:"uppercase V"},87:{name:"uppercase W"},88:{name:"uppercase X"},89:{name:"uppercase Y"},90:{name:"uppercase Z"},91:{name:"left square bracket"},92:{name:"backslash"},93:{name:"right square bracket"},94:{name:"caret"},95:{name:"underscore"},96:{name:"grave accent"},97:{name:"lowercase a"},98:{name:"lowercase b"},99:{name:"lowercase c"},100:{name:"lowercase d"},101:{name:"lowercase e"},102:{name:"lowercase f"},103:{name:"lowercase g"},104:{name:"lowercase h"},105:{name:"lowercase i"},106:{name:"lowercase j"},107:{name:"lowercase k"},108:{name:"lowercase l"},109:{name:"lowercase m"},110:{name:"lowercase n"},111:{name:"lowercase o"},112:{name:"lowercase p"},113:{name:"lowercase q"},114:{name:"lowercase r"},115:{name:"lowercase s"},116:{name:"lowercase t"},117:{name:"lowercase u"},118:{name:"lowercase v"},119:{name:"lowercase w"},120:{name:"lowercase x"},121:{name:"lowercase y"},122:{name:"lowercase z"},123:{name:"left curly brace"},124:{name:"vertical bar"},125:{name:"right curly brace"},126:{name:"tilde"},127:{name:"delete (rubout)"}}),Ee=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["chevron-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z",fill:"#C8D4E3"}})])},Se=[],Qe={name:"DropDownChevron",props:["disabled"]},Ue=Qe,Ye=(i("493e"),Object(s["a"])(Ue,Ee,Se,!1,null,"29bdb7bf",null)),Ze=Ye.exports,Pe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["clear-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z",fill:"#C8D4E3"}})])},_e=[],qe={name:"ClearIcon",props:["disabled"]},Ve=qe,Re=(i("f7a6"),Object(s["a"])(Ve,Pe,_e,!1,null,"69060e4e",null)),Be=Re.exports,Ge={name:"DelimiterSelector",props:["value","width","disabled"],components:{DropDownChevron:Ze,ClearIcon:Be},data:function(){return{showOptions:!1,options:[",","\t"," ","|",";","",""],filled:!1,inputValue:""}},watch:{inputValue:function(){this.inputValue?(this.filled=!0,this.inputValue!==this.value&&this.$emit("input",this.inputValue)):this.filled=!1}},created:function(){this.inputValue=this.value},methods:{getSymbolName:function(e){return e?ke[e.charCodeAt(0).toString()].name:""},chooseOption:function(e){this.inputValue=e,this.showOptions=!1},onContainerClick:function(e){this.$refs.delimiterInput.focus()},clear:function(){this.disabled||(this.inputValue="",this.$refs.delimiterInput.focus())}}},He=Ge,$e=(i("28f9"),Object(s["a"])(He,Ae,Le,!1,null,"44b0b048",null)),We=$e.exports,Fe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["checkbox-container",{checked:e.checked},{disabled:e.disabled}],on:{click:function(t){return t.stopPropagation(),e.onClick(t)}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.checked,expression:"!checked"}],staticClass:"unchecked"}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&!e.disabled,expression:"checked && !disabled"}],attrs:{src:"light"===e.theme?i("69e6"):i("93dd")}}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&e.disabled,expression:"checked && disabled"}],attrs:{src:i("3d10")}}),e.label?n("span",{staticClass:"label"},[e._v(e._s(e.label))]):e._e()])},Je=[],Xe={name:"CheckBox",props:{theme:{type:String,required:!1,default:"accent",validator:function(e){return["accent","light"].includes(e)}},init:{type:Boolean,required:!1,default:!1},label:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1}},data:function(){return{checked:this.init}},methods:{onClick:function(){this.disabled||(this.checked=!this.checked,this.$emit("click",this.checked))}}},Ke=Xe,et=(i("a96d"),Object(s["a"])(Ke,Fe,Je,!1,null,"0dd86013",null)),tt=et.exports,it=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"rounded-bg"},[i("div",{ref:"header-container",staticClass:"header-container"},[i("div",e._l(e.header,(function(t,n){return i("div",{key:n,staticClass:"fixed-header",style:{width:t.width+"px"}},[e._v(" "+e._s(t.name)+" ")])})),0)]),i("div",{ref:"table-container",staticClass:"table-container",on:{scroll:e.onScrollTable}},[i("table",{ref:"table",staticClass:"sqliteviz-table"},[i("thead",[i("tr",e._l(e.columns,(function(t,n){return i("th",{key:n,ref:"th",refInFor:!0},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(e._s(t))])])})),0)]),i("tbody",e._l(e.currentPageData.count,(function(t){return i("tr",{key:t},e._l(e.columns,(function(n,a){return i("td",{key:a},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(" "+e._s(e.dataSet.values[n][t-1+e.currentPageData.start])+" ")])])})),0)})),0)])])]),i("div",{staticClass:"table-footer"},[i("div",{staticClass:"table-footer-count"},[e._v(" "+e._s(e.rowCount)+" "+e._s(1===e.rowCount?"row":"rows")+" retrieved "),e.preview?i("span",[e._v("for preview")]):e._e(),e.time?i("span",[e._v("in "+e._s(e.time))]):e._e()]),i("pager",{directives:[{name:"show",rawName:"v-show",value:e.pageCount>1,expression:"pageCount > 1"}],attrs:{"page-count":e.pageCount},model:{value:e.currentPage,callback:function(t){e.currentPage=t},expression:"currentPage"}})],1)])},nt=[],at=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("paginate",{attrs:{"page-count":e.pageCount,"page-range":5,"margin-pages":1,"prev-text":e.chevron,"next-text":e.chevron,"no-li-surround":!0,"container-class":"paginator-continer","page-link-class":"paginator-page-link","active-class":"paginator-active-page","break-view-link-class":"paginator-break","next-link-class":"paginator-next","prev-link-class":"paginator-prev","disabled-class":"paginator-disabled"},model:{value:e.page,callback:function(t){e.page=t},expression:"page"}})},rt=[],st=i("8832"),ot=i.n(st),ct={name:"Pager",components:{Paginate:ot.a},props:["pageCount","value"],data:function(){return{page:this.value,chevron:'\n \n \n \n '}},watch:{page:function(){this.$emit("input",this.page)},value:function(){this.page=this.value}}},lt=ct,ut=(i("fc07"),Object(s["a"])(lt,at,rt,!1,null,"658886c7",null)),dt=ut.exports,Mt={name:"SqlTable",components:{Pager:dt},props:{dataSet:Object,time:String,pageSize:{type:Number,default:20},preview:Boolean},data:function(){return{header:null,tableWidth:null,currentPage:1,resizeObserver:null}},computed:{columns:function(){return this.dataSet.columns},rowCount:function(){return this.dataSet.values[this.columns[0]].length},cellStyle:function(){var e=this.tableWidth/this.columns.length;return{maxWidth:"".concat(Math.max(e,100),"px")}},pageCount:function(){return Math.ceil(this.rowCount/this.pageSize)},currentPageData:function(){var e=(this.currentPage-1)*this.pageSize,t=e+this.pageSize;return t>this.rowCount-1&&(t=this.rowCount-1),{start:e,end:t,count:t-e+1}}},methods:{calculateHeadersWidth:function(){var e=this;this.tableWidth=this.$refs["table-container"].offsetWidth,this.$nextTick((function(){e.header=e.$refs.th.map((function(e){return{name:e.innerText,width:e.getBoundingClientRect().width}}))}))},onScrollTable:function(){this.$refs["header-container"].scrollLeft=this.$refs["table-container"].scrollLeft}},mounted:function(){this.resizeObserver=new ResizeObserver(this.calculateHeadersWidth),this.resizeObserver.observe(this.$refs.table),this.calculateHeadersWidth()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.table)},watch:{currentPageData:"calculateHeadersWidth",dataSet:function(){this.currentPage=1}}},gt=Mt,pt=Object(s["a"])(gt,it,nt,!1,null,"79f99032",null),ht=pt.exports,It=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"logsContainer",staticClass:"logs-container"},e._l(e.messages,(function(t,a){return n("div",{key:a,staticClass:"msg"},["error"===t.type?n("img",{attrs:{src:i("7314")}}):e._e(),"info"===t.type?n("img",{attrs:{src:i("db39"),width:"20px"}}):e._e(),"success"===t.type?n("img",{attrs:{src:i("0bf4")}}):e._e(),"loading"===t.type?n("loading-indicator",{attrs:{progress:t.progress}}):e._e(),n("span",{staticClass:"msg-text"},[e._v(e._s(e.serializeMessage(t)))])],1)})),0)},mt=[],Nt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:e.animationClass,attrs:{height:e.size,width:e.size,viewBox:"0 0 "+e.size+" "+e.size}},[i("circle",{staticClass:"loader-svg bg",style:{strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}}),i("circle",{staticClass:"loader-svg front",style:{strokeDasharray:e.circleProgress,strokeDashoffset:e.offset,strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}})])},ft=[],vt={name:"LoadingIndicator",props:{progress:{type:Number,required:!1},size:{type:Number,required:!1,default:20}},computed:{circleProgress:function(){var e=3.14*this.radius*2,t=this.progress?e*this.progress/100:1*e/3,i=e-t;return"".concat(t,"px, ").concat(i,"px")},animationClass:function(){return void 0===this.progress?"loading":"progress"},radius:function(){return this.size/2-this.strokeWidth},offset:function(){return 3.14*this.radius/2},strokeWidth:function(){return this.size/10}}},Dt=vt,jt=(i("d9ad"),Object(s["a"])(Dt,Nt,ft,!1,null,"62096452",null)),yt=jt.exports,bt={name:"logs",props:["messages"],components:{LoadingIndicator:yt},watch:{"messages.length":"scrollToBottom"},mounted:function(){this.scrollToBottom()},methods:{scrollToBottom:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$refs.logsContainer,!i){t.next=5;break}return t.next=4,e.$nextTick();case 4:i.scrollTop=i.scrollHeight;case 5:case"end":return t.stop()}}),t)})))()},serializeMessage:function(e){var t="";return null!==e.row&&void 0!==e.row&&("error"===e.type?t+="Error in row ".concat(e.row,". "):t+="Information about row ".concat(e.row,". ")),t+=e.message,/(\.|!|\?)$/.test(t)||(t+="."),e.hint&&(t+=" ".concat(e.hint)),t}}},Ct=bt,zt=(i("0582"),Object(s["a"])(Ct,It,mt,!1,null,"1c9f27dc",null)),Tt=zt.exports,wt=(i("b680"),{getPeriod:function(e,t){var i=t.getTime()-e.getTime(),n=i/1e3;return n.toFixed(3)+"s"},debounce:function(e,t){var i;return function(){var n=arguments,a=this;clearTimeout(i),i=setTimeout((function(){return e.apply(a,n)}),t)}}}),xt={name:"CsvImport",components:{CloseIcon:Oe,TextField:F,DelimiterSelector:We,CheckBox:tt,SqlTable:ht,Logs:Tt},props:["file","db","dialogName"],data:function(){return{disableDialog:!1,tableName:"",delimiter:"",quoteChar:'"',escapeChar:'"',header:!0,importCsvCompleted:!1,importCsvMessages:[],previewData:null,addedTable:null,tableNameError:""}},watch:{quoteChar:function(){this.previewCsv()},escapeChar:function(){this.previewCsv()},header:function(){this.previewCsv()},tableName:wt.debounce((function(){var e=this;this.tableNameError="",this.tableName&&this.db.validateTableName(this.tableName).catch((function(t){e.tableNameError=t.message+". Try another table name."}))}),400)},methods:{cancelCsvImport:function(){this.disableDialog||(this.addedTable&&(this.db.execute('DROP TABLE "'.concat(this.addedTable,'"')),this.db.refreshSchema()),this.$modal.hide(this.dialogName),this.$emit("cancel"))},reset:function(){this.header=!0,this.quoteChar='"',this.escapeChar='"',this.delimiter="",this.tableName="",this.disableDialog=!1,this.importCsvCompleted=!1,this.importCsvMessages=[],this.previewData=null,this.addedTable=null,this.tableNameError=""},open:function(){this.tableName=this.db.sanitizeTableName(C.getFileName(this.file)),this.$modal.show(this.dialogName)},previewCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.importCsvCompleted=!1,i={preview:3,quoteChar:e.quoteChar||'"',escapeChar:e.escapeChar,header:e.header,delimiter:e.delimiter},t.prev=2,n=new Date,t.next=6,be.parse(e.file,i);case 6:a=t.sent,r=new Date,e.previewData=a.data,e.delimiter=a.delimiter,e.importCsvMessages=a.messages||[],a.hasErrors||e.importCsvMessages.push({message:"Preview parsing is completed in ".concat(wt.getPeriod(n,r),"."),type:"success"}),t.next=17;break;case 14:t.prev=14,t.t0=t["catch"](2),e.importCsvMessages=[{message:t.t0,type:"error"}];case 17:case"end":return t.stop()}}),t,null,[[2,14]])})))()},loadFromCsv:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function e(){var i,n,a,r,s,o,c,l,u,d,M,g;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.tableName){e.next=3;break}return t.tableNameError="Table name can't be empty",e.abrupt("return");case 3:return t.disableDialog=!0,i={quoteChar:t.quoteChar||'"',escapeChar:t.escapeChar,header:t.header,delimiter:t.delimiter},n={message:"Parsing CSV...",type:"info"},t.importCsvMessages.push(n),a=setTimeout((function(){n.type="loading"}),1e3),r={message:"Importing CSV into a SQLite database...",type:"info"},s=null,o=function(e){t.$set(r,"progress",e)},c=t.db.createProgressCounter(o),e.prev=12,l=new Date,e.next=16,be.parse(t.file,i);case 16:if(u=e.sent,d=new Date,u.hasErrors){e.next=38;break}return M=u.rowCount,g=wt.getPeriod(l,d),n.type="success",u.messages.length>0?(t.importCsvMessages=t.importCsvMessages.concat(u.messages),n.message="".concat(M," rows are parsed in ").concat(g,".")):n.message="".concat(M," rows are parsed successfully in ").concat(g,"."),clearTimeout(a),t.importCsvMessages.push(r),s=setTimeout((function(){r.type="loading"}),1e3),l=new Date,e.next=29,t.db.addTableFromCsv(t.tableName,u.data,c);case 29:d=new Date,t.addedTable=t.tableName,g=wt.getPeriod(l,d),r.message="Importing CSV into a SQLite database is completed in ".concat(g,"."),r.type="success",clearTimeout(s),t.importCsvCompleted=!0,e.next=41;break;case 38:n.message="Parsing ended with errors.",n.type="info",t.importCsvMessages=t.importCsvMessages.concat(u.messages);case 41:e.next=48;break;case 43:e.prev=43,e.t0=e["catch"](12),"loading"===n.type&&(n.type="info"),"loading"===r.type&&(r.type="info"),t.importCsvMessages.push({message:e.t0,type:"error"});case 48:clearTimeout(a),clearTimeout(s),t.db.deleteProgressCounter(c),t.disableDialog=!1;case 52:case"end":return e.stop()}}),e,null,[[12,43]])})))()},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$modal.hide(e.dialogName),i=["/*"," * Your CSV file has been imported into ".concat(e.addedTable," table.")," * You can run this SQL query to make all CSV records available for charting."," */",'SELECT * FROM "'.concat(e.addedTable,'"')].join("\n"),t.next=4,e.$store.dispatch("addTab",{query:i});case 4:n=t.sent,e.$store.commit("setCurrentTabId",n),e.importCsvCompleted=!1,e.$emit("finish");case 8:case"end":return t.stop()}}),t)})))()}}},Ot=xt,At=(i("c4dc"),Object(s["a"])(Ot,fe,ve,!1,null,"68ef9d6c",null)),Lt=At.exports,kt={name:"DbUploader",props:{type:{type:String,required:!1,default:"small",validator:function(e){return["illustrated","small"].includes(e)}},width:{type:String,required:!1,default:"unset"}},components:{ChangeDbIcon:ae,CsvImport:Lt},data:function(){return{state:"",animationPromise:Promise.resolve(),file:null,newDb:null}},mounted:function(){var e=this;"illustrated"===this.type&&(this.animationPromise=new Promise((function(t){e.$refs.fileImg.addEventListener("animationend",(function(i){i.animationName.startsWith("fly")&&(e.state="dropped",t())}))})))},methods:{cancelCsvImport:function(){this.newDb&&(this.newDb.shutDown(),this.newDb=null)},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.$store.commit("setDb",e.newDb),"/workspace"!==e.$route.path&&e.$router.push("/workspace");case 2:case"end":return t.stop()}}),t)})))()},loadDb:function(e){return Promise.all([this.newDb.loadDb(e),this.animationPromise]).then(this.finish)},checkFile:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function i(){var n;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:if(t.state="dropping",t.newDb=Ie.getNewDatabase(),!C.isDatabase(e)){i.next=6;break}t.loadDb(e),i.next=12;break;case 6:return t.file=e,i.next=9,t.$nextTick();case 9:return n=t.$refs.addCsv,n.reset(),i.abrupt("return",Promise.all([n.previewCsv(),t.animationPromise]).then(n.open));case 12:case"end":return i.stop()}}),i)})))()},browse:function(){C.getFileFromUser(".db,.sqlite,.sqlite3,.csv").then(this.checkFile)},drop:function(e){this.checkFile(e.dataTransfer.files[0])}}},Et=kt,St=(i("3311"),Object(s["a"])(Et,J,X,!1,null,"eefa30c0",null)),Qt=St.exports,Ut=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")])])},Yt=[],Zt={name:"ExportIcon",mixins:[q],props:["tooltip","tooltipPosition"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Pt=Zt,_t=(i("0ee2"),Object(s["a"])(Pt,Ut,Yt,!1,null,"15bea4a0",null)),qt=_t.exports,Vt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\n 1.77485 15.1649 2.59985\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\n ",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white"}})])])]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Add new table from CSV ")])])},Rt=[],Bt={name:"AddTableIcon",mixins:[q],props:["tooltip"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Gt=Bt,Ht=(i("1640"),Object(s["a"])(Gt,Vt,Rt,!1,null,"0b825a18",null)),$t=Ht.exports,Wt={name:"Schema",components:{TableDescription:U,TextField:F,TreeChevron:k,DbUploader:Qt,ExportIcon:qt,AddTableIcon:$t,CsvImport:Lt},data:function(){return{schemaVisible:!0,filter:null,file:null}},computed:{schema:function(){var e=this;return this.$store.state.db.schema?this.filter?this.$store.state.db.schema.filter((function(t){return-1!==t.name.toUpperCase().indexOf(e.filter.toUpperCase())})):this.$store.state.db.schema:[]},dbName:function(){return this.$store.state.db.dbName}},methods:{exportToFile:function(){this.$store.state.db.export("".concat(this.dbName,".sqlite"))},addCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,C.getFileFromUser(".csv");case 2:return e.file=t.sent,t.next=5,e.$nextTick();case 5:return i=e.$refs.addCsv,i.reset(),t.next=9,i.previewCsv();case 9:i.open();case 10:case"end":return t.stop()}}),t)})))()}}},Ft=Wt,Jt=(i("20c1"),Object(s["a"])(Ft,y,b,!1,null,"3fcc3d82",null)),Xt=Jt.exports,Kt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"tabs"}},[e.tabs.length>0?i("div",{attrs:{id:"tabs-header"}},e._l(e.tabs,(function(t,n){return i("div",{key:n,class:[{"tab-selected":t.id===e.selectedIndex},"tab"],on:{click:function(i){return e.selectTab(t.id)}}},[i("div",{staticClass:"tab-name"},[i("span",{directives:[{name:"show",rawName:"v-show",value:!t.isSaved,expression:"!tab.isSaved"}],staticClass:"star"},[e._v("*")]),t.name?i("span",[e._v(e._s(t.name))]):i("span",{staticClass:"tab-untitled"},[e._v(e._s(t.tempName))])]),i("div",[i("close-icon",{staticClass:"close-icon",attrs:{size:10},on:{click:function(t){return e.beforeCloseTab(n)}}})],1)])})),0):e._e(),e._l(e.tabs,(function(e,t){return i("tab",{key:e.id,attrs:{id:e.id,"init-name":e.name,"init-query":e.query,"init-view-options":e.viewOptions,"init-view-type":e.viewType,"is-predefined":e.isPredefined,"tab-index":t}})})),i("div",{directives:[{name:"show",rawName:"v-show",value:0===e.tabs.length,expression:"tabs.length === 0"}],attrs:{id:"start-guide"}},[i("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" new inquiry from scratch or open one from "),i("router-link",{staticClass:"link",attrs:{to:"/inquiries"}},[e._v("Inquiries")])],1),i("modal",{attrs:{name:"close-warn",classes:"dialog",height:"auto"}},[i("div",{staticClass:"dialog-header"},[e._v(" Close tab "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" "),i("close-icon",{on:{click:function(t){return e.$modal.hide("close-warn")}}})],1),i("div",{staticClass:"dialog-body"},[e._v(" You have unsaved changes. Save changes in "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" before closing? ")]),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",on:{click:function(t){return e.closeTab(e.closingTabIndex)}}},[e._v(" Close without saving ")]),i("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("close-warn")}}},[e._v("Cancel")]),i("button",{staticClass:"primary",on:{click:function(t){return e.saveAndClose(e.closingTabIndex)}}},[e._v("Save and close")])])])],2)},ei=[],ti=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"tab-content-container"},[i("splitpanes",{staticClass:"query-results-splitter",attrs:{horizontal:"",before:{size:50,max:100},after:{size:50,max:100}},scopedSlots:e._u([{key:"left-pane",fn:function(){return[i("div",{staticClass:"above",attrs:{id:"above-"+e.tabIndex}})]},proxy:!0},{key:"right-pane",fn:function(){return[i("div",{ref:"bottomPane",staticClass:"bottomPane",attrs:{id:"bottom-"+e.tabIndex}})]},proxy:!0}])}),i("div",{staticClass:"hidden-part",attrs:{id:"hidden-"+e.tabIndex}}),i("teleport",{attrs:{to:"#"+e.layout.sqlEditor+"-"+e.tabIndex}},[i("sql-editor",{ref:"sqlEditor",attrs:{"is-getting-results":e.isGettingResults},on:{switchTo:function(t){return e.onSwitchView("sqlEditor",t)},run:e.execute},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("teleport",{attrs:{to:"#"+e.layout.table+"-"+e.tabIndex}},[i("run-result",{attrs:{result:e.result,"is-getting-results":e.isGettingResults,error:e.error,time:e.time},on:{switchTo:function(t){return e.onSwitchView("table",t)}}})],1),i("teleport",{attrs:{to:"#"+e.layout.dataView+"-"+e.tabIndex}},[i("data-view",{ref:"dataView",attrs:{"data-source":e.result&&e.result.values||null,"init-options":e.initViewOptions,"init-mode":e.initViewType},on:{switchTo:function(t){return e.onSwitchView("dataView",t)},update:e.onDataViewUpdate}})],1)],1)},ii=[],ni=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"sql-editor-panel"},[i("div",{staticClass:"codemirror-container"},[i("codemirror",{ref:"cm",attrs:{options:e.cmOptions},on:{changes:e.onChange},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("side-tool-bar",{attrs:{panel:"sqlEditor"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{disabled:e.runDisabled,loading:e.isGettingResults,tooltip:"Run SQL query","tooltip-position":"top-left"},on:{click:function(t){return e.$emit("run")}}},[i("run-icon",{attrs:{disabled:e.runDisabled}})],1)],1)],1)},ai=[],ri=i("56b3"),si=i.n(ri),oi=(i("9b74"),i("991c"),i("2f62")),ci={tabs:[],currentTab:null,currentTabId:null,untitledLastIndex:0,predefinedInquiries:[],db:null},li=(i("a434"),{setDb:function(e,t){e.db&&e.db.shutDown(),e.db=t},updateTab:function(e,t){var i=t.index,a=t.name,r=t.id,s=t.query,o=t.viewType,c=t.viewOptions,l=t.isSaved,u=e.tabs[i],d=u.id;r&&e.currentTabId===d&&(e.currentTabId=r),r&&(u.id=r),a&&(u.name=a),s&&(u.query=s),o&&(u.viewType=o),c&&(u.viewOptions=c),void 0!==l&&(u.isSaved=l),l&&delete u.isPredefined,n["default"].set(e.tabs,i,u)},deleteTab:function(e,t){e.tabs[t].id===e.currentTabId&&(t0?e.currentTabId=e.tabs[t-1].id:(e.currentTabId=null,e.currentTab=null,e.untitledLastIndex=0)),e.tabs.splice(t,1)},setCurrentTabId:function(e,t){e.currentTabId=t},setCurrentTab:function(e,t){e.currentTab=t},updatePredefinedInquiries:function(e,t){e.predefinedInquiries=Array.isArray(t)?t:[t]}}),ui=i("e1bd"),di={addTab:function(e,t){return Object(u["a"])(regeneratorRuntime.mark((function i(){var n,a;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:return n=e.state,a=t?JSON.parse(JSON.stringify(t)):{},t&&t.id?a.isSaved=!0:(a.id=Object(ui["a"])(),a.name=null,a.tempName=n.untitledLastIndex?"Untitled ".concat(n.untitledLastIndex):"Untitled",a.viewType="chart",a.viewOptions=void 0,a.isSaved=!1),n.tabs.some((function(e){return e.id===a.id}))||(n.tabs.push(a),a.name||(n.untitledLastIndex+=1)),i.abrupt("return",a.id);case 5:case"end":return i.stop()}}),i)})))()}};n["default"].use(oi["a"]);var Mi=new oi["a"].Store({state:ci,mutations:li,actions:di});function gi(e,t){var i=e.getTokenAt(e.getCursor()).string.toUpperCase(),n=si.a.hint.sql(e,t);return 1===n.list.length&&n.list[0].text.toUpperCase()===i&&(n.list=[]),n}var pi={get tables(){var e={};return Mi.state.db.schema&&Mi.state.db.schema.forEach((function(t){e[t.name]=t.columns.map((function(e){return e.name}))})),e},get defaultTable(){var e=Mi.state.db.schema;return e&&1===e.length?e[0].name:null},completeSingle:!1,completeOnSingleClick:!0,alignWithWord:!1};function hi(e){si.a.showHint(e,gi,pi)}function Ii(e){var t=e.getTokenAt(e.getCursor()),i=t.string.slice(-1),n=t.type;"string"!==n&&i&&" "!==i&&";"!==i&&si.a.showHint(e,gi,pi)}var mi=i("8f94"),Ni=(i("a7be"),i("ffda"),i("d5db"),i("f6b6"),i("f4ba"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"side-tool-bar"},[i("icon-button",{attrs:{active:"sqlEditor"===e.panel,tooltip:"Switch panel to SQL editor","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","sqlEditor")}}},[i("sql-editor-icon")],1),i("icon-button",{attrs:{active:"table"===e.panel,tooltip:"Switch panel to result set","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","table")}}},[i("table-icon")],1),i("icon-button",{attrs:{active:"dataView"===e.panel,tooltip:"Switch panel to data view","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","dataView")}}},[i("data-view-icon")],1),e.$slots.default?i("div",{staticClass:"side-tool-bar-divider"}):e._e(),e._t("default")],2)}),fi=[],vi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["icon-btn",{active:e.active},{disabled:e.disabled}],on:{click:e.onClick,mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("div",{staticClass:"icon"},[e._t("default")],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"icon-in-progress"},[i("loading-indicator")],1),e.tooltip?i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")]):e._e()])},Di=[],ji={name:"SideBarButton",props:["active","disabled","tooltip","tooltipPosition","loading"],components:{LoadingIndicator:yt},mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},yi=ji,bi=(i("dd9c"),Object(s["a"])(yi,vi,Di,!1,null,"0c2b486e",null)),Ci=bi.exports,zi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z",fill:"#A2B1C6"}})])},Ti=[],wi={name:"TableIcon"},xi=wi,Oi=Object(s["a"])(xi,zi,Ti,!1,null,null,null),Ai=Oi.exports,Li=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"19",viewBox:"0 0 18 19",fill:"none"}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{d:"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white",transform:"translate(0 0.0134277)"}})])])])},ki=[],Ei={name:"SqlEditorIcon"},Si=Ei,Qi=Object(s["a"])(Si,Li,ki,!1,null,null,null),Ui=Qi.exports,Yi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z",fill:"#A2B1C6"}}),i("circle",{attrs:{cx:"5.50049",cy:"6.00339",r:"1.5",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z",fill:"#A2B1C6"}})])},Zi=[],Pi={name:"DataViewIcon"},_i=Pi,qi=Object(s["a"])(_i,Yi,Zi,!1,null,null,null),Vi=qi.exports,Ri={name:"SideToolBar",props:["panel"],components:{IconButton:Ci,SqlEditorIcon:Ui,DataViewIcon:Vi,TableIcon:Ai}},Bi=Ri,Gi=(i("f4e5"),Object(s["a"])(Bi,Ni,fi,!1,null,"3b6366bb",null)),Hi=Gi.exports,$i=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"12",height:"13",viewBox:"0 0 12 13",fill:"none"}},[i("path",{attrs:{d:"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z",fill:"#A2B1C6"}})])},Wi=[],Fi={name:"RunIcon"},Ji=Fi,Xi=Object(s["a"])(Ji,$i,Wi,!1,null,null,null),Ki=Xi.exports,en={name:"SqlEditor",props:["value","isGettingResults"],components:{codemirror:mi["codemirror"],SideToolBar:Hi,IconButton:Ci,RunIcon:Ki},data:function(){return{query:this.value,cmOptions:{tabSize:4,mode:"text/x-mysql",theme:"neo",lineNumbers:!0,line:!0,autoRefresh:!0,extraKeys:{"Ctrl-Space":hi}}}},computed:{runDisabled:function(){return!this.$store.state.db||!this.query||this.isGettingResults}},watch:{query:function(){this.$emit("input",this.query)}},methods:{onChange:wt.debounce(Ii,400),focus:function(){this.$refs.cm.codemirror.focus()}}},tn=en,nn=(i("16a3"),Object(s["a"])(tn,ni,ai,!1,null,"c84dd870",null)),an=nn.exports,rn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"data-view-panel"},[i("div",{staticClass:"data-view-panel-content"},[i(e.mode,{ref:"viewComponent",tag:"component",attrs:{"init-options":e.mode===e.initMode?e.initOptions:void 0,"data-sources":e.dataSource,"import-to-png-enabled":e.importToPngEnabled},on:{"update:importToPngEnabled":function(t){e.importToPngEnabled=t},"update:import-to-png-enabled":function(t){e.importToPngEnabled=t},loadingImageCompleted:function(t){e.loadingImage=!1},update:function(t){return e.$emit("update")}}})],1),i("side-tool-bar",{attrs:{panel:"dataView"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{active:"chart"===e.mode,tooltip:"Switch to chart","tooltip-position":"top-left"},on:{click:function(t){e.mode="chart"}}},[i("chart-icon")],1),i("icon-button",{attrs:{active:"pivot"===e.mode,tooltip:"Switch to pivot","tooltip-position":"top-left"},on:{click:function(t){e.mode="pivot"}}},[i("pivot-icon")],1),i("div",{staticClass:"side-tool-bar-divider"}),i("icon-button",{attrs:{disabled:!e.importToPngEnabled||e.loadingImage,loading:e.loadingImage,tooltip:"Save as PNG image","tooltip-position":"top-left"},on:{click:e.saveAsPng}},[i("png-icon")],1)],1)],1)},sn=[],on=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"chartContainer",staticClass:"chart-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources&&e.visible,expression:"!dataSources && visible"}],staticClass:"warning chart-warning"},[e._v(" There is no data to build a chart. Run your SQL query and make sure the result is not empty. ")]),i("PlotlyEditor",{ref:"plotlyEditor",staticClass:"chart",style:{height:e.dataSources?"100%":"calc(100% - 40px)"},attrs:{data:e.state.data,layout:e.state.layout,frames:e.state.frames,config:{editable:!0,displaylogo:!1,modeBarButtonsToRemove:["toImage"]},dataSources:e.dataSources,dataSourceOptions:e.dataSourceOptions,plotly:e.plotly,useResizeHandler:!0,debug:!0,advancedTraceTypeSelector:!0},on:{onUpdate:e.update,onRender:e.onRender}})],1)},cn=[],ln=i("030a"),un=i.n(ln),dn=(i("0848"),i("b1c6")),Mn=i.n(dn),gn=i("662f"),pn=i.n(gn);function hn(e){return e?Object.keys(e).map((function(e){return{value:e,label:e}})):[]}function In(e,t){var i=JSON.parse(JSON.stringify(e)),n={};for(var a in t)n[a]=[];return pn()(i.data,n),i}var mn={getOptionsFromDataSources:hn,getOptionsForSave:In},Nn={name:"Chart",props:["dataSources","initOptions","importToPngEnabled"],components:{PlotlyEditor:Mn.a},data:function(){return{plotly:un.a,state:this.initOptions||{data:[],layout:{},frames:[]},visible:!0,resizeObserver:null}},computed:{dataSourceOptions:function(){return mn.getOptionsFromDataSources(this.dataSources)}},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.chartContainer)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.chartContainer)},watch:{dataSources:function(){pn()(this.state.data,this.dataSources)}},methods:{handleResize:function(){var e=this;this.visible=!1,this.$nextTick((function(){e.visible=!0}))},onRender:function(e,t,i){},update:function(e,t,i){this.state={data:e,layout:t,frames:i},this.$emit("update")},getOptionsForSave:function(){return mn.getOptionsForSave(this.state,this.dataSources)},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$refs.plotlyEditor.$el.querySelector(".js-plotly-plot"),t.next=3,un.a.toImage(i,{format:"png",width:null,height:null});case 3:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"chart");case 6:case"end":return t.stop()}}),t)})))()}}},fn=Nn,vn=(i("807c"),Object(s["a"])(fn,on,cn,!1,null,"31be4117",null)),Dn=vn.exports,jn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources,expression:"!dataSources"}],staticClass:"warning pivot-warning"},[e._v(" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. ")]),i("pivot-ui",{attrs:{"key-names":e.columns},on:{update:function(t){return e.$emit("update")},loadingCustomChartImageCompleted:function(t){return e.$emit("loadingImageCompleted")}},model:{value:e.pivotOptions,callback:function(t){e.pivotOptions=t},expression:"pivotOptions"}}),i("div",{ref:"pivotOutput",staticClass:"pivot-output"})],1)},yn=[],bn=i("c0e9"),Cn=i.n(bn),zn=i("1157"),Tn=i.n(zn),wn=(i("9751"),i("ccb1"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-ui"},[i("div",{class:{collapsed:e.collapsed}},[i("div",{staticClass:"row"},[i("label",[e._v("Columns")]),i("multiselect",{staticClass:"sqliteviz-select cols",attrs:{options:e.colsToSelect,disabled:0===e.colsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.colsToSelect.length,"open-direction":"bottom",placeholder:""},model:{value:e.cols,callback:function(t){e.cols=t},expression:"cols"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose columns")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"col"},model:{value:e.colOrder,callback:function(t){e.colOrder=t},expression:"colOrder"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("Rows")]),i("multiselect",{staticClass:"sqliteviz-select rows",attrs:{options:e.rowsToSelect,disabled:0===e.rowsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.rowsToSelect.length,"option-height":29,"open-direction":"bottom",placeholder:""},model:{value:e.rows,callback:function(t){e.rows=t},expression:"rows"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose rows")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"row"},model:{value:e.rowOrder,callback:function(t){e.rowOrder=t},expression:"rowOrder"}})],1),i("div",{staticClass:"row aggregator"},[i("label",[e._v("Aggregator")]),i("multiselect",{staticClass:"sqliteviz-select short aggregator",attrs:{options:e.aggregators,label:"name","track-by":"name","close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a function"},model:{value:e.aggregator,callback:function(t){e.aggregator=t},expression:"aggregator"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>0,expression:"valCount > 0"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose an argument"},model:{value:e.val1,callback:function(t){e.val1=t},expression:"val1"}}),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>1,expression:"valCount > 1"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a second argument"},model:{value:e.val2,callback:function(t){e.val2=t},expression:"val2"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("View")]),i("multiselect",{staticClass:"sqliteviz-select short renderer",attrs:{options:e.renderers,label:"name","track-by":"name","close-on-select":!0,"allow-empty":!1,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a view"},model:{value:e.renderer,callback:function(t){e.renderer=t},expression:"renderer"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2)],1)]),i("span",{staticClass:"switcher",on:{click:function(t){e.collapsed=!e.collapsed}}},[e._v(" "+e._s(e.collapsed?"Show pivot settings":"Hide pivot settings")+" ")])])}),xn=[],On=(i("2532"),i("8e5f")),An=i.n(On),Ln=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["pivot-sort-btn",e.direction],on:{click:e.changeSorting}},[e._v(" "+e._s(e.value.includes("key")?"key":"value")+" "),i("sort-icon",{staticClass:"sort-icon",attrs:{horizontal:"col"===e.direction,asc:e.value.includes("a_to_z")}})],1)},kn=[],En=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["sort-icon",{horizontal:e.horizontal},{asc:e.asc}],attrs:{width:"6",height:"12",viewBox:"0 0 6 12",fill:"none"}},[i("path",{attrs:{d:"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z",fill:"#506784"}}),i("path",{attrs:{d:"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z",fill:"#506784"}})])},Sn=[],Qn={name:"SortIcon",props:{horizontal:{type:Boolean,required:!1,default:!1},asc:{type:Boolean,required:!1,default:!0}}},Un=Qn,Yn=(i("4c94"),Object(s["a"])(Un,En,Sn,!1,null,"28a29e7a",null)),Zn=Yn.exports,Pn={name:"PivotSortBtn",props:["direction","value"],components:{SortIcon:Zn},methods:{changeSorting:function(){"key_a_to_z"===this.value?this.$emit("input","value_a_to_z"):"value_a_to_z"===this.value?this.$emit("input","value_z_to_a"):this.$emit("input","key_a_to_z")}}},_n=Pn,qn=(i("0f34"),Object(s["a"])(_n,Ln,kn,!1,null,"e3801f08",null)),Vn=qn.exports,Rn=(i("8e51"),i("3c3e"),["Count","Count as Fraction of Total","Count as Fraction of Rows","Count as Fraction of Columns"]),Bn=["Sum over Sum","80% Upper Bound","80% Lower Bound"];function Gn(e){var t=e.getRowKeys(),i=e.getColKeys(),n={"Column keys":i.map((function(e){return e.join("-")})),"Row keys":t.map((function(e){return e.join("-")}))},a={},r={},s=e.rowAttrs.join("-"),o=e.colAttrs.join("-");return i.forEach((function(i){var n=o+":"+i.join("-");r[n]=[],t.forEach((function(t){var o=e.getAggregator(t,i).value();r[n].push(o);var c=s+":"+t.join("-");a[c]||(a[c]=[]),a[c].push(o)}))})),Object.assign(n,r,a)}function Hn(e,t){return t.customChartComponent.dataSources=Gn(e),t.customChartComponent.$mount(),Tn()(t.customChartComponent.$el)}Tn.a.extend(Tn.a.pivotUtilities.renderers,Tn.a.pivotUtilities.export_renderers,Tn.a.pivotUtilities.plotly_renderers,{"Custom chart":Hn});var $n=Object.keys(Tn.a.pivotUtilities.renderers).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.renderers[e]}})),Wn=Object.keys(Tn.a.pivotUtilities.aggregators).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.aggregators[e]}})),Fn=n["default"].extend(Dn),Jn={name:"pivotUi",props:["keyNames","value"],components:{Multiselect:An.a,PivotSortBtn:Vn},data:function(){var e=this.value&&this.value.aggregatorName||"Count",t=this.value&&this.value.rendererName||"Table";return{collapsed:!1,renderer:{name:t,fun:Tn.a.pivotUtilities.renderers[t]},aggregator:{name:e,fun:Tn.a.pivotUtilities.aggregators[e]},rows:this.value&&this.value.rows||[],cols:this.value&&this.value.cols||[],val1:this.value&&this.value.vals&&this.value.vals[0]||"",val2:this.value&&this.value.vals&&this.value.vals[1]||"",colOrder:this.value&&this.value.colOrder||"key_a_to_z",rowOrder:this.value&&this.value.rowOrder||"key_a_to_z",customChartComponent:this.value&&this.value.rendererOptions&&this.value.rendererOptions.customChartComponent||new Fn}},computed:{valCount:function(){return Rn.includes(this.aggregator.name)?0:Bn.includes(this.aggregator.name)?2:1},renderers:function(){return $n},aggregators:function(){return Wn},rowsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.cols.includes(t)}))},colsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.rows.includes(t)}))}},watch:{renderer:function(){this.returnValue()},aggregator:function(){this.returnValue()},rows:function(){this.returnValue()},cols:function(){this.returnValue()},val1:function(){this.returnValue()},val2:function(){this.returnValue()},colOrder:function(){this.returnValue()},rowOrder:function(){this.returnValue()}},created:function(){var e=this;this.customChartComponent.$on("update",(function(){e.$emit("update")})),this.customChartComponent.$on("loadingImageCompleted",(function(t){e.$emit("loadingCustomChartImageCompleted")}))},methods:{returnValue:function(){for(var e=[],t=1;t<=this.valCount;t++)e.push(this["val".concat(t)]);this.$emit("update"),this.$emit("input",{rows:this.rows,cols:this.cols,colOrder:this.colOrder,rowOrder:this.rowOrder,aggregator:this.aggregator.fun(e),aggregatorName:this.aggregator.name,renderer:this.renderer.fun,rendererName:this.renderer.name,rendererOptions:"Custom chart"!==this.renderer.name?void 0:{customChartComponent:this.customChartComponent},vals:e})}}},Xn=Jn,Kn=(i("81e6"),Object(s["a"])(Xn,wn,xn,!1,null,"6d818ae0",null)),ea=Kn.exports,ta=n["default"].extend(Dn),ia={name:"pivot",props:["dataSources","initOptions","importToPngEnabled"],components:{PivotUi:ea},data:function(){return{resizeObserver:null,pivotOptions:this.initOptions?{rows:this.initOptions.rows,cols:this.initOptions.cols,colOrder:this.initOptions.colOrder,rowOrder:this.initOptions.rowOrder,aggregatorName:this.initOptions.aggregatorName,aggregator:Tn.a.pivotUtilities.aggregators[this.initOptions.aggregatorName](this.initOptions.vals),vals:this.initOptions.vals,rendererName:this.initOptions.rendererName,renderer:Tn.a.pivotUtilities.renderers[this.initOptions.rendererName],rendererOptions:this.initOptions.rendererOptions?{customChartComponent:new ta({propsData:{initOptions:this.initOptions.rendererOptions.customChartOptions}})}:void 0}:{rows:[],cols:[],colOrder:"key_a_to_z",rowOrder:"key_a_to_z",aggregatorName:"Count",aggregator:Tn.a.pivotUtilities.aggregators.Count(),vals:[],rendererName:"Table",renderer:Tn.a.pivotUtilities.renderers.Table,rendererOptions:void 0}}},computed:{columns:function(){return Object.keys(this.dataSources||{})}},watch:{dataSources:function(){this.show()},"pivotOptions.rendererName":{immediate:!0,handler:function(){this.$emit("update:importToPngEnabled","TSV Export"!==this.pivotOptions.rendererName)}},pivotOptions:function(){this.show()}},mounted:function(){this.show(),this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.pivotOutput)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.pivotOutput)},methods:{handleResize:function(){this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},show:function(){var e=Object(I["a"])({},this.pivotOptions);this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&(e.rendererOptions={plotly:{autosize:!0,width:null,height:null},plotlyConfig:{displaylogo:!1,responsive:!0,modeBarButtonsToRemove:["toImage"]}}),Tn()(this.$refs.pivotOutput).pivot(function(e){for(var t=this,i=this.dataSources?this.dataSources[this.columns[0]].length:0,n=function(i){var n={};t.columns.forEach((function(e){n[e]=t.dataSources[e][i-1]})),e(n)},a=1;a<=i;a++)n(a)}.bind(this),e),this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},getOptionsForSave:function(){var e=Object(I["a"])({},this.pivotOptions);if(e.rendererOptions){var t=this.pivotOptions.rendererOptions.customChartComponent;e.rendererOptions={customChartOptions:t.getOptionsForSave()}}return e},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if("Custom chart"!==e.pivotOptions.rendererName){t.next=4;break}e.pivotOptions.rendererOptions.customChartComponent.saveAsPng(),t.next=19;break;case 4:if(!(e.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers)){t.next=13;break}return i=e.$refs.pivotOutput.querySelector(".js-plotly-plot"),t.next=8,un.a.toImage(i,{format:"png",width:null,height:null});case 8:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"pivot"),t.next=19;break;case 13:return a=e.$refs.pivotOutput.querySelector(".pvtTable"),t.next=16,Cn()(a);case 16:r=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(r.toDataURL("image/png"),"pivot","image/png");case 19:case"end":return t.stop()}}),t)})))()}}},na=ia,aa=(i("d7ec"),Object(s["a"])(na,jn,yn,!1,null,"ca17e020",null)),ra=aa.exports,sa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.41943 16V10H10.4194V16H8.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.41943 16L2.41943 10H4.41943V16H2.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.4194 16V7H13.4194V16H11.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.4194 16V8H16.4194V16H14.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.41943 12V16H5.41943V12H7.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z",fill:"#A2B1C6"}})])},oa=[],ca={name:"ChartIcon"},la=ca,ua=Object(s["a"])(la,sa,oa,!1,null,null,null),da=ua.exports,Ma=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M6.41943 0H18.4194V4H6.41943V0Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 6H4.41943V18H0.419434V6Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 0H4.41943V4H0.419434V0Z",fill:"#A2B1C6"}})])},ga=[],pa={name:"PivotIcon"},ha=pa,Ia=Object(s["a"])(ha,Ma,ga,!1,null,null,null),ma=Ia.exports,Na=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{d:"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z",fill:"#A2B1C6"}})])},fa=[],va={name:"PngIcon"},Da=va,ja=Object(s["a"])(Da,Na,fa,!1,null,null,null),ya=ja.exports,ba={name:"DataView",props:["dataSource","initOptions","initMode"],components:{Chart:Dn,Pivot:ra,SideToolBar:Hi,IconButton:Ci,ChartIcon:da,PivotIcon:ma,PngIcon:ya},data:function(){return{mode:this.initMode||"chart",importToPngEnabled:!0,loadingImage:!1}},watch:{mode:function(){this.$emit("update"),this.importToPngEnabled=!0}},methods:{saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.loadingImage=!0,setTimeout((function(){e.$refs.viewComponent.saveAsPng()}),0);case 2:case"end":return t.stop()}}),t)})))()},getOptionsForSave:function(){return this.$refs.viewComponent.getOptionsForSave()}}},Ca=ba,za=(i("be12"),Object(s["a"])(Ca,rn,sn,!1,null,"513fdbc5",null)),Ta=za.exports,wa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"runResultPanel",staticClass:"run-result-panel"},[i("div",{staticClass:"run-result-panel-content"},[i("div",{directives:[{name:"show",rawName:"v-show",value:null===e.result&&!e.isGettingResults&&!e.error,expression:"result === null && !isGettingResults && !error"}],staticClass:"table-preview result-before"},[e._v(" Run your query and get results here ")]),e.isGettingResults?i("div",{staticClass:"table-preview result-in-progress"},[i("loading-indicator",{attrs:{size:30}}),e._v(" Fetching results... ")],1):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:void 0===e.result&&!e.isGettingResults&&!e.error,expression:"result === undefined && !isGettingResults && !error"}],staticClass:"table-preview result-empty"},[e._v(" No rows retrieved according to your query ")]),e.error?i("logs",{attrs:{messages:[e.error]}}):e._e(),e.result?i("sql-table",{staticClass:"straight",attrs:{"data-set":e.result,time:e.time,pageSize:e.pageSize}}):e._e()],1),i("side-tool-bar",{attrs:{panel:"table"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}})],1)},xa=[],Oa={name:"RunResult",props:["result","isGettingResults","error","time"],data:function(){return{resizeObserver:null,pageSize:20}},components:{SqlTable:ht,LoadingIndicator:yt,Logs:Tt,SideToolBar:Hi},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.runResultPanel),this.calculatePageSize()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.runResultPanel)},methods:{handleResize:function(){this.calculatePageSize()},calculatePageSize:function(){var e=this.$refs.runResultPanel,t=e.offsetHeight-27-5-35;this.pageSize=Math.max(Math.floor(t/35),20)}}},Aa=Oa,La=(i("cd48"),Object(s["a"])(Aa,wa,xa,!1,null,"73e5054b",null)),ka=La.exports,Ea=i("b0cc"),Sa={name:"Tab",props:["id","initName","initQuery","initViewOptions","tabIndex","isPredefined","initViewType"],components:{SqlEditor:an,DataView:Ta,RunResult:ka,Splitpanes:j,Teleport:Ea["a"]},data:function(){return{query:this.initQuery,result:null,isGettingResults:!1,error:null,time:0,layout:{sqlEditor:"above",table:"bottom",dataView:"hidden"}}},computed:{isActive:function(){return this.id===this.$store.state.currentTabId}},watch:{isActive:{immediate:!0,handler:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(!e.isActive){t.next=5;break}return e.$store.commit("setCurrentTab",e),t.next=4,e.$nextTick();case 4:e.$refs.sqlEditor.focus();case 5:case"end":return t.stop()}}),t)})))()}},query:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})}},methods:{onSwitchView:function(e,t){var i=this.layout[e];this.layout[e]=this.layout[t],this.layout[t]=i},onDataViewUpdate:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})},execute:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.isGettingResults=!0,e.result=null,e.error=null,i=e.$store.state,t.prev=4,n=new Date,t.next=8,i.db.execute(e.query+";");case 8:e.result=t.sent,e.time=wt.getPeriod(n,new Date),t.next=15;break;case 12:t.prev=12,t.t0=t["catch"](4),e.error={type:"error",message:t.t0};case 15:i.db.refreshSchema(),e.isGettingResults=!1;case 17:case"end":return t.stop()}}),t,null,[[4,12]])})))()}}},Qa=Sa,Ua=(i("c2fc"),Object(s["a"])(Qa,ti,ii,!1,null,"741ababb",null)),Ya=Ua.exports,Za={components:{Tab:Ya,CloseIcon:Oe},data:function(){return{closingTabIndex:null}},computed:{tabs:function(){return this.$store.state.tabs},selectedIndex:function(){return this.$store.state.currentTabId}},created:function(){window.addEventListener("beforeunload",this.leavingSqliteviz)},methods:{leavingSqliteviz:function(e){this.tabs.some((function(e){return!e.isSaved}))&&(e.preventDefault(),e.returnValue="")},selectTab:function(e){this.$store.commit("setCurrentTabId",e)},beforeCloseTab:function(e){this.closingTabIndex=e,this.tabs[e].isSaved?this.closeTab(e):this.$modal.show("close-warn")},closeTab:function(e){this.$modal.hide("close-warn"),this.closingTabIndex=null,this.$store.commit("deleteTab",e)},saveAndClose:function(e){var t=this;this.$root.$on("inquirySaved",(function(){t.closeTab(e),t.$root.$off("inquirySaved")})),this.selectTab(this.tabs[e].id),this.$modal.hide("close-warn"),this.$nextTick((function(){t.$root.$emit("saveInquiry")}))}}},Pa=Za,_a=(i("64b6"),Object(s["a"])(Pa,Kt,ei,!1,null,null,null)),qa=_a.exports,Va={name:"Workspace",components:{Schema:Xt,Splitpanes:j,Tabs:qa},beforeCreate:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$store.state.db.schema,i&&0!==i.length){t.next=7;break}return n=["/*"," * Your database is empty. In order to start building charts"," * you should create a table and insert data into it."," */","CREATE TABLE house","("," name TEXT,"," points INTEGER",");","INSERT INTO house VALUES","('Gryffindor', 100),","('Hufflepuff', 90),","('Ravenclaw', 95),","('Slytherin', 80);"].join("\n"),t.next=5,e.$store.dispatch("addTab",{query:n});case 5:a=t.sent,e.$store.commit("setCurrentTabId",a);case 7:case"end":return t.stop()}}),t)})))()}},Ra=Va,Ba=(i("2a3d"),Object(s["a"])(Ra,M,g,!1,null,"de063d86",null)),Ga=Ba.exports,Ha=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[0===e.showedInquiries.length?n("div",{attrs:{id:"start-guide"}},[e._v(" You don't have saved inquiries so far. "),n("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" the one from scratch or "),n("span",{staticClass:"link",on:{click:e.importInquiries}},[e._v("import")]),e._v(" from a file. ")]):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showedInquiries.length>0,expression:"showedInquiries.length > 0"}],ref:"my-inquiries-content",attrs:{id:"my-inquiries-content"}},[n("div",{attrs:{id:"my-inquiries-toolbar"}},[n("div",{attrs:{id:"toolbar-buttons"}},[n("button",{staticClass:"toolbar",attrs:{id:"toolbar-btns-import"},on:{click:e.importInquiries}},[e._v(" Import ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>0,expression:"selectedInquiriesCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-export"},on:{click:function(t){return e.exportSelectedInquiries()}}},[e._v(" Export ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedNotPredefinedCount>0,expression:"selectedNotPredefinedCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-delete"},on:{click:function(t){return e.showDeleteDialog(e.selectedInquiriesIds)}}},[e._v(" Delete ")])]),n("div",{attrs:{id:"toolbar-search"}},[n("text-field",{attrs:{placeholder:"Search inquiry by name",width:"300px"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1)]),n("div",{staticClass:"rounded-bg"},[n("div",{staticClass:"header-container"},[n("div",[n("div",{ref:"name-th",staticClass:"fixed-header"},[n("check-box",{ref:"mainCheckBox",attrs:{theme:"light"},on:{click:e.toggleSelectAll}}),n("div",{staticClass:"name-th"},[e._v("Name")])],1),n("div",{staticClass:"fixed-header"},[e._v(" Created at ")])])]),n("div",{staticClass:"table-container",style:{"max-height":e.maxTableHeight+"px"}},[n("table",{ref:"table",staticClass:"sqliteviz-table"},[n("tbody",e._l(e.showedInquiries,(function(t,i){return n("tr",{key:t.id,on:{click:function(t){return e.openInquiry(i)}}},[n("td",{ref:"name-td",refInFor:!0},[n("div",{staticClass:"cell-data"},[n("check-box",{ref:"rowCheckBox",refInFor:!0,attrs:{init:e.selectAll||e.selectedInquiriesIds.has(t.id)},on:{click:function(i){return e.toggleRow(i,t.id)}}}),n("div",{staticClass:"name"},[e._v(e._s(t.name))]),t.isPredefined?n("div",{staticClass:"badge",on:{mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[e._v(" Predefined "),n("span",{ref:"tooltip",refInFor:!0,staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. ")])]):e._e()],1)]),n("td",[n("div",{staticClass:"second-column"},[n("div",{staticClass:"date-container"},[e._v(e._s(e._f("date")(t.createdAt)))]),n("div",{staticClass:"icons-container"},[t.isPredefined?e._e():n("rename-icon",{on:{click:function(i){return e.showRenameDialog(t.id)}}}),n("copy-icon",{on:{click:function(t){return e.duplicateInquiry(i)}}}),n("export-icon",{attrs:{tooltip:"Export inquiry to file","tooltip-position":"top-left"},on:{click:function(i){return e.exportToFile([t],t.name+".json")}}}),t.isPredefined?e._e():n("delete-icon",{on:{click:function(i){e.showDeleteDialog((new Set).add(t.id))}}})],1)])])])})),0)])])])]),n("modal",{attrs:{name:"rename",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Rename inquiry "),n("close-icon",{on:{click:function(t){return e.$modal.hide("rename")}}})],1),n("div",{staticClass:"dialog-body"},[n("text-field",{attrs:{label:"New inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.newName,callback:function(t){e.newName=t},expression:"newName"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("rename")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.renameInquiry}},[e._v("Rename")])])]),n("modal",{attrs:{name:"delete",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Delete "+e._s(e.deleteGroup?"inquiries":"inquiry")+" "),n("close-icon",{on:{click:function(t){return e.$modal.hide("delete")}}})],1),n("div",{staticClass:"dialog-body"},[e._v(" "+e._s(e.deleteDialogMsg)+" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>e.selectedNotPredefinedCount,expression:"selectedInquiriesCount > selectedNotPredefinedCount"}],attrs:{id:"note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries you've selected won't be deleted ")])]),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("delete")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.deleteInquiry}},[e._v("Delete")])])])],1)},$a=[],Wa=(i("6062"),i("c740"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Rename inquiry ")])])}),Fa=[],Ja={name:"RenameIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Xa=Ja,Ka=(i("b5fd"),Object(s["a"])(Xa,Wa,Fa,!1,null,"075cb800",null)),er=Ka.exports,tr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Duplicate inquiry ")])])},ir=[],nr={name:"CopyIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ar=nr,rr=(i("cba9"),Object(s["a"])(ar,tr,ir,!1,null,"3a61cb73",null)),sr=rr.exports,or=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,"top-left")},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Delete inquiry ")])])},cr=[],lr={name:"DeleteIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ur=lr,dr=(i("7e99"),Object(s["a"])(ur,or,cr,!1,null,"581e8819",null)),Mr=dr.exports,gr={_migrate:function(e,t){if(1===e)return t.forEach((function(e){e.viewType="chart",e.viewOptions=e.chart,delete e.chart})),t}},pr=gr._migrate,hr={version:2,getStoredInquiries:function(){var e=JSON.parse(localStorage.getItem("myInquiries"));if(!e){var t=localStorage.getItem("myQueries");return t?(e=pr(1,JSON.parse(t)),this.updateStorage(e),e):[]}return e&&e.inquiries||[]},duplicateInquiry:function(e){var t=JSON.parse(JSON.stringify(e));return t.name=t.name+" Copy",t.id=Object(ui["a"])(),t.createdAt=new Date,delete t.isPredefined,t},isTabNeedName:function(e){var t=!e.initName;return e.isPredefined||t},save:function(e,t){var i={id:e.isPredefined?Object(ui["a"])():e.id,query:e.query,viewType:e.$refs.dataView.mode,viewOptions:e.$refs.dataView.getOptionsForSave(),name:t||e.initName},n=this.getStoredInquiries();if(t)i.createdAt=new Date;else{var a=n.findIndex((function(t){return t.id===e.id}));i.createdAt=n[a].createdAt}return t?n.push(i):n[a]=i,this.updateStorage(n),i},updateStorage:function(e){localStorage.setItem("myInquiries",JSON.stringify({version:this.version,inquiries:e}))},serialiseInquiries:function(e){var t=JSON.parse(JSON.stringify(e));return t.forEach((function(e){return delete e.isPredefined})),JSON.stringify({version:this.version,inquiries:t},null,4)},deserialiseInquiries:function(e){var t=this,i=JSON.parse(e),n=[];return i.version?n=i.inquiries||[]:(n=Array.isArray(i)?i:[i],n=pr(1,n)),n.forEach((function(e){var i=t.getStoredInquiries().map((function(e){return e.id}));i.includes(e.id)&&(e.id=Object(ui["a"])())})),n},importInquiries:function(){var e=this;return C.importFile().then((function(t){return e.deserialiseInquiries(t)}))},readPredefinedInquiries:function(){return Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,C.readFile("./inquiries.json");case 2:return t=e.sent,e.next=5,t.json();case 5:if(i=e.sent,i.version){e.next=10;break}return e.abrupt("return",i.length>0?pr(1,i):[]);case 10:return e.abrupt("return",i.inquiries);case 11:case"end":return e.stop()}}),e)})))()}},Ir={name:"Inquiries",components:{RenameIcon:er,CopyIcon:sr,ExportIcon:qt,DeleteIcon:Mr,CloseIcon:Oe,TextField:F,CheckBox:tt},mixins:[q],data:function(){return{inquiries:[],filter:null,newName:null,processedInquiryId:null,errorMsg:null,selectedInquiriesIds:new Set,selectedInquiriesCount:0,selectedNotPredefinedCount:0,selectAll:!1,deleteGroup:!1,resizeObserver:null,maxTableHeight:0}},computed:{predefinedInquiries:function(){return this.$store.state.predefinedInquiries.map((function(e){return e.isPredefined=!0,e}))},predefinedInquiriesIds:function(){return new Set(this.predefinedInquiries.map((function(e){return e.id})))},showedInquiries:function(){var e=this,t=this.allInquiries;return this.filter&&(t=t.filter((function(t){return t.name.toUpperCase().indexOf(e.filter.toUpperCase())>=0}))),t},allInquiries:function(){return this.predefinedInquiries.concat(this.inquiries)},processedInquiryIndex:function(){var e=this;return this.inquiries.findIndex((function(t){return t.id===e.processedInquiryId}))},deleteDialogMsg:function(){if(!this.deleteGroup&&(null===this.processedInquiryIndex||this.processedInquiryIndex<0||this.processedInquiryIndex>this.inquiries.length))return"";var e=this.deleteGroup?"".concat(this.selectedNotPredefinedCount," ").concat(this.selectedNotPredefinedCount>1?"inquiries":"inquiry"):'"'.concat(this.inquiries[this.processedInquiryIndex].name,'"');return"Are you sure you want to delete ".concat(e,"?")}},created:function(){var e=this;hr.readPredefinedInquiries().then((function(t){e.$store.commit("updatePredefinedInquiries",t)})).catch(console.error).finally((function(){e.inquiries=hr.getStoredInquiries()}))},mounted:function(){this.resizeObserver=new ResizeObserver(this.calcMaxTableHeight),this.resizeObserver.observe(this.$refs["my-inquiries-content"]),this.tableResizeObserver=new ResizeObserver(this.calcNameWidth),this.tableResizeObserver.observe(this.$refs.table),this.calcNameWidth(),this.calcMaxTableHeight()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs["my-inquiries-content"]),this.tableResizeObserver.unobserve(this.$refs.table)},filters:{date:function(e){if(!e)return"";var t={year:"numeric",month:"long",day:"numeric"},i={hour12:!1,hour:"2-digit",minute:"2-digit"};return new Date(e).toLocaleDateString("en-GB",t)+" "+new Date(e).toLocaleTimeString("en-GB",i)}},methods:{calcNameWidth:function(){var e=this.$refs["name-td"]?this.$refs["name-td"][0].getBoundingClientRect().width:0;this.$refs["name-th"].style="width: ".concat(e,"px")},calcMaxTableHeight:function(){var e=this.$refs["my-inquiries-content"].offsetHeight-200;this.maxTableHeight=e-e%40+1},openInquiry:function(e){var t=this,i=this.showedInquiries[e];this.$store.dispatch("addTab",i).then((function(e){t.$store.commit("setCurrentTabId",e),t.$router.push("/workspace")}))},showRenameDialog:function(e){this.errorMsg=null,this.processedInquiryId=e,this.newName=this.inquiries[this.processedInquiryIndex].name,this.$modal.show("rename")},renameInquiry:function(){if(this.newName){var e=this.inquiries[this.processedInquiryIndex];e.name=this.newName,this.$set(this.inquiries,this.processedInquiryIndex,e),hr.updateStorage(this.inquiries);var t=this.findTabIndex(e.id);t>=0&&this.$store.commit("updateTab",{index:t,name:this.newName,id:e.id}),this.$modal.hide("rename")}else this.errorMsg="Inquiry name can't be empty"},duplicateInquiry:function(e){var t=hr.duplicateInquiry(this.showedInquiries[e]);this.selectAll&&(this.selectedInquiriesIds.add(t.id),this.selectedInquiriesCount=this.selectedInquiriesIds.size),this.inquiries.push(t),hr.updateStorage(this.inquiries)},showDeleteDialog:function(e){this.deleteGroup=e.size>1,this.deleteGroup||(this.processedInquiryId=e.values().next().value),this.$modal.show("delete")},deleteInquiry:function(){var e=this;if(this.$modal.hide("delete"),this.deleteGroup){this.inquiries=this.selectAll?[]:this.inquiries.filter((function(t){return!e.selectedInquiriesIds.has(t.id)}));for(var t=this.$store.state.tabs,i=t.length-1;i>=0;i--)this.selectedInquiriesIds.has(t[i].id)&&this.$store.commit("deleteTab",i);this.selectedInquiriesIds.clear()}else{this.inquiries.splice(this.processedInquiryIndex,1);var n=this.findTabIndex(this.processedInquiryId);n>=0&&this.$store.commit("deleteTab",n),this.selectedInquiriesIds.has(this.processedInquiryId)&&this.selectedInquiriesIds.delete(this.processedInquiryId)}this.selectedInquiriesCount=this.selectedInquiriesIds.size,hr.updateStorage(this.inquiries)},findTabIndex:function(e){return this.$store.state.tabs.findIndex((function(t){return t.id===e}))},exportToFile:function(e,t){var i=hr.serialiseInquiries(e);C.exportToFile(i,t)},exportSelectedInquiries:function(){var e=this,t=this.selectAll?this.allInquiries:this.allInquiries.filter((function(t){return e.selectedInquiriesIds.has(t.id)}));this.exportToFile(t,"My sqliteviz inquiries.json")},importInquiries:function(){var e=this;hr.importInquiries().then((function(t){e.selectAll&&(t.forEach((function(t){e.selectedInquiriesIds.add(t.id)})),e.selectedInquiriesCount=e.selectedInquiriesIds.size),e.inquiries=e.inquiries.concat(t),hr.updateStorage(e.inquiries)}))},toggleSelectAll:function(e){this.selectAll=e,this.$refs.rowCheckBox.forEach((function(t){t.checked=e})),this.selectedInquiriesIds=e?new Set(this.allInquiries.map((function(e){return e.id}))):new Set,this.selectedInquiriesCount=this.selectedInquiriesIds.size,this.selectedNotPredefinedCount=e?this.inquiries.length:0},toggleRow:function(e,t){var i=this.predefinedInquiriesIds.has(t);e?(this.selectedInquiriesIds.add(t),i||(this.selectedNotPredefinedCount+=1)):(this.selectedInquiriesIds.size===this.allInquiries.length&&(this.$refs.mainCheckBox.checked=!1,this.selectAll=!1),this.selectedInquiriesIds.delete(t),i||(this.selectedNotPredefinedCount-=1)),this.selectedInquiriesCount=this.selectedInquiriesIds.size}}},mr=Ir,Nr=(i("f8c1"),Object(s["a"])(mr,Ha,$a,!1,null,"2b039cec",null)),fr=Nr.exports,vr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"dbloader-container"}},[i("db-uploader",{attrs:{type:"illustrated"}}),i("div",{attrs:{id:"note"}},[e._v(" Sqliteviz is fully client-side. Your database never leaves your computer. ")]),i("button",{staticClass:"secondary",attrs:{id:"skip"},on:{click:function(t){return e.$router.push("/workspace")}}},[e._v(" Create empty database ")])],1)},Dr=[],jr={name:"Welcome",components:{DbUploader:Qt}},yr=jr,br=(i("f2b5"),Object(s["a"])(yr,vr,Dr,!1,null,"0da5ae79",null)),Cr=br.exports,zr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("main-menu"),i("keep-alive",{attrs:{include:"Workspace"}},[i("router-view",{attrs:{id:"main-view"}})],1)],1)},Tr=[],wr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",[n("div",[n("router-link",{attrs:{to:"/workspace"}},[e._v("Workspace")]),n("router-link",{attrs:{to:"/inquiries"}},[e._v("Inquiries")]),n("a",{attrs:{href:"https://github.com/lana-k/sqliteviz/wiki",target:"_blank"}},[e._v("Help")])],1),n("div",{attrs:{id:"nav-buttons"}},[n("button",{directives:[{name:"show",rawName:"v-show",value:e.currentInquiry&&"/workspace"===e.$route.path,expression:"currentInquiry && $route.path === '/workspace'"}],staticClass:"primary",attrs:{id:"save-btn",disabled:e.isSaved},on:{click:e.checkInquiryBeforeSave}},[e._v(" Save ")]),n("button",{staticClass:"primary",attrs:{id:"create-btn"},on:{click:e.createNewInquiry}},[e._v(" Create ")]),n("app-diagnostic-info")],1),n("modal",{attrs:{name:"save",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Save inquiry "),n("close-icon",{on:{click:e.cancelSave}})],1),n("div",{staticClass:"dialog-body"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isPredefined,expression:"isPredefined"}],attrs:{id:"save-note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. ")]),n("text-field",{attrs:{label:"Inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:e.cancelSave}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.saveInquiry}},[e._v("Save")])])])],1)},xr=[],Or=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app-info-container"}},[n("img",{attrs:{id:"app-info-icon",src:i("db39")},on:{click:function(t){return e.$modal.show("app-info")}}}),n("modal",{attrs:{name:"app-info",classes:"dialog",height:"auto",width:"400px"}},[n("div",{staticClass:"dialog-header"},[e._v(" App info "),n("close-icon",{on:{click:function(t){return e.$modal.hide("app-info")}}})],1),n("div",{staticClass:"dialog-body"},e._l(e.info,(function(t,i){return n("div",{key:i,staticClass:"info-item"},[e._v(" "+e._s(t.name)+" "),n("div",{staticClass:"divider"}),n("div",{staticClass:"options"},e._l(t.info,(function(t,i){return n("div",{key:i},[e._v(" "+e._s(t)+" ")])})),0)])})),0)])],1)},Ar=[],Lr={name:"AppDiagnosticInfo",components:{CloseIcon:Oe},data:function(){return{info:[{name:"sqliteviz version",info:[i("9224").version]}]}},created:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$store.state,t.next=3,i.db.execute("select sqlite_version()");case 3:return n=t.sent.values,e.info.push({name:"SQLite version",info:n["sqlite_version()"]}),t.next=7,i.db.execute("PRAGMA compile_options");case 7:n=t.sent.values,e.info.push({name:"SQLite compile options",info:n.compile_options});case 9:case"end":return t.stop()}}),t)})))()}},kr=Lr,Er=(i("47c1"),Object(s["a"])(kr,Or,Ar,!1,null,"6bad2e0a",null)),Sr=Er.exports,Qr={name:"MainMenu",components:{TextField:F,CloseIcon:Oe,AppDiagnosticInfo:Sr},data:function(){return{name:"",errorMsg:null}},computed:{currentInquiry:function(){return this.$store.state.currentTab},isSaved:function(){if(!this.currentInquiry)return!1;var e=this.currentInquiry.tabIndex,t=this.$store.state.tabs[e];return t&&t.isSaved},isPredefined:function(){return!!this.currentInquiry&&this.currentInquiry.isPredefined},runDisabled:function(){return this.currentInquiry&&(!this.$store.state.db||!this.currentInquiry.query)}},created:function(){this.$root.$on("createNewInquiry",this.createNewInquiry),this.$root.$on("saveInquiry",this.checkInquiryBeforeSave),document.addEventListener("keydown",this._keyListener)},beforeDestroy:function(){document.removeEventListener("keydown",this._keyListener)},methods:{createNewInquiry:function(){var e=this;this.$store.dispatch("addTab").then((function(t){e.$store.commit("setCurrentTabId",t),"/workspace"!==e.$route.path&&e.$router.push("/workspace")}))},cancelSave:function(){this.$modal.hide("save"),this.$root.$off("inquirySaved")},checkInquiryBeforeSave:function(){this.errorMsg=null,this.name="",hr.isTabNeedName(this.currentInquiry)?this.$modal.show("save"):this.saveInquiry()},saveInquiry:function(){var e=this,t=hr.isTabNeedName(this.currentInquiry);if(!t||this.name){var i=this.currentInquiry.result,n=this.currentInquiry.view,a=hr.save(this.currentInquiry,this.name);this.$store.commit("updateTab",{index:this.currentInquiry.tabIndex,name:a.name,id:a.id,query:a.query,viewType:a.viewType,viewOptions:a.viewOptions,isSaved:!0}),this.$nextTick((function(){e.currentInquiry.result=i,e.currentInquiry.view=n})),this.$modal.hide("save"),this.$root.$emit("inquirySaved")}else this.errorMsg="Inquiry name can't be empty"},_keyListener:function(e){if("/workspace"===this.$route.path){if(("r"===e.key||"Enter"===e.key)&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.runDisabled||this.currentInquiry.execute());if("s"===e.key&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.isSaved||this.checkInquiryBeforeSave())}"b"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.createNewInquiry())}}},Ur=Qr,Yr=(i("2cf3"),Object(s["a"])(Ur,wr,xr,!1,null,"707ebea6",null)),Zr=Yr.exports,Pr=(i("e506"),{name:"Main",components:{MainMenu:Zr}}),_r=Pr,qr=(i("d2db"),Object(s["a"])(_r,zr,Tr,!1,null,"25aa04f9",null)),Vr=qr.exports;n["default"].use(d["a"]);var Rr=[{path:"/",name:"Welcome",component:Cr},{path:"/",name:"Main",component:Vr,children:[{path:"/workspace",name:"Workspace",component:Ga},{path:"/inquiries",name:"Inquiries",component:fr}]}],Br=new d["a"]({routes:Rr});Br.beforeEach(function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(Mi.state.db){e.next=5;break}return a=Ie.getNewDatabase(),e.next=4,a.loadDb();case 4:Mi.commit("setDb",a);case 5:n();case 6:case"end":return e.stop()}}),e)})));return function(t,i,n){return e.apply(this,arguments)}}());var Gr=Br,Hr=i("b8ae"),$r=i("1881"),Wr=i.n($r);i("017d"),i("33da"),i("6d26"),i("bebf"),i("7432"),i("4a8d"),i("e607"),i("feae");["localhost","127.0.0.1"].includes(location.hostname)||i.e("chunk-60cbf026").then(i.t.bind(null,"ddb8",7)),n["default"].use(Hr["VuePlugin"]),n["default"].use(Wr.a),n["default"].config.productionTip=!1,new n["default"]({router:Gr,store:Mi,render:function(e){return e(l)}}).$mount("#app")},"5ca7":function(e,t,i){},"5f8a":function(e,t,i){},"60f1":function(e,t,i){},"61d8":function(e,t,i){},"637d":function(e,t,i){"use strict";var n=i("6afd"),a=i.n(n);a.a},"64b6":function(e,t,i){"use strict";var n=i("231b"),a=i.n(n);a.a},"69e6":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"6a0b":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo="},"6afd":function(e,t,i){},"6d26":function(e,t,i){},"6eba":function(e,t,i){},7314:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K"},7432:function(e,t,i){},7974:function(e,t,i){},"7a18":function(e,t,i){},"7e99":function(e,t,i){"use strict";var n=i("3db6"),a=i.n(n);a.a},"807c":function(e,t,i){"use strict";var n=i("3c99"),a=i.n(n);a.a},"80ad":function(e,t,i){"use strict";var n=i("2337"),a=i.n(n);a.a},"81e6":function(e,t,i){"use strict";var n=i("3856"),a=i.n(n);a.a},8458:function(e,t,i){},"85ec":function(e,t,i){},"87d4":function(e,t,i){e.exports=i.p+"img/file.f5540c43.png"},8913:function(e,t,i){},"8c0b":function(e,t,i){},"8f6e":function(e,t,i){},"8fcc":function(e,t,i){},9080:function(e,t,i){},9224:function(e){e.exports=JSON.parse('{"name":"sqliteviz","version":"0.15.2","license":"Apache-2.0","private":true,"scripts":{"serve":"vue-cli-service serve","build":"NODE_OPTIONS=--max_old_space_size=4096 vue-cli-service build","test":"vue-cli-service karma","lint":"vue-cli-service lint"},"dependencies":{"codemirror":"^5.57.0","core-js":"^3.6.5","html2canvas":"^1.1.4","jquery":"^3.6.0","nanoid":"^3.1.12","papaparse":"^5.3.1","pivottable":"^2.23.0","plotly.js":"^1.58.4","promise-worker":"^2.0.1","react":"^16.13.1","react-chart-editor":"^0.45.0","react-dom":"^16.13.1","sql.js":"file:./lib/sql-js","sqlite-parser":"^1.0.1","vue":"^2.6.11","vue-codemirror":"^4.0.6","vue-js-modal":"^2.0.0-rc.6","vue-multiselect":"^2.1.6","vue-router":"^3.2.0","vue2-teleport":"^1.0.1","vuejs-paginate":"^2.1.0","vuera":"^0.2.7","vuex":"^3.4.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.4.0","@vue/cli-plugin-eslint":"^4.4.0","@vue/cli-plugin-router":"^4.4.0","@vue/cli-plugin-vuex":"^4.4.0","@vue/cli-service":"^4.4.0","@vue/eslint-config-standard":"^5.1.2","@vue/test-utils":"^1.1.2","babel-eslint":"^10.1.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^6.7.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-vue":"^6.2.2","karma":"^3.1.4","karma-firefox-launcher":"^2.1.0","karma-webpack":"^4.0.2","vue-cli-plugin-ui-karma":"^0.2.5","vue-template-compiler":"^2.6.11","workbox-webpack-plugin":"^6.1.5","worker-loader":"^3.0.8"}}')},"93dd":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"9ae5":function(e,t,i){},"9bf4":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo="},a1f0:function(e,t,i){"use strict";var n=i("5ca7"),a=i.n(n);a.a},a303:function(e,t,i){},a96d:function(e,t,i){"use strict";var n=i("3a01"),a=i.n(n);a.a},b288:function(e,t,i){},b3ae:function(e,t,i){},b51c:function(e,t,i){},b5fd:function(e,t,i){"use strict";var n=i("5f8a"),a=i.n(n);a.a},be12:function(e,t,i){"use strict";var n=i("9ae5"),a=i.n(n);a.a},bebf:function(e,t,i){},c2fc:function(e,t,i){"use strict";var n=i("61d8"),a=i.n(n);a.a},c4dc:function(e,t,i){"use strict";var n=i("1c6b"),a=i.n(n);a.a},cba9:function(e,t,i){"use strict";var n=i("6eba"),a=i.n(n);a.a},cd48:function(e,t,i){"use strict";var n=i("8f6e"),a=i.n(n);a.a},d24f:function(e,t,i){},d2db:function(e,t,i){"use strict";var n=i("9080"),a=i.n(n);a.a},d7ec:function(e,t,i){"use strict";var n=i("4313"),a=i.n(n);a.a},d9ad:function(e,t,i){"use strict";var n=i("a303"),a=i.n(n);a.a},daef:function(e,t,i){"use strict";var n=i("547f"),a=i.n(n);a.a},db39:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg=="},dbb4:function(e,t,i){},dd9c:function(e,t,i){"use strict";var n=i("345a"),a=i.n(n);a.a},dfd4:function(e,t,i){"use strict";var n=i("7974"),a=i.n(n);a.a},e506:function(e,t,i){},f2b5:function(e,t,i){"use strict";var n=i("0cce"),a=i.n(n);a.a},f4da:function(e,t,i){"use strict";var n=i("8913"),a=i.n(n);a.a},f4e5:function(e,t,i){"use strict";var n=i("b51c"),a=i.n(n);a.a},f7a6:function(e,t,i){"use strict";var n=i("0720"),a=i.n(n);a.a},f8c1:function(e,t,i){"use strict";var n=i("8458"),a=i.n(n);a.a},fc07:function(e,t,i){"use strict";var n=i("60f1"),a=i.n(n);a.a},feae:function(e,t,i){}}); +//# sourceMappingURL=app.6b687a75.js.map \ No newline at end of file diff --git a/js/app.6b687a75.js.map b/js/app.6b687a75.js.map new file mode 100644 index 0000000..adcd39c --- /dev/null +++ b/js/app.6b687a75.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9b05","webpack:///./src/components/Logs.vue?0fc7","webpack:///./src/assets/images/success.svg","webpack:///./src/assets/images/chevron.svg","webpack:///./src/components/svg/export.vue?1835","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?f796","webpack:///./src/components/svg/addTable.vue?404b","webpack:///./src/assets/images/body.svg","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?8a2b","webpack:///./src/views/Main/Workspace/Schema/index.vue?d772","webpack:///./src/assets/images/rightArm.svg","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?99f2","webpack:///./src/views/Main/Workspace/index.vue?2f51","webpack:///./src/views/Main/MainMenu.vue?58b4","webpack:///./src/components/svg/treeChevron.vue?b6ad","webpack:///./src/components/DbUploader.vue?2df9","webpack:///./src/assets/images/top.svg","webpack:///./src/assets/images/checkbox_checked_disabled.svg","webpack:///./src/views/Main/AppDiagnosticInfo.vue?fbea","webpack:///./src/components/svg/dropDownChevron.vue?d4f2","webpack:///./src/components/svg/sort.vue?a914","webpack:///./src/App.vue?62c5","webpack:///./src/App.vue","webpack:///./src/views/Main/Workspace/index.vue?3363","webpack:///./src/components/Splitpanes/index.vue?fca9","webpack:///./src/components/Splitpanes/splitter.js","webpack:///src/components/Splitpanes/index.vue","webpack:///./src/components/Splitpanes/index.vue?7002","webpack:///./src/components/Splitpanes/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?26ea","webpack:///./src/lib/utils/fileIo.js","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?d428","webpack:///./src/components/svg/treeChevron.vue?ef78","webpack:///src/components/svg/treeChevron.vue","webpack:///./src/components/svg/treeChevron.vue?1b38","webpack:///./src/components/svg/treeChevron.vue","webpack:///src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?c905","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/components/TextField.vue?22ea","webpack:///./src/components/svg/hint.vue?f43c","webpack:///./src/tooltipMixin.js","webpack:///src/components/svg/hint.vue","webpack:///./src/components/svg/hint.vue?7e42","webpack:///./src/components/svg/hint.vue","webpack:///src/components/TextField.vue","webpack:///./src/components/TextField.vue?2591","webpack:///./src/components/TextField.vue","webpack:///./src/components/DbUploader.vue?da50","webpack:///./src/components/svg/changeDb.vue?9601","webpack:///src/components/svg/changeDb.vue","webpack:///./src/components/svg/changeDb.vue?8a76","webpack:///./src/components/svg/changeDb.vue","webpack:///./src/lib/database/_statements.js","webpack:///./src/lib/database/_worker.js","webpack:///./src/lib/database/index.js","webpack:///./src/components/CsvImport/index.vue?e70f","webpack:///./src/components/CsvImport/csv.js","webpack:///./src/components/svg/close.vue?30e6","webpack:///src/components/svg/close.vue","webpack:///./src/components/svg/close.vue?e99c","webpack:///./src/components/svg/close.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?efc2","webpack:///./src/components/CsvImport/DelimiterSelector/ascii.js","webpack:///./src/components/svg/dropDownChevron.vue?fceb","webpack:///src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/dropDownChevron.vue?82eb","webpack:///./src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/clear.vue?9793","webpack:///src/components/svg/clear.vue","webpack:///./src/components/svg/clear.vue?295f","webpack:///./src/components/svg/clear.vue","webpack:///src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?8465","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CheckBox.vue?1a60","webpack:///src/components/CheckBox.vue","webpack:///./src/components/CheckBox.vue?093c","webpack:///./src/components/CheckBox.vue","webpack:///./src/components/SqlTable/index.vue?7f57","webpack:///./src/components/SqlTable/Pager.vue?412f","webpack:///src/components/SqlTable/Pager.vue","webpack:///./src/components/SqlTable/Pager.vue?7612","webpack:///./src/components/SqlTable/Pager.vue","webpack:///src/components/SqlTable/index.vue","webpack:///./src/components/SqlTable/index.vue?c2e6","webpack:///./src/components/SqlTable/index.vue","webpack:///./src/components/Logs.vue?949f","webpack:///./src/components/LoadingIndicator.vue?d46b","webpack:///src/components/LoadingIndicator.vue","webpack:///./src/components/LoadingIndicator.vue?19ce","webpack:///./src/components/LoadingIndicator.vue","webpack:///src/components/Logs.vue","webpack:///./src/components/Logs.vue?e94a","webpack:///./src/components/Logs.vue","webpack:///./src/lib/utils/time.js","webpack:///src/components/CsvImport/index.vue","webpack:///./src/components/CsvImport/index.vue?ee8f","webpack:///./src/components/CsvImport/index.vue","webpack:///src/components/DbUploader.vue","webpack:///./src/components/DbUploader.vue?1d2f","webpack:///./src/components/DbUploader.vue","webpack:///./src/components/svg/export.vue?7a80","webpack:///src/components/svg/export.vue","webpack:///./src/components/svg/export.vue?fe2d","webpack:///./src/components/svg/export.vue","webpack:///./src/components/svg/addTable.vue?cbb3","webpack:///src/components/svg/addTable.vue","webpack:///./src/components/svg/addTable.vue?28ba","webpack:///./src/components/svg/addTable.vue","webpack:///src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?a1f6","webpack:///./src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?a945","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?1546","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?7bda","webpack:///./src/store/state.js","webpack:///./src/store/mutations.js","webpack:///./src/store/actions.js","webpack:///./src/store/index.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/hint.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?deed","webpack:///./src/components/IconButton.vue?d454","webpack:///src/components/IconButton.vue","webpack:///./src/components/IconButton.vue?8571","webpack:///./src/components/IconButton.vue","webpack:///./src/components/svg/table.vue?f24b","webpack:///src/components/svg/table.vue","webpack:///./src/components/svg/table.vue?491d","webpack:///./src/components/svg/table.vue","webpack:///./src/components/svg/sqlEditor.vue?001c","webpack:///src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/sqlEditor.vue?26e3","webpack:///./src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/dataView.vue?a2d8","webpack:///src/components/svg/dataView.vue","webpack:///./src/components/svg/dataView.vue?ea7d","webpack:///./src/components/svg/dataView.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?24a6","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/components/svg/run.vue?6881","webpack:///src/components/svg/run.vue","webpack:///./src/components/svg/run.vue?2175","webpack:///./src/components/svg/run.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?dba8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?e062","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?c72b","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/chartHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?81fb","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?cbc9","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?bbf1","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?fbb6","webpack:///./src/components/svg/sort.vue?ef4d","webpack:///src/components/svg/sort.vue","webpack:///./src/components/svg/sort.vue?8d22","webpack:///./src/components/svg/sort.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?e25c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/pivotHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?0f10","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?9f12","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/components/svg/chart.vue?1478","webpack:///src/components/svg/chart.vue","webpack:///./src/components/svg/chart.vue?3a5e","webpack:///./src/components/svg/chart.vue","webpack:///./src/components/svg/pivot.vue?690e","webpack:///src/components/svg/pivot.vue","webpack:///./src/components/svg/pivot.vue?5db1","webpack:///./src/components/svg/pivot.vue","webpack:///./src/components/svg/png.vue?78db","webpack:///src/components/svg/png.vue","webpack:///./src/components/svg/png.vue?870d","webpack:///./src/components/svg/png.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?90d3","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?8634","webpack:///src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?05ce","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?c6f1","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///src/views/Main/Workspace/Tabs/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?8b02","webpack:///./src/views/Main/Workspace/Tabs/index.vue","webpack:///src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Workspace/index.vue?1a44","webpack:///./src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?4e02","webpack:///./src/views/Main/Inquiries/svg/rename.vue?2e24","webpack:///src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/rename.vue?5205","webpack:///./src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?bf48","webpack:///src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?f41f","webpack:///./src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?d6d2","webpack:///src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?009b","webpack:///./src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/lib/storedInquiries/_migrations.js","webpack:///./src/lib/storedInquiries/index.js","webpack:///src/views/Main/Inquiries/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?33c1","webpack:///./src/views/Main/Inquiries/index.vue","webpack:///./src/views/Welcome.vue?ad35","webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?253e","webpack:///./src/views/Welcome.vue","webpack:///./src/views/Main/index.vue?55c9","webpack:///./src/views/Main/MainMenu.vue?b21e","webpack:///./src/views/Main/AppDiagnosticInfo.vue?0b3a","webpack:///src/views/Main/AppDiagnosticInfo.vue","webpack:///./src/views/Main/AppDiagnosticInfo.vue?4caa","webpack:///./src/views/Main/AppDiagnosticInfo.vue","webpack:///src/views/Main/MainMenu.vue","webpack:///./src/views/Main/MainMenu.vue?76b3","webpack:///./src/views/Main/MainMenu.vue","webpack:///src/views/Main/index.vue","webpack:///./src/views/Main/index.vue?5975","webpack:///./src/views/Main/index.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/svg/changeDb.vue?8a94","webpack:///./src/views/Main/Workspace/Tabs/index.vue?243c","webpack:///./src/assets/images/checkbox_checked_light.svg","webpack:///./src/assets/images/bottom.svg","webpack:///./src/assets/images/error.svg","webpack:///./src/views/Main/Inquiries/svg/delete.vue?1927","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?07b5","webpack:///./src/components/svg/hint.vue?b071","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?df15","webpack:///./src/assets/images/file.png","webpack:///./src/assets/images/checkbox_checked.svg","webpack:///./src/assets/images/leftArm.svg","webpack:///./src/components/Splitpanes/index.vue?b0be","webpack:///./src/components/CheckBox.vue?8ce8","webpack:///./src/views/Main/Inquiries/svg/rename.vue?6a9c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?3c1f","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?6cac","webpack:///./src/components/CsvImport/index.vue?7e36","webpack:///./src/views/Main/Inquiries/svg/copy.vue?7022","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?ea72","webpack:///./src/views/Main/index.vue?b83e","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?b2a2","webpack:///./src/components/LoadingIndicator.vue?d890","webpack:///./src/components/TextField.vue?c2e5","webpack:///./src/assets/images/info.svg","webpack:///./src/components/IconButton.vue?674f","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?8581","webpack:///./src/views/Welcome.vue?1e1a","webpack:///./src/components/svg/close.vue?17e8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?dffd","webpack:///./src/components/svg/clear.vue?d1b6","webpack:///./src/views/Main/Inquiries/index.vue?f0fe","webpack:///./src/components/SqlTable/Pager.vue?b07e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","component","staticClass","size","max","scopedSlots","_u","fn","proxy","ref","class","horizontal","dragging","style","styles","paneBefore","_t","on","bindEvents","after","before","paneAfter","$event","togglePane","_e","getCurrentMouseDrag","container","rect","getBoundingClientRect","touches","clientX","clientY","x","left","y","top","getCurrentDragPercentage","isHorisontal","drag","containerSize","calculateOffset","paneBeforeMax","paneAfterMax","dragPercentage","paneBeforeMaxReached","paneAfterMaxReached","Math","min","props","beforeMinimising","movableSplitter","visibility","computed","movableSplitterStyle","directionBeforeIconStyle","rotation","expanded","transform","translation","directionAfterIconStyle","methods","addEventListener","onMouseMove","onMouseUp","unbindEvents","removeEventListener","preventDefault","moveSplitter","dir","offset","pane","otherPane","mounted","$refs","model","callback","$$v","filter","expression","schemaVisible","directives","rawName","schema","_v","_s","dbName","exportToFile","addCsv","_l","table","columns","file","$store","state","db","isDatabase","dbTypes","includes","test","getFileName","replace","downloadFromUrl","url","fileName","downloader","href","download","click","URL","revokeObjectURL","str","blob","Blob","createObjectURL","getFileFromUser","uploader","accept","files","importFile","reader","FileReader","then","readAsText","readFile","path","fetch","readAsArrayBuffer","fileReader","abort","colVisible","col","index","Boolean","required","components","errorMsg","disabled","label","hint","maxHintWidth","width","placeholder","domProps","$emit","stopPropagation","onClick","showTooltip","hideTooltip","assign","tooltipStyle","maxWidth","tooltipElement","tooltip","tooltipPosition","position","split","offsetWidth","mixins","tooltipMixin","browse","drop","newDb","cancelCsvImport","finish","generateChunks","matrix","keys","map","row","transposedMatrix","column","count","ceil","start","end","getInsertStmt","tabName","colList","join","params","getCreateStatement","getAst","sql","fixedSql","sqliteParser","getColumns","ast","columnDefinition","statement","format","definition","args","forEach","item","variant","datatype","Worker_fn","Worker","getNewDatabase","worker","Database","progressCounterIds","pw","PromiseWorker","importProgresses","progress","id","dispatchEvent","CustomEvent","detail","terminate","EventTarget","progressCounterId","postMessage","action","refreshSchema","fu","fileContent","buffer","res","getSchemaSql","execute","parsedSchema","values","stms","commands","results","startsWith","dialogName","disableDialog","tableNameError","tableName","previewCsv","delimiter","quoteChar","escapeChar","header","previewData","rowCount","importCsvMessages","importCsvCompleted","loadFromCsv","hintsByCode","MissingQuotes","TooFewFields","TooManyFields","getResult","source","meta","fields","colName","trim","Date","toISOString","parse","config","defaultConfig","newline","transformHeader","dynamicTyping","preview","encoding","comments","step","complete","hasErrors","messages","errors","msg","code","downloadRequestHeaders","downloadRequestBody","skipEmptyLines","chunkSize","fastMode","beforeFirstChunk","withCredentials","delimitersToGuess","Papa","RECORD_SEP","UNIT_SEP","Number","default","onContainerClick","filled","composing","inputValue","getSymbolName","nativeOn","clear","showOptions","option","chooseOption","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","options","watch","created","ascii","charCodeAt","toString","delimiterInput","focus","checked","theme","String","validator","init","th","onScrollTable","refInFor","currentPageData","rowIndex","colIndex","dataSet","time","pageCount","currentPage","chevron","page","pageSize","tableWidth","resizeObserver","cellStyle","calculateHeadersWidth","$nextTick","scrollLeft","ResizeObserver","observe","beforeDestroy","unobserve","serializeMessage","animationClass","strokeWidth","radius","strokeDasharray","circleProgress","strokeDashoffset","scrollToBottom","getPeriod","diff","getTime","seconds","toFixed","debounce","func","ms","arguments","CloseIcon","TextField","DelimiterSelector","CheckBox","SqlTable","Logs","addedTable","validateTableName","$modal","hide","reset","open","sanitizeTableName","show","ChangeDbIcon","CsvImport","animationPromise","animationName","shutDown","loadDb","checkFile","dataTransfer","TableDescription","TreeChevron","DbUploader","ExportIcon","AddTableIcon","export","tabs","tab","selectedIndex","selectTab","isSaved","tempName","beforeCloseTab","query","viewOptions","viewType","isPredefined","$root","closingTabIndex","closeTab","saveAndClose","tabIndex","layout","isGettingResults","onSwitchView","initViewOptions","initViewType","onDataViewUpdate","cmOptions","onChange","runDisabled","currentTab","currentTabId","untitledLastIndex","predefinedInquiries","setDb","updateTab","oldId","Vue","set","deleteTab","setCurrentTabId","setCurrentTab","updatePredefinedInquiries","inquiries","Array","isArray","addTab","JSON","stringify","nanoid","some","openedTab","use","Vuex","Store","mutations","actions","getHints","cm","token","getTokenAt","getCursor","string","toUpperCase","CM","list","text","hintOptions","tables","store","completeSingle","completeOnSingleClick","alignWithWord","showHintOnDemand","editor","showHint","ch","tokenType","panel","$slots","active","IconButton","SqlEditorIcon","DataViewIcon","TableIcon","codemirror","SideToolBar","RunIcon","tabSize","lineNumbers","line","autoRefresh","extraKeys","tag","initMode","initOptions","dataSource","importToPngEnabled","loadingImage","saveAsPng","dataSources","visible","height","frames","editable","displaylogo","modeBarButtonsToRemove","dataSourceOptions","plotly","update","onRender","getOptionsFromDataSources","getOptionsForSave","stateCopy","emptySources","dereference","PlotlyEditor","chartHelper","handleResize","chartContainer","pivotOptions","collapsed","colsToSelect","cols","slot","colOrder","rowsToSelect","rows","rowOrder","aggregators","aggregator","valCount","keyNames","val1","val2","renderers","renderer","direction","changeSorting","asc","SortIcon","zeroValAggregators","twoValAggregators","_getDataSources","pivotData","rowKeys","getRowKeys","colKeys","getColKeys","colKey","rowKey","dataSourcesByRows","dataSourcesByCols","rowAttrs","colAttrs","sourceColKey","getAggregator","sourceRowKey","customChartRenderer","customChartComponent","$mount","$","$el","extend","pivotUtilities","export_renderers","plotly_renderers","fun","Multiselect","PivotSortBtn","returnValue","$on","vals","aggregatorName","rendererName","rendererOptions","PivotUi","immediate","handler","pivotOutput","Event","autosize","plotlyConfig","responsive","customChartOptions","chartComponent","Chart","Pivot","ChartIcon","PivotIcon","PngIcon","viewComponent","LoadingIndicator","runResultPanel","calculatePageSize","floor","freeSpace","SqlEditor","DataView","RunResult","Splitpanes","Teleport","initQuery","sqlEditor","dataView","isActive","commit","from","to","fromPosition","Tab","leavingSqliteviz","Schema","Tabs","showedInquiries","importInquiries","selectedInquiriesCount","exportSelectedInquiries","selectedNotPredefinedCount","showDeleteDialog","selectedInquiriesIds","toggleSelectAll","maxTableHeight","inquiry","openInquiry","selectAll","has","toggleRow","_f","createdAt","showRenameDialog","duplicateInquiry","Set","add","newName","renameInquiry","deleteGroup","deleteDialogMsg","deleteInquiry","_migrate","installedVersion","inquire","chart","migrate","migration","version","getStoredInquiries","myInquiries","localStorage","getItem","oldInquiries","updateStorage","baseInquiry","newInquiry","isTabNeedName","inquiryTab","isFromScratch","initName","save","inquiryIndex","findIndex","oldInquiry","setItem","serialiseInquiries","inquiryList","preparedData","deserialiseInquiries","allInquiriesIds","readPredefinedInquiries","json","RenameIcon","CopyIcon","DeleteIcon","processedInquiryId","predefinedInquiriesIds","allInquiries","concat","processedInquiryIndex","storedInquiries","calcMaxTableHeight","tableResizeObserver","calcNameWidth","filters","date","hour12","hour","minute","toLocaleDateString","dateOptions","dispatch","processedInquiry","$set","idsSet","next","delete","findTabIndex","rowCheckBox","mainCheckBox","$router","currentInquiry","$route","checkInquiryBeforeSave","createNewInquiry","cancelSave","saveInquiry","opt","info","AppDiagnosticInfo","_keyListener","$off","isNeedName","ctrlKey","metaKey","VueRouter","routes","Welcome","Main","children","Workspace","Inquiries","router","beforeEach","database","location","hostname","VuePlugin","VModal","productionTip","render","h","App"],"mappings":"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","file":"js/app.6b687a75.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-60cbf026\":\"37d9df6c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjQ5OTggMTYuNjY2N0M2LjgyNDg0IDE2LjY2NjcgMy44MzMxNyAxMy42NzUgMy44MzMxNyAxMEMzLjgzMzE3IDYuMzI1MDIgNi44MjQ4NCAzLjMzMzM1IDEwLjQ5OTggMy4zMzMzNUMxNC4xNzQ4IDMuMzMzMzUgMTcuMTY2NSA2LjMyNTAyIDE3LjE2NjUgMTBDMTcuMTY2NSAxMy42NzUgMTQuMTc0OCAxNi42NjY3IDEwLjQ5OTggMTYuNjY2N1pNMTAuNDk5OCAxLjY2NjY5QzkuNDA1NDkgMS42NjY2OSA4LjMyMTg2IDEuODgyMjQgNy4zMTA4MSAyLjMwMTAyQzYuMjk5NzYgMi43MTk4MSA1LjM4MTEgMy4zMzM2NCA0LjYwNzI4IDQuMTA3NDZDMy4wNDQ0OCA1LjY3MDI3IDIuMTY2NSA3Ljc4OTg4IDIuMTY2NSAxMEMyLjE2NjUgMTIuMjEwMiAzLjA0NDQ4IDE0LjMyOTggNC42MDcyOCAxNS44OTI2QzUuMzgxMSAxNi42NjY0IDYuMjk5NzYgMTcuMjgwMiA3LjMxMDgxIDE3LjY5OUM4LjMyMTg2IDE4LjExNzggOS40MDU0OSAxOC4zMzM0IDEwLjQ5OTggMTguMzMzNEMxMi43MSAxOC4zMzM0IDE0LjgyOTYgMTcuNDU1NCAxNi4zOTI0IDE1Ljg5MjZDMTcuOTU1MiAxNC4zMjk4IDE4LjgzMzIgMTIuMjEwMiAxOC44MzMyIDEwQzE4LjgzMzIgOC45MDU2NyAxOC42MTc2IDcuODIyMDQgMTguMTk4OCA2LjgxMDk5QzE3Ljc4IDUuNzk5OTUgMTcuMTY2MiA0Ljg4MTI5IDE2LjM5MjQgNC4xMDc0NkMxNS42MTg2IDMuMzMzNjQgMTQuNjk5OSAyLjcxOTgxIDEzLjY4ODkgMi4zMDEwMkMxMi42Nzc4IDEuODgyMjQgMTEuNTk0MiAxLjY2NjY5IDEwLjQ5OTggMS42NjY2OVoiIGZpbGw9IiMwMENDOTYiLz4KPHJlY3QgeD0iNi4wOTcxNyIgeT0iMTAuMjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNC4zNDUiIHRyYW5zZm9ybT0icm90YXRlKC00NSA2LjA5NzE3IDEwLjI3NzEpIiBmaWxsPSIjMDBDQzk2Ii8+CjxyZWN0IHg9IjEzLjc1MiIgeT0iNi45NzU4OSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNy43NDM1OSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTMuNzUyIDYuOTc1ODkpIiBmaWxsPSIjMDBDQzk2Ii8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgNCA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNCAwLjk4MDU2VjQuNUw0LjAwMDA0IDcuNzE0MjhMNCA5TDEuMTA2OTRlLTA3IDQuNUw0IDBWMC45ODA1NloiIGZpbGw9IiM1MDY3ODQiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzQiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA3NCA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQyIDRMMjguODg1NyAwQzcuNDM3MjkgMTYuNDUxMiAxLjg0MzE4ZS0wNSA2MS43OTYxIDAgOTZINzRDNzEuNzQxNiA2Mi4xMDg1IDU3LjUgMjQgNDIgNFoiIGZpbGw9IiNDOEQ0RTMiLz4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iNzQiIGhlaWdodD0iOTYiPgo8cGF0aCBkPSJNNDIgNEwyOC44ODU3IDBDNy40MzcyOSAxNi40NTEyIDEuODQzMThlLTA1IDYxLjc5NjEgMCA5Nkg3NEM3MS43NDE2IDYyLjEwODUgNTcuNSAyNCA0MiA0WiIgZmlsbD0iI0M4RDRFMyIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTMyLjAwMDEgNjAuNUMzOC41MDAxIDczIDYzLjUwMDEgNzYuNDk5OSA3My40OTk5IDczQzczLjQ5OTkgNzMgNzUuNzk5MiA2MC43OTk0IDc1LjUgNjAuNTAwMkM2OS43MzM5IDU0LjczMzggNDMuMDAwMyA1Ny45OTk4IDMyLjAwMDEgNjAuNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8L3N2Zz4K\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgMTA2IDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTA0LjI1MiAxLjQwODU1QzEwMC4yNjIgLTIuMDQ5NCA5My43NzczIDEuNDA4NTQgOTEuMjgzMiA1Ljg1NDI2TDEwMC4yNjIgMTQuMzkzOUMxMDQuNzUxIDEwLjc5NDEgMTA4LjI0MyA0Ljg2NjQ2IDEwNC4yNTIgMS40MDg1NVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkxLjAxMjMgNC4zNzIwN0M3Mi40NTY4IDI1LjE3MDQgMzAuNDI3OSAyMi45MjYzIDE5Ljk1MjcgNC4zNzIwN0wwIDQ0LjY2MTVDMzguNDA5IDY5Ljg1NDcgODYuNzk0NCA1MC4wOTU0IDEwMi4yNTggMTQuNTI4Nkw5MS4wMTIzIDQuMzcyMDdaIiBmaWxsPSIjQzhENEUzIi8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgdmlld0JveD0iMCAwIDQ1MCAxNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNzUiPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgMS45OTI3MkM3MC4xOTcyIC05Ljg0ODk3IDE4Ljc0NSAzMC44ODk1IDQuMzE5ODUgOTIuNjY3OEMtMTAuMTA1NCAxNTQuNDQ2IDE0LjMzMzcgMTg2LjMzMiAzNy4zMjE4IDIyNi4xODlDNzIuMzc4NCAyODYuOTcxIDE4MS41NTEgMzQxLjIzNyAyNjUuMDgzIDMzNy43ODlDMzM3LjUxNyAzMzQuOCAzODkuMDI4IDMxNi41MTQgNDI1LjkzNiAyNDguMTExQzQ4OS4zNzggMTMwLjUzMiA0MTcuNDQ0IDUzLjkwNjUgMzI1LjUyNyA2OC4yNTUxQzIxNC41NzEgODUuNTc2IDIxMy42MjkgMTkuNDMwMiAxMjguMjA3IDEuOTkyNzJaIiBmaWxsPSIjREZFOEYzIi8+CjxwYXRoIGQ9Ik0xNTYuMjg0IDE2OS40MjZDMTU4LjE1OCAxNjcuNTUzIDE2MC42OTkgMTY2LjUgMTYzLjM0OSAxNjYuNUgzMzEuOTExQzMzNC41NjEgMTY2LjUgMzM3LjEwMiAxNjcuNTUzIDMzOC45NzYgMTY5LjQyNkwzNDYuMDQxIDE3Ni40OTFIMTQ5LjIyTDE1Ni4yODQgMTY5LjQyNloiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE3NC4wOTkgMTcwLjI1OEMxNzQuMjgzIDE3MC4wOSAxNzQuNTI0IDE2OS45OTcgMTc0Ljc3MyAxNjkuOTk3SDMxOC40OUMzMTguNzM5IDE2OS45OTcgMzE4Ljk4IDE3MC4wOSAzMTkuMTY0IDE3MC4yNThWMTcwLjI1OEMzMTkuODM3IDE3MC44NzQgMzE5LjQwMiAxNzEuOTk1IDMxOC40OSAxNzEuOTk1SDE3NC43NzNDMTczLjg2MSAxNzEuOTk1IDE3My40MjYgMTcwLjg3NCAxNzQuMDk5IDE3MC4yNThWMTcwLjI1OFoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTk0LjIyNyA4Ny44ODFDOTQuMzk2MiA4MC4xOTg4IDkyLjUwNDggNjUuMDYwOCA4My41ODU3IDY1Ljk2NjRDODMuNTg1NyA2NS45NjY0IDcwLjU3NzYgNzYuMDg3NyA3NS42MzkxIDgzLjYxODhDODAuNzAwNSA5MS4xNDk4IDkzLjQ2NzcgOTQuNTA4MyA5NC4yMjcgODcuODgxWiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODkuMjc1IDkxLjMxMDVMODggOThDODUuNTAyMyA5OS40OTg2IDc2LjU1MzEgOTkuMDE5NiA3NC41IDk1Qzc0LjUgOTUgNzYuODI5OCA4OS45MTM1IDc3Ljg0NDYgODQuOTIyNkw4OS4yNzUgOTEuMzEwNVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkyLjI3MTkgNjcuMTE2MUM5Mi4yNzE5IDcyLjc2ODkgODQuMjI0MiA2OC44ODcyIDgyLjM0MjMgNzIuOTEyNkM4MC40NjA1IDc2LjkzNzkgNzcuMzk1MiA4Ni45MjA4IDc3LjM5NTIgODYuOTIwOEM3Mi42MzIzIDg0Ljc0MTQgNjYuNzI3MyA2OS4zMyA3My4yOTM2IDY1LjEwMzRDNzkuMzUwNiA2MS4yMDQ3IDkyLjI3MTkgNjMuMDEwMiA5Mi4yNzE5IDY3LjExNjFaIiBmaWxsPSIjNTA2Nzg0Ii8+CjxwYXRoIGQ9Ik03OS43NjU0IDgzLjk2MjhDNzUuMTUyMiA4MC43MjY5IDc2LjM3MSA3NS4xMzQzIDc5Ljc1NjIgNzYuOTUzNEM4NS4xOTk0IDc5Ljg3ODUgODEuMjkzNCA4Mi45ODA4IDc5Ljc2NTQgODMuOTYyOFoiIGZpbGw9IiNGM0M2QkYiLz4KPC9nPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0RGRThGMyIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kIiB4PSIwLjYyNSIgeT0iMy4xOTI1IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuMiAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=6bad2e0a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=6bad2e0a&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1fac0635&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('splitpanes',{staticClass:\"schema-tabs-splitter\",attrs:{\"before\":{ size: 20, max: 30 },\"after\":{ size: 80, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('schema')]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('tabs')]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",class:[\n 'splitpanes',\n (\"splitpanes-\" + (_vm.horizontal ? 'horizontal' : 'vertical')),\n { 'splitpanes-dragging': _vm.dragging }\n ]},[_c('div',{ref:\"movableSplitter\",staticClass:\"movable-splitter\",style:(_vm.movableSplitterStyle)}),_c('div',{ref:\"left\",staticClass:\"splitpanes-pane\",style:(_vm.styles.before),attrs:{\"size\":_vm.paneBefore.size,\"max-size\":\"30\"}},[_vm._t(\"left-pane\")],2),_c('div',{staticClass:\"splitpanes-splitter\",on:{\"mousedown\":_vm.bindEvents,\"touchstart\":_vm.bindEvents}},[_c('div',{class:[\n 'toggle-btns',\n {'both': _vm.after.max === 100 && _vm.before.max === 100 && _vm.paneAfter.size > 0 && _vm.paneBefore.size > 0}\n ]},[(_vm.after.max === 100 && _vm.paneAfter.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneBefore)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionBeforeIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e(),(_vm.before.max === 100 && _vm.paneBefore.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneAfter)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionAfterIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e()])]),_c('div',{ref:\"right\",staticClass:\"splitpanes-pane\",style:(_vm.styles.after)},[_vm._t(\"right-pane\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n // Get the cursor position relative to the splitpane container.\n getCurrentMouseDrag (event, container) {\n const rect = container.getBoundingClientRect()\n const { clientX, clientY } = ('ontouchstart' in window && event.touches)\n ? event.touches[0]\n : event\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n }\n },\n\n // Returns the drag percentage of the splitter relative to the 2 panes it's inbetween.\n getCurrentDragPercentage (event, container, isHorisontal) {\n let drag = this.getCurrentMouseDrag(event, container)\n drag = drag[isHorisontal ? 'y' : 'x']\n const containerSize = container[isHorisontal ? 'clientHeight' : 'clientWidth']\n return drag * 100 / containerSize\n },\n\n // Returns the new position in percents.\n calculateOffset (event, { container, isHorisontal, paneBeforeMax, paneAfterMax }) {\n const dragPercentage = this.getCurrentDragPercentage(event, container, isHorisontal)\n\n const paneBeforeMaxReached = paneBeforeMax < 100 && (dragPercentage >= paneBeforeMax)\n const paneAfterMaxReached = paneAfterMax < 100 && (dragPercentage <= 100 - paneAfterMax)\n\n // Prevent dragging beyond pane max.\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n return paneBeforeMaxReached ? paneBeforeMax : Math.max(100 - paneAfterMax, 0)\n } else {\n return Math.min(Math.max(dragPercentage, 0), paneBeforeMax)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=82b9f68a&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"schema-container\"}},[_c('div',{attrs:{\"id\":\"schema-filter\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search table\",\"width\":\"100%\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('div',{attrs:{\"id\":\"db\"}},[_c('div',{staticClass:\"db-name\",on:{\"click\":function($event){_vm.schemaVisible = !_vm.schemaVisible}}},[_c('tree-chevron',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schema.length > 0),expression:\"schema.length > 0\"}],attrs:{\"expanded\":_vm.schemaVisible}}),_vm._v(\" \"+_vm._s(_vm.dbName)+\" \")],1),_c('db-uploader',{attrs:{\"id\":\"db-edit\",\"type\":\"small\"}}),_c('export-icon',{attrs:{\"tooltip\":\"Export database\"},on:{\"click\":_vm.exportToFile}}),_c('add-table-icon',{on:{\"click\":_vm.addCsv}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schemaVisible),expression:\"schemaVisible\"}],staticClass:\"schema\"},_vm._l((_vm.schema),function(table){return _c('table-description',{key:table.name,attrs:{\"name\":table.name,\"columns\":table.columns}})}),1),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.$store.state.db,\"dialog-name\":\"addCsv\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n isDatabase (file) {\n const dbTypes = ['application/vnd.sqlite3', 'application/x-sqlite3']\n return file.type\n ? dbTypes.includes(file.type)\n : /\\.(db|sqlite(3)?)+$/.test(file.name)\n },\n\n getFileName (file) {\n return file.name.replace(/\\.[^.]+$/, '')\n },\n\n downloadFromUrl (url, fileName) {\n // Create downloader\n const downloader = document.createElement('a')\n downloader.href = url\n downloader.download = fileName\n\n // Trigger click\n downloader.click()\n\n // Clean up\n URL.revokeObjectURL(url)\n },\n\n async exportToFile (str, fileName, type = 'octet/stream') {\n const blob = new Blob([str], { type })\n const url = URL.createObjectURL(blob)\n this.downloadFromUrl(url, fileName)\n },\n\n /**\n * Note: if user press Cancel in file choosing dialog\n * it will be an unsettled promise. But it's grabbed by\n * the garbage collector (tested with FinalizationRegistry).\n */\n getFileFromUser (type) {\n return new Promise(resolve => {\n const uploader = document.createElement('input')\n\n uploader.type = 'file'\n uploader.accept = type\n\n uploader.addEventListener('change', () => {\n const file = uploader.files[0]\n resolve(file)\n })\n\n uploader.click()\n })\n },\n\n importFile () {\n const reader = new FileReader()\n\n return this.getFileFromUser('.json')\n .then(file => {\n return new Promise((resolve, reject) => {\n reader.onload = e => {\n resolve(e.target.result)\n }\n reader.readAsText(file)\n })\n })\n },\n\n readFile (path) {\n return fetch(path)\n },\n\n readAsArrayBuffer (file) {\n const fileReader = new FileReader()\n\n return new Promise((resolve, reject) => {\n fileReader.onerror = () => {\n fileReader.abort()\n reject(new Error('Problem parsing input file.'))\n }\n\n fileReader.onload = () => {\n resolve(fileReader.result)\n }\n fileReader.readAsArrayBuffer(file)\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"table-name\",on:{\"click\":function($event){_vm.colVisible = !_vm.colVisible}}},[_c('tree-chevron',{attrs:{\"expanded\":_vm.colVisible}}),_vm._v(\" \"+_vm._s(_vm.name)+\" \")],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.colVisible),expression:\"colVisible\"}],staticClass:\"columns\"},_vm._l((_vm.columns),function(col,index){return _c('div',{key:index,staticClass:\"column\"},[_vm._v(\" \"+_vm._s(col.name)+\" \"),_c('span',{staticClass:\"column-type\"},[_vm._v(_vm._s(col.type))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"chevron-icon\",style:({ transform: _vm.expanded ? 'rotate(90deg)' : 'rotate(0)' }),attrs:{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 8 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z\",\"fill\":_vm.expanded ? '#506784' : 'rgba(80, 103, 132, 0.5)'}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./treeChevron.vue?vue&type=template&id=bfc135e8&scoped=true&\"\nimport script from \"./treeChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./treeChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bfc135e8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableDescription.vue?vue&type=template&id=060be7fb&scoped=true&\"\nimport script from \"./TableDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./TableDescription.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"060be7fb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.label)?_c('div',{class:['text-field-label', { error: _vm.errorMsg }, {'disabled': _vm.disabled}]},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),(_vm.hint)?_c('hint-icon',{staticClass:\"hint\",attrs:{\"hint\":_vm.hint,\"max-width\":_vm.maxHintWidth || '149px'}}):_vm._e()],1):_vm._e(),_c('input',{class:{ error: _vm.errorMsg },style:({ width: _vm.width }),attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errorMsg),expression:\"errorMsg\"}],staticClass:\"text-field-error\"},[_vm._v(_vm._s(_vm.errorMsg))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"hint-icon\",attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(Object.assign({}, _vm.tooltipStyle, {maxWidth: _vm.maxWidth}))},[_vm._v(\" \"+_vm._s(_vm.hint)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data () {\n return {\n tooltipStyle: {\n visibility: 'hidden'\n }\n }\n },\n computed: {\n tooltipElement () {\n return this.$refs.tooltip\n }\n },\n methods: {\n showTooltip (e, tooltipPosition) {\n const position = tooltipPosition ? tooltipPosition.split('-') : ['top', 'right']\n const offset = 12\n\n if (position[0] === 'top') {\n this.tooltipStyle.top = e.clientY - offset + 'px'\n } else {\n this.tooltipStyle.top = e.clientY + offset + 'px'\n }\n\n if (position[1] === 'right') {\n this.tooltipStyle.left = e.clientX + offset + 'px'\n } else {\n this.tooltipStyle.left = e.clientX - offset - this.tooltipElement.offsetWidth + 'px'\n }\n\n this.tooltipStyle.visibility = 'visible'\n },\n hideTooltip () {\n this.tooltipStyle.visibility = 'hidden'\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hint.vue?vue&type=template&id=30581f31&scoped=true&\"\nimport script from \"./hint.vue?vue&type=script&lang=js&\"\nexport * from \"./hint.vue?vue&type=script&lang=js&\"\nimport style0 from \"./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30581f31\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=59fd41a8&scoped=true&\"\nimport script from \"./TextField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59fd41a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"db-uploader-container\",style:({ width: _vm.width })},[(_vm.type === 'small')?_c('change-db-icon',{on:{\"click\":_vm.browse}}):_vm._e(),(_vm.type === 'illustrated')?_c('div',{staticClass:\"drop-area-container\"},[_c('div',{staticClass:\"drop-area\",on:{\"dragover\":function($event){$event.preventDefault();_vm.state = 'dragover'},\"dragleave\":function($event){$event.preventDefault();_vm.state=''},\"drop\":function($event){$event.preventDefault();return _vm.drop($event)},\"click\":_vm.browse}},[_c('div',{staticClass:\"text\"},[_vm._v(\" Drop the database or CSV file here or click to choose a file from your computer. \")])])]):_vm._e(),(_vm.type === 'illustrated')?_c('div',{attrs:{\"id\":\"img-container\"}},[_c('img',{attrs:{\"id\":\"drop-file-top-img\",\"src\":require('@/assets/images/top.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"left-arm-img\",\"src\":require('@/assets/images/leftArm.svg')}}),_c('img',{ref:\"fileImg\",class:{\n 'swing': _vm.state === 'dragover',\n 'fly': _vm.state === 'dropping',\n 'hidden': _vm.state === 'dropped'\n },attrs:{\"id\":\"file-img\",\"src\":require('@/assets/images/file.png')}}),_c('img',{attrs:{\"id\":\"drop-file-bottom-img\",\"src\":require('@/assets/images/bottom.svg')}}),_c('img',{attrs:{\"id\":\"body-img\",\"src\":require('@/assets/images/body.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"right-arm-img\",\"src\":require('@/assets/images/rightArm.svg')}})]):_vm._e(),_c('div',{staticClass:\"error\",attrs:{\"id\":\"error\"}}),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.newDb,\"dialog-name\":\"importFromCsv\"},on:{\"cancel\":_vm.cancelCsvImport,\"finish\":_vm.finish}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"db-edit-icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Load another database or CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./changeDb.vue?vue&type=template&id=2c7f445c&scoped=true&\"\nimport script from \"./changeDb.vue?vue&type=script&lang=js&\"\nexport * from \"./changeDb.vue?vue&type=script&lang=js&\"\nimport style0 from \"./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c7f445c\",\n null\n \n)\n\nexport default component.exports","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"js/_worker.289a3d4b.worker.js\");\n}\n","import stms from './_statements'\nimport fu from '@/lib/utils/fileIo'\n// We can import workers like so because of worker-loader:\n// https://webpack.js.org/loaders/worker-loader/\nimport Worker from './_worker.js'\n\n// Use promise-worker in order to turn worker into the promise based one:\n// https://github.com/nolanlawson/promise-worker\nimport PromiseWorker from 'promise-worker'\n\nfunction getNewDatabase () {\n const worker = new Worker()\n return new Database(worker)\n}\n\nexport default {\n getNewDatabase\n}\n\nlet progressCounterIds = 0\nclass Database {\n constructor (worker) {\n this.dbName = null\n this.schema = null\n this.worker = worker\n this.pw = new PromiseWorker(worker)\n\n this.importProgresses = {}\n worker.addEventListener('message', e => {\n const progress = e.data.progress\n if (progress !== undefined) {\n const id = e.data.id\n this.importProgresses[id].dispatchEvent(new CustomEvent('progress', {\n detail: progress\n }))\n }\n })\n }\n\n shutDown () {\n this.worker.terminate()\n }\n\n createProgressCounter (callback) {\n const id = progressCounterIds++\n this.importProgresses[id] = new EventTarget()\n this.importProgresses[id].addEventListener('progress', e => { callback(e.detail) })\n return id\n }\n\n deleteProgressCounter (id) {\n delete this.importProgresses[id]\n }\n\n async addTableFromCsv (tabName, data, progressCounterId) {\n const result = await this.pw.postMessage({\n action: 'import',\n data,\n progressCounterId,\n tabName\n })\n\n if (result.error) {\n throw new Error(result.error)\n }\n this.dbName = this.dbName || 'database'\n this.refreshSchema()\n }\n\n async loadDb (file) {\n const fileContent = file ? await fu.readAsArrayBuffer(file) : null\n const res = await this.pw.postMessage({ action: 'open', buffer: fileContent })\n\n if (res.error) {\n throw new Error(res.error)\n }\n\n this.dbName = file ? fu.getFileName(file) : 'database'\n this.refreshSchema()\n }\n\n async refreshSchema () {\n const getSchemaSql = `\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n `\n const result = await this.execute(getSchemaSql)\n // Parse DDL statements to get column names and types\n const parsedSchema = []\n if (result && result.values && result.values.name) {\n result.values.name.forEach((table, index) => {\n parsedSchema.push({\n name: table,\n columns: stms.getColumns(result.values.sql[index])\n })\n })\n }\n\n // Refresh schema\n this.schema = parsedSchema\n }\n\n async execute (commands) {\n await this.pw.postMessage({ action: 'reopen' })\n const results = await this.pw.postMessage({ action: 'exec', sql: commands })\n\n if (results.error) {\n throw new Error(results.error)\n }\n // if it was more than one select - take only the last one\n return results[results.length - 1]\n }\n\n async export (fileName) {\n const data = await this.pw.postMessage({ action: 'export' })\n\n if (data.error) {\n throw new Error(data.error)\n }\n fu.exportToFile(data, fileName)\n }\n\n async validateTableName (name) {\n if (name.startsWith('sqlite_')) {\n throw new Error(\"Table name can't start with sqlite_\")\n }\n\n if (/[^\\w]/.test(name)) {\n throw new Error('Table name can contain only letters, digits and underscores')\n }\n\n if (/^(\\d)/.test(name)) {\n throw new Error(\"Table name can't start with a digit\")\n }\n\n await this.execute(`BEGIN; CREATE TABLE \"${name}\"(id); ROLLBACK;`)\n }\n\n sanitizeTableName (tabName) {\n return tabName\n .replace(/[^\\w]/g, '_') // replace everything that is not letter, digit or _ with _\n .replace(/^(\\d)/, '_$1') // add _ at beginning if starts with digit\n .replace(/_{2,}/g, '_') // replace multiple _ with one _\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal',{attrs:{\"name\":_vm.dialogName,\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"80%\",\"scrollable\":\"\",\"clickToClose\":false}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" CSV import \"),_c('close-icon',{attrs:{\"disabled\":_vm.disableDialog},on:{\"click\":_vm.cancelCsvImport}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"Table name\",\"width\":\"484px\",\"disabled\":_vm.disableDialog,\"error-msg\":_vm.tableNameError,\"id\":\"csv-table-name\"},model:{value:(_vm.tableName),callback:function ($$v) {_vm.tableName=$$v},expression:\"tableName\"}}),_c('div',{staticClass:\"chars\"},[_c('delimiter-selector',{staticClass:\"char-input\",attrs:{\"width\":\"210px\",\"disabled\":_vm.disableDialog},on:{\"input\":_vm.previewCsv},model:{value:(_vm.delimiter),callback:function ($$v) {_vm.delimiter=$$v},expression:\"delimiter\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Quote char\",\"hint\":\"The character used to quote fields.\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"quote-char\"},model:{value:(_vm.quoteChar),callback:function ($$v) {_vm.quoteChar=$$v},expression:\"quoteChar\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Escape char\",\"hint\":\"The character used to escape the quote character within a field (e.g. \\\"column with \\\"\\\"quotes\\\"\\\" in text\\\").\",\"max-hint-width\":\"242px\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"escape-char\"},model:{value:(_vm.escapeChar),callback:function ($$v) {_vm.escapeChar=$$v},expression:\"escapeChar\"}})],1),_c('check-box',{attrs:{\"init\":true,\"label\":\"Use first row as column headers\",\"disabled\":_vm.disableDialog},on:{\"click\":function($event){_vm.header = $event}}}),(_vm.previewData\n && (_vm.previewData.rowCount > 0 || Object.keys(_vm.previewData).length > 0)\n )?_c('sql-table',{staticClass:\"preview-table\",attrs:{\"data-set\":_vm.previewData,\"preview\":true}}):_c('div',{staticClass:\"no-data\"},[_vm._v(\"No data\")]),_c('logs',{staticClass:\"import-csv-errors\",attrs:{\"messages\":_vm.importCsvMessages}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-cancel\"},on:{\"click\":_vm.cancelCsvImport}},[_vm._v(\" Cancel \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.importCsvCompleted),expression:\"!importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-import\"},on:{\"click\":function($event){return _vm.loadFromCsv(_vm.file)}}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.importCsvCompleted),expression:\"importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-finish\"},on:{\"click\":_vm.finish}},[_vm._v(\" Finish \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Papa from 'papaparse'\n\nconst hintsByCode = {\n MissingQuotes: 'Edit your CSV so that the field has a closing quote char.',\n TooFewFields: 'Add fields or try another delimiter.',\n TooManyFields: 'Edit your CSV or try another delimiter.'\n}\n\nexport default {\n getResult (source) {\n const result = {\n columns: []\n }\n const values = {}\n if (source.meta.fields) {\n source.meta.fields.forEach(col => {\n const colName = col.trim()\n result.columns.push(colName)\n values[colName] = source.data.map(row => {\n let value = row[col]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n })\n } else {\n for (let i = 0; i <= source.data[0].length - 1; i++) {\n const colName = `col${i + 1}`\n result.columns.push(colName)\n values[colName] = source.data.map(row => {\n let value = row[i]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n }\n }\n\n result.values = values\n return result\n },\n\n parse (file, config = {}) {\n return new Promise((resolve, reject) => {\n const defaultConfig = {\n delimiter: '', // auto-detect\n newline: '', // auto-detect\n quoteChar: '\"',\n escapeChar: '\"',\n header: false,\n transformHeader: undefined,\n dynamicTyping: true,\n preview: 0,\n encoding: 'UTF-8',\n worker: true,\n comments: false,\n step: undefined,\n complete: results => {\n const res = {\n data: this.getResult(results),\n delimiter: results.meta.delimiter,\n hasErrors: false,\n rowCount: results.data.length\n }\n res.messages = results.errors.map(msg => {\n msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'\n if (msg.type === 'error') res.hasErrors = true\n msg.hint = hintsByCode[msg.code]\n return msg\n })\n resolve(res)\n },\n error: (error, file) => {\n reject(error)\n },\n download: false,\n downloadRequestHeaders: undefined,\n downloadRequestBody: undefined,\n skipEmptyLines: 'greedy',\n chunk: undefined,\n chunkSize: undefined,\n fastMode: undefined,\n beforeFirstChunk: undefined,\n withCredentials: undefined,\n transform: undefined,\n delimitersToGuess: [',', '\\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]\n }\n\n Papa.parse(file, { ...defaultConfig, ...config })\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['icon', {'disabled': _vm.disabled }],attrs:{\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 14 14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('click')}}},[_c('path',{attrs:{\"d\":\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./close.vue?vue&type=template&id=86f3a16c&scoped=true&\"\nimport script from \"./close.vue?vue&type=script&lang=js&\"\nexport * from \"./close.vue?vue&type=script&lang=js&\"\nimport style0 from \"./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86f3a16c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'disabled': _vm.disabled }},[_c('div',{staticClass:\"text-field-label\"},[_vm._v(\"Delimiter\")]),_c('div',{staticClass:\"delimiter-selector-container\",style:({ width: _vm.width }),on:{\"click\":_vm.onContainerClick}},[_c('div',{staticClass:\"value\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"delimiterInput\",class:{ 'filled': _vm.filled },attrs:{\"type\":\"text\",\"maxlength\":\"1\",\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputValue)},on:{\"click\":function($event){$event.stopPropagation();},\"input\":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.getSymbolName(_vm.value)))])]),_c('div',{staticClass:\"controls\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('clear-icon',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){return _vm.clear($event)}}}),_c('drop-down-chevron',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){!_vm.disabled && (_vm.showOptions = !_vm.showOptions)}}})],1)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOptions),expression:\"showOptions\"}],staticClass:\"options\",style:({ width: _vm.width })},_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"option\",on:{\"click\":function($event){return _vm.chooseOption(option)}}},[_c('pre',[_vm._v(_vm._s(option))]),_c('div',[_vm._v(_vm._s(_vm.getSymbolName(option)))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n 0: { name: 'null character' },\n 1: { name: 'start of header' },\n 2: { name: 'start of text' },\n 3: { name: 'end of text' },\n 4: { name: 'end of transmission' },\n 5: { name: 'enquiry' },\n 6: { name: 'acknowledge' },\n 7: { name: 'bell (ring)' },\n 8: { name: 'backspace' },\n 9: { name: 'horizontal tab' },\n 10: { name: 'line feed' },\n 11: { name: 'vertical tab' },\n 12: { name: 'form feed' },\n 13: { name: 'carriage return' },\n 14: { name: 'shift out' },\n 15: { name: 'shift in' },\n 16: { name: 'data link escape' },\n 17: { name: 'device control 1' },\n 18: { name: 'device control 2' },\n 19: { name: 'device control 3' },\n 20: { name: 'device control 4' },\n 21: { name: 'negative acknowledge' },\n 22: { name: 'synchronize' },\n 23: { name: 'end transmission block' },\n 24: { name: 'cancel' },\n 25: { name: 'end of medium' },\n 26: { name: 'substitute' },\n 27: { name: 'escape' },\n 28: { name: 'file separator' },\n 29: { name: 'group separator' },\n 30: { name: 'record separator' },\n 31: { name: 'unit separator' },\n 32: { name: 'space' },\n 33: { name: 'exclamation mark' },\n 34: { name: 'quotation mark' },\n 35: { name: 'number sign' },\n 36: { name: 'dollar sign' },\n 37: { name: 'percent sign' },\n 38: { name: 'ampersand' },\n 39: { name: 'apostrophe' },\n 40: { name: 'left parenthesis' },\n 41: { name: 'right parenthesis' },\n 42: { name: 'asterisk' },\n 43: { name: 'plus sign' },\n 44: { name: 'comma' },\n 45: { name: 'hyphen' },\n 46: { name: 'period' },\n 47: { name: 'slash' },\n 48: { name: 'digit 0' },\n 49: { name: 'digit 1' },\n 50: { name: 'digit 2' },\n 51: { name: 'digit 3' },\n 52: { name: 'digit 4' },\n 53: { name: 'digit 5' },\n 54: { name: 'digit 6' },\n 55: { name: 'digit 7' },\n 56: { name: 'digit 8' },\n 57: { name: 'digit 9' },\n 58: { name: 'colon' },\n 59: { name: 'semicolon' },\n 60: { name: 'less-than' },\n 61: { name: 'equals-to' },\n 62: { name: 'greater-than' },\n 63: { name: 'question mark' },\n 64: { name: 'at sign' },\n 65: { name: 'uppercase A' },\n 66: { name: 'uppercase B' },\n 67: { name: 'uppercase C' },\n 68: { name: 'uppercase D' },\n 69: { name: 'uppercase E' },\n 70: { name: 'uppercase F' },\n 71: { name: 'uppercase G' },\n 72: { name: 'uppercase H' },\n 73: { name: 'uppercase I' },\n 74: { name: 'uppercase J' },\n 75: { name: 'uppercase K' },\n 76: { name: 'uppercase L' },\n 77: { name: 'uppercase M' },\n 78: { name: 'uppercase N' },\n 79: { name: 'uppercase O' },\n 80: { name: 'uppercase P' },\n 81: { name: 'uppercase Q' },\n 82: { name: 'uppercase R' },\n 83: { name: 'uppercase S' },\n 84: { name: 'uppercase T' },\n 85: { name: 'uppercase U' },\n 86: { name: 'uppercase V' },\n 87: { name: 'uppercase W' },\n 88: { name: 'uppercase X' },\n 89: { name: 'uppercase Y' },\n 90: { name: 'uppercase Z' },\n 91: { name: 'left square bracket' },\n 92: { name: 'backslash' },\n 93: { name: 'right square bracket' },\n 94: { name: 'caret' },\n 95: { name: 'underscore' },\n 96: { name: 'grave accent' },\n 97: { name: 'lowercase a' },\n 98: { name: 'lowercase b' },\n 99: { name: 'lowercase c' },\n 100: { name: 'lowercase d' },\n 101: { name: 'lowercase e' },\n 102: { name: 'lowercase f' },\n 103: { name: 'lowercase g' },\n 104: { name: 'lowercase h' },\n 105: { name: 'lowercase i' },\n 106: { name: 'lowercase j' },\n 107: { name: 'lowercase k' },\n 108: { name: 'lowercase l' },\n 109: { name: 'lowercase m' },\n 110: { name: 'lowercase n' },\n 111: { name: 'lowercase o' },\n 112: { name: 'lowercase p' },\n 113: { name: 'lowercase q' },\n 114: { name: 'lowercase r' },\n 115: { name: 'lowercase s' },\n 116: { name: 'lowercase t' },\n 117: { name: 'lowercase u' },\n 118: { name: 'lowercase v' },\n 119: { name: 'lowercase w' },\n 120: { name: 'lowercase x' },\n 121: { name: 'lowercase y' },\n 122: { name: 'lowercase z' },\n 123: { name: 'left curly brace' },\n 124: { name: 'vertical bar' },\n 125: { name: 'right curly brace' },\n 126: { name: 'tilde' },\n 127: { name: 'delete (rubout)' }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['chevron-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dropDownChevron.vue?vue&type=template&id=29bdb7bf&scoped=true&\"\nimport script from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29bdb7bf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['clear-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./clear.vue?vue&type=template&id=69060e4e&scoped=true&\"\nimport script from \"./clear.vue?vue&type=script&lang=js&\"\nexport * from \"./clear.vue?vue&type=script&lang=js&\"\nimport style0 from \"./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69060e4e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44b0b048&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44b0b048\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['checkbox-container', { 'checked': _vm.checked }, {'disabled': _vm.disabled}],on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.checked),expression:\"!checked\"}],staticClass:\"unchecked\"}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && !_vm.disabled),expression:\"checked && !disabled\"}],attrs:{\"src\":_vm.theme === 'light'\n ? require('@/assets/images/checkbox_checked_light.svg')\n : require('@/assets/images/checkbox_checked.svg')}}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && _vm.disabled),expression:\"checked && disabled\"}],attrs:{\"src\":require('@/assets/images/checkbox_checked_disabled.svg')}}),(_vm.label)?_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=0dd86013&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0dd86013\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"rounded-bg\"},[_c('div',{ref:\"header-container\",staticClass:\"header-container\"},[_c('div',_vm._l((_vm.header),function(th,index){return _c('div',{key:index,staticClass:\"fixed-header\",style:({ width: ((th.width) + \"px\") })},[_vm._v(\" \"+_vm._s(th.name)+\" \")])}),0)]),_c('div',{ref:\"table-container\",staticClass:\"table-container\",on:{\"scroll\":_vm.onScrollTable}},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('thead',[_c('tr',_vm._l((_vm.columns),function(th,index){return _c('th',{key:index,ref:\"th\",refInFor:true},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(_vm._s(th))])])}),0)]),_c('tbody',_vm._l((_vm.currentPageData.count),function(rowIndex){return _c('tr',{key:rowIndex},_vm._l((_vm.columns),function(col,colIndex){return _c('td',{key:colIndex},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(\" \"+_vm._s(_vm.dataSet.values[col][rowIndex - 1 + _vm.currentPageData.start])+\" \")])])}),0)}),0)])])]),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-footer-count\"},[_vm._v(\" \"+_vm._s(_vm.rowCount)+\" \"+_vm._s(_vm.rowCount === 1 ? 'row' : 'rows')+\" retrieved \"),(_vm.preview)?_c('span',[_vm._v(\"for preview\")]):_vm._e(),(_vm.time)?_c('span',[_vm._v(\"in \"+_vm._s(_vm.time))]):_vm._e()]),_c('pager',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pageCount > 1),expression:\"pageCount > 1\"}],attrs:{\"page-count\":_vm.pageCount},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('paginate',{attrs:{\"page-count\":_vm.pageCount,\"page-range\":5,\"margin-pages\":1,\"prev-text\":_vm.chevron,\"next-text\":_vm.chevron,\"no-li-surround\":true,\"container-class\":\"paginator-continer\",\"page-link-class\":\"paginator-page-link\",\"active-class\":\"paginator-active-page\",\"break-view-link-class\":\"paginator-break\",\"next-link-class\":\"paginator-next\",\"prev-link-class\":\"paginator-prev\",\"disabled-class\":\"paginator-disabled\"},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pager.vue?vue&type=template&id=658886c7&scoped=true&\"\nimport script from \"./Pager.vue?vue&type=script&lang=js&\"\nexport * from \"./Pager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"658886c7\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=79f99032&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79f99032\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"logsContainer\",staticClass:\"logs-container\"},_vm._l((_vm.messages),function(msg,index){return _c('div',{key:index,staticClass:\"msg\"},[(msg.type === 'error')?_c('img',{attrs:{\"src\":require('@/assets/images/error.svg')}}):_vm._e(),(msg.type === 'info')?_c('img',{attrs:{\"src\":require('@/assets/images/info.svg'),\"width\":\"20px\"}}):_vm._e(),(msg.type === 'success')?_c('img',{attrs:{\"src\":require('@/assets/images/success.svg')}}):_vm._e(),(msg.type === 'loading')?_c('loading-indicator',{attrs:{\"progress\":msg.progress}}):_vm._e(),_c('span',{staticClass:\"msg-text\"},[_vm._v(_vm._s(_vm.serializeMessage(msg)))])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.animationClass,attrs:{\"height\":_vm.size,\"width\":_vm.size,\"viewBox\":(\"0 0 \" + _vm.size + \" \" + _vm.size)}},[_c('circle',{staticClass:\"loader-svg bg\",style:({ strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}}),_c('circle',{staticClass:\"loader-svg front\",style:({ strokeDasharray: _vm.circleProgress, strokeDashoffset: _vm.offset, strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingIndicator.vue?vue&type=template&id=62096452&scoped=true&\"\nimport script from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62096452\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=1c9f27dc&scoped=true&\"\nimport script from \"./Logs.vue?vue&type=script&lang=js&\"\nexport * from \"./Logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c9f27dc\",\n null\n \n)\n\nexport default component.exports","export default {\n getPeriod (start, end) {\n const diff = end.getTime() - start.getTime()\n const seconds = diff / 1000\n return seconds.toFixed(3) + 's'\n },\n\n debounce (func, ms) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(() => func.apply(this, arguments), ms)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=68ef9d6c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68ef9d6c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DbUploader.vue?vue&type=template&id=eefa30c0&scoped=true&\"\nimport script from \"./DbUploader.vue?vue&type=script&lang=js&\"\nexport * from \"./DbUploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eefa30c0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./export.vue?vue&type=template&id=15bea4a0&scoped=true&\"\nimport script from \"./export.vue?vue&type=script&lang=js&\"\nexport * from \"./export.vue?vue&type=script&lang=js&\"\nimport style0 from \"./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15bea4a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"\\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\\n 1.77485 15.1649 2.59985\\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\\n \",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"}})])])]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Add new table from CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./addTable.vue?vue&type=template&id=0b825a18&scoped=true&\"\nimport script from \"./addTable.vue?vue&type=script&lang=js&\"\nexport * from \"./addTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b825a18\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3fcc3d82&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fcc3d82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"tabs\"}},[(_vm.tabs.length > 0)?_c('div',{attrs:{\"id\":\"tabs-header\"}},_vm._l((_vm.tabs),function(tab,index){return _c('div',{key:index,class:[{'tab-selected': (tab.id === _vm.selectedIndex)}, 'tab'],on:{\"click\":function($event){return _vm.selectTab(tab.id)}}},[_c('div',{staticClass:\"tab-name\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!tab.isSaved),expression:\"!tab.isSaved\"}],staticClass:\"star\"},[_vm._v(\"*\")]),(tab.name)?_c('span',[_vm._v(_vm._s(tab.name))]):_c('span',{staticClass:\"tab-untitled\"},[_vm._v(_vm._s(tab.tempName))])]),_c('div',[_c('close-icon',{staticClass:\"close-icon\",attrs:{\"size\":10},on:{\"click\":function($event){return _vm.beforeCloseTab(index)}}})],1)])}),0):_vm._e(),_vm._l((_vm.tabs),function(tab,index){return _c('tab',{key:tab.id,attrs:{\"id\":tab.id,\"init-name\":tab.name,\"init-query\":tab.query,\"init-view-options\":tab.viewOptions,\"init-view-type\":tab.viewType,\"is-predefined\":tab.isPredefined,\"tab-index\":index}})}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tabs.length === 0),expression:\"tabs.length === 0\"}],attrs:{\"id\":\"start-guide\"}},[_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" new inquiry from scratch or open one from \"),_c('router-link',{staticClass:\"link\",attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")])],1),_c('modal',{attrs:{\"name\":\"close-warn\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Close tab \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" You have unsaved changes. Save changes in \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" before closing? \")]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.closeTab(_vm.closingTabIndex)}}},[_vm._v(\" Close without saving \")]),_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":function($event){return _vm.saveAndClose(_vm.closingTabIndex)}}},[_vm._v(\"Save and close\")])])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}],staticClass:\"tab-content-container\"},[_c('splitpanes',{staticClass:\"query-results-splitter\",attrs:{\"horizontal\":\"\",\"before\":{ size: 50, max: 100 },\"after\":{ size: 50, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('div',{staticClass:\"above\",attrs:{\"id\":'above-' + _vm.tabIndex}})]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('div',{ref:\"bottomPane\",staticClass:\"bottomPane\",attrs:{\"id\":'bottom-'+ _vm.tabIndex}})]},proxy:true}])}),_c('div',{staticClass:\"hidden-part\",attrs:{\"id\":'hidden-'+ _vm.tabIndex}}),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.sqlEditor) + \"-\" + _vm.tabIndex)}},[_c('sql-editor',{ref:\"sqlEditor\",attrs:{\"is-getting-results\":_vm.isGettingResults},on:{\"switchTo\":function($event){return _vm.onSwitchView('sqlEditor', $event)},\"run\":_vm.execute},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.table) + \"-\" + _vm.tabIndex)}},[_c('run-result',{attrs:{\"result\":_vm.result,\"is-getting-results\":_vm.isGettingResults,\"error\":_vm.error,\"time\":_vm.time},on:{\"switchTo\":function($event){return _vm.onSwitchView('table', $event)}}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.dataView) + \"-\" + _vm.tabIndex)}},[_c('data-view',{ref:\"dataView\",attrs:{\"data-source\":(_vm.result && _vm.result.values) || null,\"init-options\":_vm.initViewOptions,\"init-mode\":_vm.initViewType},on:{\"switchTo\":function($event){return _vm.onSwitchView('dataView', $event)},\"update\":_vm.onDataViewUpdate}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sql-editor-panel\"},[_c('div',{staticClass:\"codemirror-container\"},[_c('codemirror',{ref:\"cm\",attrs:{\"options\":_vm.cmOptions},on:{\"changes\":_vm.onChange},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"sqlEditor\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"disabled\":_vm.runDisabled,\"loading\":_vm.isGettingResults,\"tooltip\":\"Run SQL query\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.$emit('run')}}},[_c('run-icon',{attrs:{\"disabled\":_vm.runDisabled}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n tabs: [],\n currentTab: null,\n currentTabId: null,\n untitledLastIndex: 0,\n predefinedInquiries: [],\n db: null\n}\n","import Vue from 'vue'\n\nexport default {\n setDb (state, db) {\n if (state.db) {\n state.db.shutDown()\n }\n state.db = db\n },\n\n updateTab (state, { index, name, id, query, viewType, viewOptions, isSaved }) {\n const tab = state.tabs[index]\n const oldId = tab.id\n\n if (id && state.currentTabId === oldId) {\n state.currentTabId = id\n }\n\n if (id) { tab.id = id }\n if (name) { tab.name = name }\n if (query) { tab.query = query }\n if (viewType) { tab.viewType = viewType }\n if (viewOptions) { tab.viewOptions = viewOptions }\n if (isSaved !== undefined) { tab.isSaved = isSaved }\n if (isSaved) {\n // Saved inquiry is not predefined\n delete tab.isPredefined\n }\n\n Vue.set(state.tabs, index, tab)\n },\n\n deleteTab (state, index) {\n // If closing tab is the current opened\n if (state.tabs[index].id === state.currentTabId) {\n if (index < state.tabs.length - 1) {\n state.currentTabId = state.tabs[index + 1].id\n } else if (index > 0) {\n state.currentTabId = state.tabs[index - 1].id\n } else {\n state.currentTabId = null\n state.currentTab = null\n state.untitledLastIndex = 0\n }\n }\n state.tabs.splice(index, 1)\n },\n setCurrentTabId (state, id) {\n state.currentTabId = id\n },\n setCurrentTab (state, tab) {\n state.currentTab = tab\n },\n updatePredefinedInquiries (state, inquiries) {\n state.predefinedInquiries = Array.isArray(inquiries) ? inquiries : [inquiries]\n }\n}\n","import { nanoid } from 'nanoid'\n\nexport default {\n async addTab ({ state }, data) {\n const tab = data ? JSON.parse(JSON.stringify(data)) : {}\n // If no data then create a new blank one...\n // No data.id means to create new tab, but not blank,\n // e.g. with 'select * from csv_import' inquiry after csv import\n if (!data || !data.id) {\n tab.id = nanoid()\n tab.name = null\n tab.tempName = state.untitledLastIndex\n ? `Untitled ${state.untitledLastIndex}`\n : 'Untitled'\n tab.viewType = 'chart'\n tab.viewOptions = undefined\n tab.isSaved = false\n } else {\n tab.isSaved = true\n }\n\n // add new tab only if was not already opened\n if (!state.tabs.some(openedTab => openedTab.id === tab.id)) {\n state.tabs.push(tab)\n if (!tab.name) {\n state.untitledLastIndex += 1\n }\n }\n\n return tab.id\n }\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport state from '@/store/state'\nimport mutations from '@/store/mutations'\nimport actions from '@/store/actions'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state,\n mutations,\n actions\n})\n","import CM from 'codemirror'\nimport 'codemirror/addon/hint/show-hint.js'\nimport 'codemirror/addon/hint/sql-hint.js'\nimport store from '@/store'\n\nexport function getHints (cm, options) {\n const token = cm.getTokenAt(cm.getCursor()).string.toUpperCase()\n const result = CM.hint.sql(cm, options)\n // Don't show the hint if there is only one option\n // and the token is already completed with this option\n if (result.list.length === 1 && result.list[0].text.toUpperCase() === token) {\n result.list = []\n }\n return result\n}\n\nconst hintOptions = {\n get tables () {\n const tables = {}\n if (store.state.db.schema) {\n store.state.db.schema.forEach(table => {\n tables[table.name] = table.columns.map(column => column.name)\n })\n }\n return tables\n },\n get defaultTable () {\n const schema = store.state.db.schema\n return schema && schema.length === 1 ? schema[0].name : null\n },\n completeSingle: false,\n completeOnSingleClick: true,\n alignWithWord: false\n}\n\nexport function showHintOnDemand (editor) {\n CM.showHint(editor, getHints, hintOptions)\n}\n\nexport default function showHint (editor) {\n // Don't show autocomplete after a space or semicolon or in string literals\n const token = editor.getTokenAt(editor.getCursor())\n const ch = token.string.slice(-1)\n const tokenType = token.type\n if (tokenType === 'string' || !ch || ch === ' ' || ch === ';') {\n return\n }\n\n CM.showHint(editor, getHints, hintOptions)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"side-tool-bar\"},[_c('icon-button',{attrs:{\"active\":_vm.panel === 'sqlEditor',\"tooltip\":\"Switch panel to SQL editor\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'sqlEditor')}}},[_c('sql-editor-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'table',\"tooltip\":\"Switch panel to result set\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'table')}}},[_c('table-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'dataView',\"tooltip\":\"Switch panel to data view\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'dataView')}}},[_c('data-view-icon')],1),(_vm.$slots.default)?_c('div',{staticClass:\"side-tool-bar-divider\"}):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['icon-btn', { active: _vm.active }, { disabled: _vm.disabled }],on:{\"click\":_vm.onClick,\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('div',{staticClass:\"icon\"},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"icon-in-progress\"},[_c('loading-indicator')],1),(_vm.tooltip)?_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IconButton.vue?vue&type=template&id=0c2b486e&scoped=true&\"\nimport script from \"./IconButton.vue?vue&type=script&lang=js&\"\nexport * from \"./IconButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c2b486e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./table.vue?vue&type=template&id=66df4be4&\"\nimport script from \"./table.vue?vue&type=script&lang=js&\"\nexport * from \"./table.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"19\",\"viewBox\":\"0 0 18 19\",\"fill\":\"none\"}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"d\":\"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z\",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\",\"transform\":\"translate(0 0.0134277)\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sqlEditor.vue?vue&type=template&id=56d6f4f2&\"\nimport script from \"./sqlEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./sqlEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z\",\"fill\":\"#A2B1C6\"}}),_c('circle',{attrs:{\"cx\":\"5.50049\",\"cy\":\"6.00339\",\"r\":\"1.5\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dataView.vue?vue&type=template&id=8c6d3ebe&\"\nimport script from \"./dataView.vue?vue&type=script&lang=js&\"\nexport * from \"./dataView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideToolBar.vue?vue&type=template&id=3b6366bb&scoped=true&\"\nimport script from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b6366bb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"12\",\"height\":\"13\",\"viewBox\":\"0 0 12 13\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./run.vue?vue&type=template&id=6d9e3fdd&\"\nimport script from \"./run.vue?vue&type=script&lang=js&\"\nexport * from \"./run.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c84dd870&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c84dd870\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-view-panel\"},[_c('div',{staticClass:\"data-view-panel-content\"},[_c(_vm.mode,{ref:\"viewComponent\",tag:\"component\",attrs:{\"init-options\":_vm.mode === _vm.initMode ? _vm.initOptions : undefined,\"data-sources\":_vm.dataSource,\"import-to-png-enabled\":_vm.importToPngEnabled},on:{\"update:importToPngEnabled\":function($event){_vm.importToPngEnabled=$event},\"update:import-to-png-enabled\":function($event){_vm.importToPngEnabled=$event},\"loadingImageCompleted\":function($event){_vm.loadingImage = false},\"update\":function($event){return _vm.$emit('update')}}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"dataView\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"active\":_vm.mode === 'chart',\"tooltip\":\"Switch to chart\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'chart'}}},[_c('chart-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.mode === 'pivot',\"tooltip\":\"Switch to pivot\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'pivot'}}},[_c('pivot-icon')],1),_c('div',{staticClass:\"side-tool-bar-divider\"}),_c('icon-button',{attrs:{\"disabled\":!_vm.importToPngEnabled || _vm.loadingImage,\"loading\":_vm.loadingImage,\"tooltip\":\"Save as PNG image\",\"tooltip-position\":\"top-left\"},on:{\"click\":_vm.saveAsPng}},[_c('png-icon')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"chartContainer\",staticClass:\"chart-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources && _vm.visible),expression:\"!dataSources && visible\"}],staticClass:\"warning chart-warning\"},[_vm._v(\" There is no data to build a chart. Run your SQL query and make sure the result is not empty. \")]),_c('PlotlyEditor',{ref:\"plotlyEditor\",staticClass:\"chart\",style:({ height: !_vm.dataSources ? 'calc(100% - 40px)' : '100%' }),attrs:{\"data\":_vm.state.data,\"layout\":_vm.state.layout,\"frames\":_vm.state.frames,\"config\":{ editable: true, displaylogo: false, modeBarButtonsToRemove: ['toImage'] },\"dataSources\":_vm.dataSources,\"dataSourceOptions\":_vm.dataSourceOptions,\"plotly\":_vm.plotly,\"useResizeHandler\":true,\"debug\":true,\"advancedTraceTypeSelector\":true},on:{\"onUpdate\":_vm.update,\"onRender\":_vm.onRender}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dereference from 'react-chart-editor/lib/lib/dereference'\n\nexport function getOptionsFromDataSources (dataSources) {\n if (!dataSources) {\n return []\n }\n\n return Object.keys(dataSources).map(name => ({\n value: name,\n label: name\n }))\n}\n\nexport function getOptionsForSave (state, dataSources) {\n // we don't need to save the data, only settings\n // so we modify state.data using dereference\n const stateCopy = JSON.parse(JSON.stringify(state))\n const emptySources = {}\n for (const key in dataSources) {\n emptySources[key] = []\n }\n dereference(stateCopy.data, emptySources)\n return stateCopy\n}\n\nexport default {\n getOptionsFromDataSources,\n getOptionsForSave\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31be4117&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31be4117\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources),expression:\"!dataSources\"}],staticClass:\"warning pivot-warning\"},[_vm._v(\" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. \")]),_c('pivot-ui',{attrs:{\"key-names\":_vm.columns},on:{\"update\":function($event){return _vm.$emit('update')},\"loadingCustomChartImageCompleted\":function($event){return _vm.$emit('loadingImageCompleted')}},model:{value:(_vm.pivotOptions),callback:function ($$v) {_vm.pivotOptions=$$v},expression:\"pivotOptions\"}}),_c('div',{ref:\"pivotOutput\",staticClass:\"pivot-output\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-ui\"},[_c('div',{class:{collapsed: _vm.collapsed}},[_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Columns\")]),_c('multiselect',{staticClass:\"sqliteviz-select cols\",attrs:{\"options\":_vm.colsToSelect,\"disabled\":_vm.colsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.colsToSelect.length,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.cols),callback:function ($$v) {_vm.cols=$$v},expression:\"cols\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose columns\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"col\"},model:{value:(_vm.colOrder),callback:function ($$v) {_vm.colOrder=$$v},expression:\"colOrder\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Rows\")]),_c('multiselect',{staticClass:\"sqliteviz-select rows\",attrs:{\"options\":_vm.rowsToSelect,\"disabled\":_vm.rowsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.rowsToSelect.length,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.rows),callback:function ($$v) {_vm.rows=$$v},expression:\"rows\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose rows\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"row\"},model:{value:(_vm.rowOrder),callback:function ($$v) {_vm.rowOrder=$$v},expression:\"rowOrder\"}})],1),_c('div',{staticClass:\"row aggregator\"},[_c('label',[_vm._v(\"Aggregator\")]),_c('multiselect',{staticClass:\"sqliteviz-select short aggregator\",attrs:{\"options\":_vm.aggregators,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a function\"},model:{value:(_vm.aggregator),callback:function ($$v) {_vm.aggregator=$$v},expression:\"aggregator\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 0),expression:\"valCount > 0\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose an argument\"},model:{value:(_vm.val1),callback:function ($$v) {_vm.val1=$$v},expression:\"val1\"}}),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 1),expression:\"valCount > 1\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a second argument\"},model:{value:(_vm.val2),callback:function ($$v) {_vm.val2=$$v},expression:\"val2\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"View\")]),_c('multiselect',{staticClass:\"sqliteviz-select short renderer\",attrs:{\"options\":_vm.renderers,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"allow-empty\":false,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a view\"},model:{value:(_vm.renderer),callback:function ($$v) {_vm.renderer=$$v},expression:\"renderer\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2)],1)]),_c('span',{staticClass:\"switcher\",on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[_vm._v(\" \"+_vm._s(_vm.collapsed ? 'Show pivot settings' : 'Hide pivot settings')+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['pivot-sort-btn', _vm.direction],on:{\"click\":_vm.changeSorting}},[_vm._v(\" \"+_vm._s(_vm.value.includes('key') ? 'key' : 'value')+\" \"),_c('sort-icon',{staticClass:\"sort-icon\",attrs:{\"horizontal\":_vm.direction === 'col',\"asc\":_vm.value.includes('a_to_z')}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['sort-icon', { horizontal: _vm.horizontal }, { asc: _vm.asc }],attrs:{\"width\":\"6\",\"height\":\"12\",\"viewBox\":\"0 0 6 12\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z\",\"fill\":\"#506784\"}}),_c('path',{attrs:{\"d\":\"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z\",\"fill\":\"#506784\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sort.vue?vue&type=template&id=28a29e7a&scoped=true&\"\nimport script from \"./sort.vue?vue&type=script&lang=js&\"\nexport * from \"./sort.vue?vue&type=script&lang=js&\"\nimport style0 from \"./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28a29e7a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PivotSortBtn.vue?vue&type=template&id=e3801f08&scoped=true&\"\nimport script from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3801f08\",\n null\n \n)\n\nexport default component.exports","import $ from 'jquery'\nimport 'pivottable'\nimport 'pivottable/dist/export_renderers.js'\nimport 'pivottable/dist/plotly_renderers.js'\n\nexport const zeroValAggregators = [\n 'Count',\n 'Count as Fraction of Total',\n 'Count as Fraction of Rows',\n 'Count as Fraction of Columns'\n]\n\nexport const twoValAggregators = [\n 'Sum over Sum',\n '80% Upper Bound',\n '80% Lower Bound'\n]\n\nexport function _getDataSources (pivotData) {\n const rowKeys = pivotData.getRowKeys()\n const colKeys = pivotData.getColKeys()\n\n const dataSources = {\n 'Column keys': colKeys.map(colKey => colKey.join('-')),\n 'Row keys': rowKeys.map(rowKey => rowKey.join('-'))\n }\n\n const dataSourcesByRows = {}\n const dataSourcesByCols = {}\n\n const rowAttrs = pivotData.rowAttrs.join('-')\n const colAttrs = pivotData.colAttrs.join('-')\n\n colKeys.forEach(colKey => {\n const sourceColKey = colAttrs + ':' + colKey.join('-')\n dataSourcesByCols[sourceColKey] = []\n rowKeys.forEach(rowKey => {\n const value = pivotData.getAggregator(rowKey, colKey).value()\n dataSourcesByCols[sourceColKey].push(value)\n const sourceRowKey = rowAttrs + ':' + rowKey.join('-')\n if (!dataSourcesByRows[sourceRowKey]) {\n dataSourcesByRows[sourceRowKey] = []\n }\n dataSourcesByRows[sourceRowKey].push(value)\n })\n })\n\n return Object.assign(dataSources, dataSourcesByCols, dataSourcesByRows)\n}\n\nfunction customChartRenderer (data, options) {\n options.customChartComponent.dataSources = _getDataSources(data)\n options.customChartComponent.$mount()\n\n return $(options.customChartComponent.$el)\n}\n\n$.extend(\n $.pivotUtilities.renderers,\n $.pivotUtilities.export_renderers,\n $.pivotUtilities.plotly_renderers,\n { 'Custom chart': customChartRenderer }\n)\n\nexport const renderers = Object.keys($.pivotUtilities.renderers).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.renderers[key]\n }\n})\n\nexport const aggregators = Object.keys($.pivotUtilities.aggregators).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.aggregators[key]\n }\n})\n","\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6d818ae0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d818ae0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ca17e020&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ca17e020\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M8.41943 16V10H10.4194V16H8.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M2.41943 16L2.41943 10H4.41943V16H2.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M11.4194 16V7H13.4194V16H11.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.4194 16V8H16.4194V16H14.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M7.41943 12V16H5.41943V12H7.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chart.vue?vue&type=template&id=16c3eaec&\"\nimport script from \"./chart.vue?vue&type=script&lang=js&\"\nexport * from \"./chart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M6.41943 0H18.4194V4H6.41943V0Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 6H4.41943V18H0.419434V6Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 0H4.41943V4H0.419434V0Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pivot.vue?vue&type=template&id=87050fe2&\"\nimport script from \"./pivot.vue?vue&type=script&lang=js&\"\nexport * from \"./pivot.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./png.vue?vue&type=template&id=e31e3054&\"\nimport script from \"./png.vue?vue&type=script&lang=js&\"\nexport * from \"./png.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=513fdbc5&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"513fdbc5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"runResultPanel\",staticClass:\"run-result-panel\"},[_c('div',{staticClass:\"run-result-panel-content\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === null && !_vm.isGettingResults && !_vm.error),expression:\"result === null && !isGettingResults && !error\"}],staticClass:\"table-preview result-before\"},[_vm._v(\" Run your query and get results here \")]),(_vm.isGettingResults)?_c('div',{staticClass:\"table-preview result-in-progress\"},[_c('loading-indicator',{attrs:{\"size\":30}}),_vm._v(\" Fetching results... \")],1):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === undefined && !_vm.isGettingResults && !_vm.error),expression:\"result === undefined && !isGettingResults && !error\"}],staticClass:\"table-preview result-empty\"},[_vm._v(\" No rows retrieved according to your query \")]),(_vm.error)?_c('logs',{attrs:{\"messages\":[_vm.error]}}):_vm._e(),(_vm.result)?_c('sql-table',{staticClass:\"straight\",attrs:{\"data-set\":_vm.result,\"time\":_vm.time,\"pageSize\":_vm.pageSize}}):_vm._e()],1),_c('side-tool-bar',{attrs:{\"panel\":\"table\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RunResult.vue?vue&type=template&id=73e5054b&scoped=true&\"\nimport script from \"./RunResult.vue?vue&type=script&lang=js&\"\nexport * from \"./RunResult.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73e5054b\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=741ababb&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=741ababb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"741ababb\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=75c85da5&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=de063d86&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"de063d86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showedInquiries.length === 0)?_c('div',{attrs:{\"id\":\"start-guide\"}},[_vm._v(\" You don't have saved inquiries so far. \"),_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" the one from scratch or \"),_c('span',{staticClass:\"link\",on:{\"click\":_vm.importInquiries}},[_vm._v(\"import\")]),_vm._v(\" from a file. \")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showedInquiries.length > 0),expression:\"showedInquiries.length > 0\"}],ref:\"my-inquiries-content\",attrs:{\"id\":\"my-inquiries-content\"}},[_c('div',{attrs:{\"id\":\"my-inquiries-toolbar\"}},[_c('div',{attrs:{\"id\":\"toolbar-buttons\"}},[_c('button',{staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-import\"},on:{\"click\":_vm.importInquiries}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > 0),expression:\"selectedInquiriesCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-export\"},on:{\"click\":function($event){return _vm.exportSelectedInquiries()}}},[_vm._v(\" Export \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedNotPredefinedCount > 0),expression:\"selectedNotPredefinedCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-delete\"},on:{\"click\":function($event){return _vm.showDeleteDialog(_vm.selectedInquiriesIds)}}},[_vm._v(\" Delete \")])]),_c('div',{attrs:{\"id\":\"toolbar-search\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search inquiry by name\",\"width\":\"300px\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1)]),_c('div',{staticClass:\"rounded-bg\"},[_c('div',{staticClass:\"header-container\"},[_c('div',[_c('div',{ref:\"name-th\",staticClass:\"fixed-header\"},[_c('check-box',{ref:\"mainCheckBox\",attrs:{\"theme\":\"light\"},on:{\"click\":_vm.toggleSelectAll}}),_c('div',{staticClass:\"name-th\"},[_vm._v(\"Name\")])],1),_c('div',{staticClass:\"fixed-header\"},[_vm._v(\" Created at \")])])]),_c('div',{staticClass:\"table-container\",style:({ 'max-height': (_vm.maxTableHeight + \"px\") })},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('tbody',_vm._l((_vm.showedInquiries),function(inquiry,index){return _c('tr',{key:inquiry.id,on:{\"click\":function($event){return _vm.openInquiry(index)}}},[_c('td',{ref:\"name-td\",refInFor:true},[_c('div',{staticClass:\"cell-data\"},[_c('check-box',{ref:\"rowCheckBox\",refInFor:true,attrs:{\"init\":_vm.selectAll || _vm.selectedInquiriesIds.has(inquiry.id)},on:{\"click\":function($event){return _vm.toggleRow($event, inquiry.id)}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(inquiry.name))]),(inquiry.isPredefined)?_c('div',{staticClass:\"badge\",on:{\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_vm._v(\" Predefined \"),_c('span',{ref:\"tooltip\",refInFor:true,staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. \")])]):_vm._e()],1)]),_c('td',[_c('div',{staticClass:\"second-column\"},[_c('div',{staticClass:\"date-container\"},[_vm._v(_vm._s(_vm._f(\"date\")(inquiry.createdAt)))]),_c('div',{staticClass:\"icons-container\"},[(!inquiry.isPredefined)?_c('rename-icon',{on:{\"click\":function($event){return _vm.showRenameDialog(inquiry.id)}}}):_vm._e(),_c('copy-icon',{on:{\"click\":function($event){return _vm.duplicateInquiry(index)}}}),_c('export-icon',{attrs:{\"tooltip\":\"Export inquiry to file\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.exportToFile([inquiry], ((inquiry.name) + \".json\"))}}}),(!inquiry.isPredefined)?_c('delete-icon',{on:{\"click\":function($event){_vm.showDeleteDialog((new Set()).add(inquiry.id))}}}):_vm._e()],1)])])])}),0)])])])]),_c('modal',{attrs:{\"name\":\"rename\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Rename inquiry \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('rename')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"New inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('rename')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.renameInquiry}},[_vm._v(\"Rename\")])])]),_c('modal',{attrs:{\"name\":\"delete\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Delete \"+_vm._s(_vm.deleteGroup ? 'inquiries' : 'inquiry')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('delete')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" \"+_vm._s(_vm.deleteDialogMsg)+\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > _vm.selectedNotPredefinedCount),expression:\"selectedInquiriesCount > selectedNotPredefinedCount\"}],attrs:{\"id\":\"note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries you've selected won't be deleted \")])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('delete')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.deleteInquiry}},[_vm._v(\"Delete\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Rename inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./rename.vue?vue&type=template&id=075cb800&scoped=true&\"\nimport script from \"./rename.vue?vue&type=script&lang=js&\"\nexport * from \"./rename.vue?vue&type=script&lang=js&\"\nimport style0 from \"./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"075cb800\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Duplicate inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./copy.vue?vue&type=template&id=3a61cb73&scoped=true&\"\nimport script from \"./copy.vue?vue&type=script&lang=js&\"\nexport * from \"./copy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a61cb73\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, 'top-left')},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Delete inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./delete.vue?vue&type=template&id=581e8819&scoped=true&\"\nimport script from \"./delete.vue?vue&type=script&lang=js&\"\nexport * from \"./delete.vue?vue&type=script&lang=js&\"\nimport style0 from \"./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"581e8819\",\n null\n \n)\n\nexport default component.exports","export default {\n _migrate (installedVersion, inquiries) {\n if (installedVersion === 1) {\n inquiries.forEach(inquire => {\n inquire.viewType = 'chart'\n inquire.viewOptions = inquire.chart\n delete inquire.chart\n })\n return inquiries\n }\n }\n}\n","import { nanoid } from 'nanoid'\nimport fu from '@/lib/utils/fileIo'\nimport migration from './_migrations'\n\nconst migrate = migration._migrate\n\nexport default {\n version: 2,\n getStoredInquiries () {\n let myInquiries = JSON.parse(localStorage.getItem('myInquiries'))\n if (!myInquiries) {\n const oldInquiries = localStorage.getItem('myQueries')\n if (oldInquiries) {\n myInquiries = migrate(1, JSON.parse(oldInquiries))\n this.updateStorage(myInquiries)\n return myInquiries\n }\n return []\n }\n\n return (myInquiries && myInquiries.inquiries) || []\n },\n\n duplicateInquiry (baseInquiry) {\n const newInquiry = JSON.parse(JSON.stringify(baseInquiry))\n newInquiry.name = newInquiry.name + ' Copy'\n newInquiry.id = nanoid()\n newInquiry.createdAt = new Date()\n delete newInquiry.isPredefined\n\n return newInquiry\n },\n\n isTabNeedName (inquiryTab) {\n const isFromScratch = !inquiryTab.initName\n return inquiryTab.isPredefined || isFromScratch\n },\n\n save (inquiryTab, newName) {\n const value = {\n id: inquiryTab.isPredefined ? nanoid() : inquiryTab.id,\n query: inquiryTab.query,\n viewType: inquiryTab.$refs.dataView.mode,\n viewOptions: inquiryTab.$refs.dataView.getOptionsForSave(),\n name: newName || inquiryTab.initName\n }\n\n // Get inquiries from local storage\n const myInquiries = this.getStoredInquiries()\n\n // Set createdAt\n if (newName) {\n value.createdAt = new Date()\n } else {\n var inquiryIndex = myInquiries.findIndex(oldInquiry => oldInquiry.id === inquiryTab.id)\n value.createdAt = myInquiries[inquiryIndex].createdAt\n }\n\n // Insert in inquiries list\n if (newName) {\n myInquiries.push(value)\n } else {\n myInquiries[inquiryIndex] = value\n }\n\n // Save to local storage\n this.updateStorage(myInquiries)\n return value\n },\n\n updateStorage (inquiries) {\n localStorage.setItem('myInquiries', JSON.stringify({ version: this.version, inquiries }))\n },\n\n serialiseInquiries (inquiryList) {\n const preparedData = JSON.parse(JSON.stringify(inquiryList))\n preparedData.forEach(inquiry => delete inquiry.isPredefined)\n return JSON.stringify({ version: this.version, inquiries: preparedData }, null, 4)\n },\n\n deserialiseInquiries (str) {\n const inquiries = JSON.parse(str)\n let inquiryList = []\n if (!inquiries.version) {\n // Turn data into array if they are not\n inquiryList = !Array.isArray(inquiries) ? [inquiries] : inquiries\n inquiryList = migrate(1, inquiryList)\n } else {\n inquiryList = inquiries.inquiries || []\n }\n\n // Generate new ids if they are the same as existing inquiries\n inquiryList.forEach(inquiry => {\n const allInquiriesIds = this.getStoredInquiries().map(inquiry => inquiry.id)\n if (allInquiriesIds.includes(inquiry.id)) {\n inquiry.id = nanoid()\n }\n })\n\n return inquiryList\n },\n\n importInquiries () {\n return fu.importFile()\n .then(str => {\n return this.deserialiseInquiries(str)\n })\n },\n\n async readPredefinedInquiries () {\n const res = await fu.readFile('./inquiries.json')\n const data = await res.json()\n\n if (!data.version) {\n return data.length > 0 ? migrate(1, data) : []\n } else {\n return data.inquiries\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2b039cec&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b039cec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"dbloader-container\"}},[_c('db-uploader',{attrs:{\"type\":\"illustrated\"}}),_c('div',{attrs:{\"id\":\"note\"}},[_vm._v(\" Sqliteviz is fully client-side. Your database never leaves your computer. \")]),_c('button',{staticClass:\"secondary\",attrs:{\"id\":\"skip\"},on:{\"click\":function($event){return _vm.$router.push('/workspace')}}},[_vm._v(\" Create empty database \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=0da5ae79&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=js&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0da5ae79\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('main-menu'),_c('keep-alive',{attrs:{\"include\":\"Workspace\"}},[_c('router-view',{attrs:{\"id\":\"main-view\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',[_c('div',[_c('router-link',{attrs:{\"to\":\"/workspace\"}},[_vm._v(\"Workspace\")]),_c('router-link',{attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")]),_c('a',{attrs:{\"href\":\"https://github.com/lana-k/sqliteviz/wiki\",\"target\":\"_blank\"}},[_vm._v(\"Help\")])],1),_c('div',{attrs:{\"id\":\"nav-buttons\"}},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentInquiry && _vm.$route.path === '/workspace'),expression:\"currentInquiry && $route.path === '/workspace'\"}],staticClass:\"primary\",attrs:{\"id\":\"save-btn\",\"disabled\":_vm.isSaved},on:{\"click\":_vm.checkInquiryBeforeSave}},[_vm._v(\" Save \")]),_c('button',{staticClass:\"primary\",attrs:{\"id\":\"create-btn\"},on:{\"click\":_vm.createNewInquiry}},[_vm._v(\" Create \")]),_c('app-diagnostic-info')],1),_c('modal',{attrs:{\"name\":\"save\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Save inquiry \"),_c('close-icon',{on:{\"click\":_vm.cancelSave}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isPredefined),expression:\"isPredefined\"}],attrs:{\"id\":\"save-note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. \")]),_c('text-field',{attrs:{\"label\":\"Inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":_vm.cancelSave}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.saveInquiry}},[_vm._v(\"Save\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app-info-container\"}},[_c('img',{attrs:{\"id\":\"app-info-icon\",\"src\":require('@/assets/images/info.svg')},on:{\"click\":function($event){return _vm.$modal.show('app-info')}}}),_c('modal',{attrs:{\"name\":\"app-info\",\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"400px\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" App info \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('app-info')}}})],1),_c('div',{staticClass:\"dialog-body\"},_vm._l((_vm.info),function(item,index){return _c('div',{key:index,staticClass:\"info-item\"},[_vm._v(\" \"+_vm._s(item.name)+\" \"),_c('div',{staticClass:\"divider\"}),_c('div',{staticClass:\"options\"},_vm._l((item.info),function(opt,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(opt)+\" \")])}),0)])}),0)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppDiagnosticInfo.vue?vue&type=template&id=6bad2e0a&scoped=true&\"\nimport script from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDiagnosticInfo.vue?vue&type=style&index=0&id=6bad2e0a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6bad2e0a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainMenu.vue?vue&type=template&id=707ebea6&scoped=true&\"\nimport script from \"./MainMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MainMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"707ebea6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=25aa04f9&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25aa04f9\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Workspace from '@/views/Main/Workspace'\nimport Inquiries from '@/views/Main/Inquiries'\nimport Welcome from '@/views/Welcome'\nimport Main from '@/views/Main'\nimport store from '@/store'\nimport database from '@/lib/database'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Welcome',\n component: Welcome\n },\n {\n path: '/',\n name: 'Main',\n component: Main,\n children: [\n {\n path: '/workspace',\n name: 'Workspace',\n component: Workspace\n },\n {\n path: '/inquiries',\n name: 'Inquiries',\n component: Inquiries\n }\n ]\n }\n]\n\nconst router = new VueRouter({\n routes\n})\n\nrouter.beforeEach(async (to, from, next) => {\n if (!store.state.db) {\n const newDb = database.getNewDatabase()\n await newDb.loadDb()\n store.commit('setDb', newDb)\n }\n next()\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\nimport store from '@/store'\nimport { VuePlugin } from 'vuera'\nimport VModal from 'vue-js-modal'\n\nimport '@/assets/styles/variables.css'\nimport '@/assets/styles/buttons.css'\nimport '@/assets/styles/tables.css'\nimport '@/assets/styles/dialogs.css'\nimport '@/assets/styles/tooltips.css'\nimport '@/assets/styles/messages.css'\nimport 'vue-multiselect/dist/vue-multiselect.min.css'\nimport '@/assets/styles/multiselect.css'\n\nif (!['localhost', '127.0.0.1'].includes(location.hostname)) {\n import('./registerServiceWorker') // eslint-disable-line no-unused-expressions\n}\n\nVue.use(VuePlugin)\nVue.use(VModal)\n\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/file.f5540c43.png\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=741ababb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=741ababb&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.97da6287.js b/js/app.97da6287.js deleted file mode 100644 index e16d1c5..0000000 --- a/js/app.97da6287.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var n,s,o=t[0],c=t[1],l=t[2],u=0,M=[];u0&&e.paneBefore.size>0}]},[100===e.after.max&&e.paneAfter.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneBefore)}}},[n("img",{staticClass:"direction-icon",style:e.directionBeforeIconStyle,attrs:{src:i("0ca3")}})]):e._e(),100===e.before.max&&e.paneBefore.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneAfter)}}},[n("img",{staticClass:"direction-icon",style:e.directionAfterIconStyle,attrs:{src:i("0ca3")}})]):e._e()])]),n("div",{ref:"right",staticClass:"splitpanes-pane",style:e.styles.after},[e._t("right-pane")],2)])}),h=[],I=i("5530"),m=i("ade3"),N={getCurrentMouseDrag:function(e,t){var i=t.getBoundingClientRect(),n="ontouchstart"in window&&e.touches?e.touches[0]:e,a=n.clientX,r=n.clientY;return{x:a-i.left,y:r-i.top}},getCurrentDragPercentage:function(e,t,i){var n=this.getCurrentMouseDrag(e,t);n=n[i?"y":"x"];var a=t[i?"clientHeight":"clientWidth"];return 100*n/a},calculateOffset:function(e,t){var i=t.container,n=t.isHorisontal,a=t.paneBeforeMax,r=t.paneAfterMax,s=this.getCurrentDragPercentage(e,i,n),o=a<100&&s>=a,c=r<100&&s<=100-r;return o||c?o?a:Math.max(100-r,0):Math.min(Math.max(s,0),a)}},f={name:"Splitpanes",props:{horizontal:{type:Boolean,default:!1},before:{type:Object},after:{type:Object}},data:function(){return{container:null,paneBefore:this.before,paneAfter:this.after,beforeMinimising:{before:this.before.size,after:this.after.size},dragging:!1,movableSplitter:{top:0,left:0,visibility:"hidden"}}},computed:{styles:function(){return{before:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneBefore.size,"%")),after:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneAfter.size,"%"))}},movableSplitterStyle:function(){var e=Object(I["a"])({},this.movableSplitter);return e.top+="%",e.left+="%",e},directionBeforeIconStyle:function(){var e=0!==this.paneBefore.size,t="translate(-50%, -50%) ",i="";return i=this.horizontal?e?"rotate(90deg)":"rotate(-90deg)":e?"rotate(0deg)":"rotate(180deg)",{transform:t+i}},directionAfterIconStyle:function(){var e=0!==this.paneAfter.size,t="translate(-50%, -50%)",i="";return i=this.horizontal?e?"rotate(-90deg)":"rotate(90deg)":e?"rotate(180deg)":"rotate(0deg)",{transform:t+i}}},methods:{bindEvents:function(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents:function(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseMove:function(e){e.preventDefault(),this.dragging=!0,this.movableSplitter.visibility="visible",this.moveSplitter(e)},onMouseUp:function(){if(this.dragging){var e=this.horizontal?this.movableSplitter.top:this.movableSplitter.left;this.paneBefore.size=e,this.paneAfter.size=100-e,this.movableSplitter={top:0,left:0,visibility:"hidden"},this.dragging=!1}this.unbindEvents()},moveSplitter:function(e){var t={container:this.container,paneBeforeMax:this.paneBefore.max,paneAfterMax:this.paneAfter.max,isHorisontal:this.horizontal},i=N.calculateOffset(e,t),n=this.horizontal?"top":"left";this.movableSplitter[n]=i},togglePane:function(e){if(e.size>0){this.beforeMinimising.before=this.paneBefore.size,this.beforeMinimising.after=this.paneAfter.size,e.size=0;var t=e===this.paneBefore?this.paneAfter:this.paneBefore;t.size=100-e.size}else this.paneBefore.size=this.beforeMinimising.before,this.paneAfter.size=this.beforeMinimising.after}},mounted:function(){this.container=this.$refs.container}},v=f,D=(i("a1f0"),Object(s["a"])(v,p,h,!1,null,null,null)),j=D.exports,y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"schema-container"}},[i("div",{attrs:{id:"schema-filter"}},[i("text-field",{attrs:{placeholder:"Search table",width:"100%"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1),i("div",{attrs:{id:"db"}},[i("div",{staticClass:"db-name",on:{click:function(t){e.schemaVisible=!e.schemaVisible}}},[i("tree-chevron",{directives:[{name:"show",rawName:"v-show",value:e.schema.length>0,expression:"schema.length > 0"}],attrs:{expanded:e.schemaVisible}}),e._v(" "+e._s(e.dbName)+" ")],1),i("db-uploader",{attrs:{id:"db-edit",type:"small"}}),i("export-icon",{attrs:{tooltip:"Export database"},on:{click:e.exportToFile}}),i("add-table-icon",{on:{click:e.addCsv}})],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.schemaVisible,expression:"schemaVisible"}],staticClass:"schema"},e._l(e.schema,(function(e){return i("table-description",{key:e.name,attrs:{name:e.name,columns:e.columns}})})),1),i("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.$store.state.db,"dialog-name":"addCsv"}})],1)},b=[],C=(i("4de4"),i("b0c0"),i("ac1f"),i("5319"),i("2b3d"),{isDatabase:function(e){var t=["application/vnd.sqlite3","application/x-sqlite3"];return e.type?t.includes(e.type):/\.(db|sqlite(3)?)+$/.test(e.name)},getFileName:function(e){return e.name.replace(/\.[^.]+$/,"")},downloadFromUrl:function(e,t){var i=document.createElement("a");i.href=e,i.download=t,i.click(),URL.revokeObjectURL(e)},exportToFile:function(e,t){var i=arguments,n=this;return Object(u["a"])(regeneratorRuntime.mark((function a(){var r,s,o;return regeneratorRuntime.wrap((function(a){while(1)switch(a.prev=a.next){case 0:r=i.length>2&&void 0!==i[2]?i[2]:"octet/stream",s=new Blob([e],{type:r}),o=URL.createObjectURL(s),n.downloadFromUrl(o,t);case 4:case"end":return a.stop()}}),a)})))()},getFileFromUser:function(e){return new Promise((function(t){var i=document.createElement("input");i.type="file",i.accept=e,i.addEventListener("change",(function(){var e=i.files[0];t(e)})),i.click()}))},importFile:function(){var e=new FileReader;return this.getFileFromUser(".json").then((function(t){return new Promise((function(i,n){e.onload=function(e){i(e.target.result)},e.readAsText(t)}))}))},readFile:function(e){return fetch(e)},readAsArrayBuffer:function(e){var t=new FileReader;return new Promise((function(i,n){t.onerror=function(){t.abort(),n(new Error("Problem parsing input file."))},t.onload=function(){i(t.result)},t.readAsArrayBuffer(e)}))}}),z=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"table-name",on:{click:function(t){e.colVisible=!e.colVisible}}},[i("tree-chevron",{attrs:{expanded:e.colVisible}}),e._v(" "+e._s(e.name)+" ")],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.colVisible,expression:"colVisible"}],staticClass:"columns"},e._l(e.columns,(function(t,n){return i("div",{key:n,staticClass:"column"},[e._v(" "+e._s(t.name)+" "),i("span",{staticClass:"column-type"},[e._v(e._s(t.type))])])})),0)])},T=[],w=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{staticClass:"chevron-icon",style:{transform:e.expanded?"rotate(90deg)":"rotate(0)"},attrs:{width:"9",height:"9",viewBox:"0 0 8 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z",fill:e.expanded?"#506784":"rgba(80, 103, 132, 0.5)"}})])},x=[],O={name:"treeChevron",props:{expanded:{type:Boolean,required:!0}}},A=O,L=(i("2edc"),Object(s["a"])(A,w,x,!1,null,"bfc135e8",null)),k=L.exports,E={name:"TableDescription",components:{TreeChevron:k},props:["name","columns"],data:function(){return{colVisible:!1}}},S=E,Q=(i("dfd4"),Object(s["a"])(S,z,T,!1,null,"060be7fb",null)),U=Q.exports,Y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.label?i("div",{class:["text-field-label",{error:e.errorMsg},{disabled:e.disabled}]},[e._v(" "+e._s(e.label)+" "),e.hint?i("hint-icon",{staticClass:"hint",attrs:{hint:e.hint,"max-width":e.maxHintWidth||"149px"}}):e._e()],1):e._e(),i("input",{class:{error:e.errorMsg},style:{width:e.width},attrs:{type:"text",placeholder:e.placeholder,disabled:e.disabled},domProps:{value:e.value},on:{input:function(t){return e.$emit("input",t.target.value)}}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.errorMsg,expression:"errorMsg"}],staticClass:"text-field-error"},[e._v(e._s(e.errorMsg))])])},Z=[],P=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"hint-icon",attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:Object.assign({},e.tooltipStyle,{maxWidth:e.maxWidth})},[e._v(" "+e._s(e.hint)+" ")])])},_=[],q=(i("1276"),{data:function(){return{tooltipStyle:{visibility:"hidden"}}},computed:{tooltipElement:function(){return this.$refs.tooltip}},methods:{showTooltip:function(e,t){var i=t?t.split("-"):["top","right"],n=12;"top"===i[0]?this.tooltipStyle.top=e.clientY-n+"px":this.tooltipStyle.top=e.clientY+n+"px","right"===i[1]?this.tooltipStyle.left=e.clientX+n+"px":this.tooltipStyle.left=e.clientX-n-this.tooltipElement.offsetWidth+"px",this.tooltipStyle.visibility="visible"},hideTooltip:function(){this.tooltipStyle.visibility="hidden"}}}),V={name:"HintIcon",props:["hint","maxWidth"],mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},R=V,B=(i("80ad"),Object(s["a"])(R,P,_,!1,null,"30581f31",null)),G=B.exports,H={name:"textField",props:["placeholder","label","errorMsg","value","width","hint","maxHintWidth","disabled"],components:{HintIcon:G}},$=H,W=(i("daef"),Object(s["a"])($,Y,Z,!1,null,"59fd41a8",null)),F=W.exports,J=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"db-uploader-container",style:{width:e.width}},["small"===e.type?n("change-db-icon",{on:{click:e.browse}}):e._e(),"illustrated"===e.type?n("div",{staticClass:"drop-area-container"},[n("div",{staticClass:"drop-area",on:{dragover:function(t){t.preventDefault(),e.state="dragover"},dragleave:function(t){t.preventDefault(),e.state=""},drop:function(t){return t.preventDefault(),e.drop(t)},click:e.browse}},[n("div",{staticClass:"text"},[e._v(" Drop the database or CSV file here or click to choose a file from your computer. ")])])]):e._e(),"illustrated"===e.type?n("div",{attrs:{id:"img-container"}},[n("img",{attrs:{id:"drop-file-top-img",src:i("3a016")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"left-arm-img",src:i("9bf4")}}),n("img",{ref:"fileImg",class:{swing:"dragover"===e.state,fly:"dropping"===e.state,hidden:"dropped"===e.state},attrs:{id:"file-img",src:i("87d4")}}),n("img",{attrs:{id:"drop-file-bottom-img",src:i("6a0b")}}),n("img",{attrs:{id:"body-img",src:i("1678")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"right-arm-img",src:i("2335")}})]):e._e(),n("div",{staticClass:"error",attrs:{id:"error"}}),n("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.newDb,"dialog-name":"importFromCsv"},on:{cancel:e.cancelCsvImport,finish:e.finish}})],1)},X=[],K=(i("2ca0"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"db-edit-icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Load another database or CSV ")])])}),ee=[],te={name:"changeDbIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ie=te,ne=(i("637d"),Object(s["a"])(ie,K,ee,!1,null,"2c7f445c",null)),ae=ne.exports,re=i("d4ec"),se=i("bee2"),oe=(i("159b"),i("53ca")),ce=i("3835"),le=(i("d81d"),i("b64b"),i("fb6a"),i("99af"),i("6283")),ue=i.n(le),de={generateChunks:regeneratorRuntime.mark((function e(t,i){var n,a,r,s,o,c,l,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:n=Object.keys(t).map((function(e){return t[e]})),a=Object(ce["a"])(n,1),r=a[0],s=r.map((function(e,t){return n.map((function(e){return e[t]}))})),o=Math.ceil(s.length/i),c=0;case 5:if(!(c<=o-1)){e.next=13;break}return l=i*c,u=l+i,e.next=10,s.slice(l,u);case 10:c++,e.next=5;break;case 13:case"end":return e.stop()}}),e)})),getInsertStmt:function(e,t){var i='"'.concat(t.join('", "'),'"'),n=t.map((function(){return"?"})).join(", ");return'INSERT INTO "'.concat(e,'" (').concat(i,") VALUES (").concat(n,");")},getCreateStatement:function(e,t){var i='CREATE table "'.concat(e,'"(');for(var n in t){var a=t[n][0],r="";switch(Object(oe["a"])(a)){case"number":r="REAL";break;case"boolean":r="INTEGER";break;case"string":r="TEXT";break;default:r="TEXT"}i+='"'.concat(n,'" ').concat(r,", ")}return i=i.replace(/,\s$/,");"),i},getAst:function(e){var t=e.replace(/(tokenize=[^,]+)"tokenchars=.+?"/,"$1").replace(/(tokenize=[^,]+)"remove_diacritics=.+?"/,"$1").replace(/(tokenize=[^,]+)"separators=.+?"/,"$1").replace(/tokenize=.+?(,|\))/,"tokenize=unicode61$1");return ue()(t)},getColumns:function(e){var t=[],i=this.getAst(e),n="table"===i.statement[0].format?i.statement[0].definition:i.statement[0].result.args.expression;return n.forEach((function(e){if("column"===e.variant&&["identifier","definition"].includes(e.type)){var i=e.datatype?e.datatype.variant:"N/A";e.datatype&&e.datatype.args&&(i=i+"("+e.datatype.args.expression[0].value,2===e.datatype.args.expression.length&&(i=i+", "+e.datatype.args.expression[1].value),i+=")"),t.push({name:e.name,type:i})}})),t}};function Me(){return new Worker(i.p+"js/_worker.5e0dd41a.worker.js")}var ge=i("ebb0"),pe=i.n(ge);function he(){var e=new Me;return new Ne(e)}var Ie={getNewDatabase:he},me=0,Ne=function(){function e(t){var i=this;Object(re["a"])(this,e),this.dbName=null,this.schema=null,this.worker=t,this.pw=new pe.a(t),this.importProgresses={},t.addEventListener("message",(function(e){var t=e.data.progress;if(void 0!==t){var n=e.data.id;i.importProgresses[n].dispatchEvent(new CustomEvent("progress",{detail:t}))}}))}return Object(se["a"])(e,[{key:"shutDown",value:function(){this.worker.terminate()}},{key:"createProgressCounter",value:function(e){var t=me++;return this.importProgresses[t]=new EventTarget,this.importProgresses[t].addEventListener("progress",(function(t){e(t.detail)})),t}},{key:"deleteProgressCounter",value:function(e){delete this.importProgresses[e]}},{key:"addTableFromCsv",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"import",data:i,progressCounterId:n,tabName:t});case 2:if(a=e.sent,!a.error){e.next=5;break}throw new Error(a.error);case 5:this.dbName=this.dbName||"database",this.refreshSchema();case 7:case"end":return e.stop()}}),e,this)})));function t(t,i,n){return e.apply(this,arguments)}return t}()},{key:"loadDb",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return e.next=3,C.readAsArrayBuffer(t);case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=null;case 7:return i=e.t0,e.next=10,this.pw.postMessage({action:"open",buffer:i});case 10:if(n=e.sent,!n.error){e.next=13;break}throw new Error(n.error);case 13:this.dbName=t?C.getFileName(t):"database",this.refreshSchema();case 15:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"refreshSchema",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t="\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n ",e.next=3,this.execute(t);case 3:i=e.sent,n=[],i&&i.name&&i.name.forEach((function(e,t){n.push({name:e,columns:de.getColumns(i.sql[t])})})),this.schema=n;case 7:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"execute",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"reopen"});case 2:return e.next=4,this.pw.postMessage({action:"exec",sql:t});case 4:if(i=e.sent,!i.error){e.next=7;break}throw new Error(i.error);case 7:return e.abrupt("return",i[i.length-1]);case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"export",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"export"});case 2:if(i=e.sent,!i.error){e.next=5;break}throw new Error(i.error);case 5:C.exportToFile(i,t);case 6:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"validateTableName",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t.startsWith("sqlite_")){e.next=2;break}throw new Error("Table name can't start with sqlite_");case 2:if(!/[^\w]/.test(t)){e.next=4;break}throw new Error("Table name can contain only letters, digits and underscores");case 4:if(!/^(\d)/.test(t)){e.next=6;break}throw new Error("Table name can't start with a digit");case 6:return e.next=8,this.execute('BEGIN; CREATE TABLE "'.concat(t,'"(id); ROLLBACK;'));case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"sanitizeTableName",value:function(e){return e.replace(/[^\w]/g,"_").replace(/^(\d)/,"_$1").replace(/_{2,}/g,"_")}}]),e}(),fe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("modal",{attrs:{name:e.dialogName,classes:"dialog",height:"auto",width:"80%",scrollable:"",clickToClose:!1}},[i("div",{staticClass:"dialog-header"},[e._v(" CSV import "),i("close-icon",{attrs:{disabled:e.disableDialog},on:{click:e.cancelCsvImport}})],1),i("div",{staticClass:"dialog-body"},[i("text-field",{attrs:{label:"Table name",width:"484px",disabled:e.disableDialog,"error-msg":e.tableNameError,id:"csv-table-name"},model:{value:e.tableName,callback:function(t){e.tableName=t},expression:"tableName"}}),i("div",{staticClass:"chars"},[i("delimiter-selector",{staticClass:"char-input",attrs:{width:"210px",disabled:e.disableDialog},on:{input:e.previewCsv},model:{value:e.delimiter,callback:function(t){e.delimiter=t},expression:"delimiter"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Quote char",hint:"The character used to quote fields.",width:"93px",disabled:e.disableDialog,id:"quote-char"},model:{value:e.quoteChar,callback:function(t){e.quoteChar=t},expression:"quoteChar"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Escape char",hint:'The character used to escape the quote character within a field (e.g. "column with ""quotes"" in text").',"max-hint-width":"242px",width:"93px",disabled:e.disableDialog,id:"escape-char"},model:{value:e.escapeChar,callback:function(t){e.escapeChar=t},expression:"escapeChar"}})],1),i("check-box",{attrs:{init:!0,label:"Use first row as column headers",disabled:e.disableDialog},on:{click:function(t){e.header=t}}}),e.previewData&&(e.previewData.rowCount>0||Object.keys(e.previewData).length>0)?i("sql-table",{staticClass:"preview-table",attrs:{"data-set":e.previewData,preview:!0}}):i("div",{staticClass:"no-data"},[e._v("No data")]),i("logs",{staticClass:"import-csv-errors",attrs:{messages:e.importCsvMessages}})],1),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",attrs:{disabled:e.disableDialog,id:"csv-cancel"},on:{click:e.cancelCsvImport}},[e._v(" Cancel ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:!e.importCsvCompleted,expression:"!importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-import"},on:{click:function(t){return e.loadFromCsv(e.file)}}},[e._v(" Import ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:e.importCsvCompleted,expression:"importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-finish"},on:{click:e.finish}},[e._v(" Finish ")])])])},ve=[],De=(i("498a"),i("369b")),je=i.n(De),ye={MissingQuotes:"Edit your CSV so that the field has a closing quote char.",TooFewFields:"Add fields or try another delimiter.",TooManyFields:"Edit your CSV or try another delimiter."},be={getResult:function(e){var t={};if(e.meta.fields)e.meta.fields.forEach((function(i){t[i.trim()]=e.data.map((function(e){var t=e[i];return t instanceof Date&&(t=t.toISOString()),t}))}));else for(var i=function(i){t["col".concat(i+1)]=e.data.map((function(e){var t=e[i];return t instanceof Date&&(t=t.toISOString()),t}))},n=0;n<=e.data[0].length-1;n++)i(n);return t},parse:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,a){var r={delimiter:"",newline:"",quoteChar:'"',escapeChar:'"',header:!1,transformHeader:void 0,dynamicTyping:!0,preview:0,encoding:"UTF-8",worker:!0,comments:!1,step:void 0,complete:function(e){var i={data:t.getResult(e),delimiter:e.meta.delimiter,hasErrors:!1,rowCount:e.data.length};i.messages=e.errors.map((function(e){return e.type="UndetectableDelimiter"===e.code?"info":"error","error"===e.type&&(i.hasErrors=!0),e.hint=ye[e.code],e})),n(i)},error:function(e,t){a(e)},download:!1,downloadRequestHeaders:void 0,downloadRequestBody:void 0,skipEmptyLines:"greedy",chunk:void 0,chunkSize:void 0,fastMode:void 0,beforeFirstChunk:void 0,withCredentials:void 0,transform:void 0,delimitersToGuess:[",","\t","|",";",je.a.RECORD_SEP,je.a.UNIT_SEP]};je.a.parse(e,Object(I["a"])(Object(I["a"])({},r),i))}))}},Ce=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["icon",{disabled:e.disabled}],attrs:{width:e.size,height:e.size,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},on:{click:function(t){return t.stopPropagation(),e.$emit("click")}}},[i("path",{attrs:{d:"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z",fill:"#A2B1C6"}})])},ze=[],Te=(i("a9e3"),{name:"CloseIcon",props:{size:{type:Number,required:!1,default:14},disabled:{type:Boolean,required:!1,default:!1}}}),we=Te,xe=(i("f4da"),Object(s["a"])(we,Ce,ze,!1,null,"86f3a16c",null)),Oe=xe.exports,Ae=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:{disabled:e.disabled}},[i("div",{staticClass:"text-field-label"},[e._v("Delimiter")]),i("div",{staticClass:"delimiter-selector-container",style:{width:e.width},on:{click:e.onContainerClick}},[i("div",{staticClass:"value"},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.inputValue,expression:"inputValue"}],ref:"delimiterInput",class:{filled:e.filled},attrs:{type:"text",maxlength:"1",disabled:e.disabled},domProps:{value:e.inputValue},on:{click:function(e){e.stopPropagation()},input:function(t){t.target.composing||(e.inputValue=t.target.value)}}}),i("div",{staticClass:"name"},[e._v(e._s(e.getSymbolName(e.value)))])]),i("div",{staticClass:"controls",on:{click:function(e){e.stopPropagation()}}},[i("clear-icon",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){return e.clear(t)}}}),i("drop-down-chevron",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){!e.disabled&&(e.showOptions=!e.showOptions)}}})],1)]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showOptions,expression:"showOptions"}],staticClass:"options",style:{width:e.width}},e._l(e.options,(function(t,n){return i("div",{key:n,staticClass:"option",on:{click:function(i){return e.chooseOption(t)}}},[i("pre",[e._v(e._s(t))]),i("div",[e._v(e._s(e.getSymbolName(t)))])])})),0)])},Le=[],ke=(i("25f0"),{0:{name:"null character"},1:{name:"start of header"},2:{name:"start of text"},3:{name:"end of text"},4:{name:"end of transmission"},5:{name:"enquiry"},6:{name:"acknowledge"},7:{name:"bell (ring)"},8:{name:"backspace"},9:{name:"horizontal tab"},10:{name:"line feed"},11:{name:"vertical tab"},12:{name:"form feed"},13:{name:"carriage return"},14:{name:"shift out"},15:{name:"shift in"},16:{name:"data link escape"},17:{name:"device control 1"},18:{name:"device control 2"},19:{name:"device control 3"},20:{name:"device control 4"},21:{name:"negative acknowledge"},22:{name:"synchronize"},23:{name:"end transmission block"},24:{name:"cancel"},25:{name:"end of medium"},26:{name:"substitute"},27:{name:"escape"},28:{name:"file separator"},29:{name:"group separator"},30:{name:"record separator"},31:{name:"unit separator"},32:{name:"space"},33:{name:"exclamation mark"},34:{name:"quotation mark"},35:{name:"number sign"},36:{name:"dollar sign"},37:{name:"percent sign"},38:{name:"ampersand"},39:{name:"apostrophe"},40:{name:"left parenthesis"},41:{name:"right parenthesis"},42:{name:"asterisk"},43:{name:"plus sign"},44:{name:"comma"},45:{name:"hyphen"},46:{name:"period"},47:{name:"slash"},48:{name:"digit 0"},49:{name:"digit 1"},50:{name:"digit 2"},51:{name:"digit 3"},52:{name:"digit 4"},53:{name:"digit 5"},54:{name:"digit 6"},55:{name:"digit 7"},56:{name:"digit 8"},57:{name:"digit 9"},58:{name:"colon"},59:{name:"semicolon"},60:{name:"less-than"},61:{name:"equals-to"},62:{name:"greater-than"},63:{name:"question mark"},64:{name:"at sign"},65:{name:"uppercase A"},66:{name:"uppercase B"},67:{name:"uppercase C"},68:{name:"uppercase D"},69:{name:"uppercase E"},70:{name:"uppercase F"},71:{name:"uppercase G"},72:{name:"uppercase H"},73:{name:"uppercase I"},74:{name:"uppercase J"},75:{name:"uppercase K"},76:{name:"uppercase L"},77:{name:"uppercase M"},78:{name:"uppercase N"},79:{name:"uppercase O"},80:{name:"uppercase P"},81:{name:"uppercase Q"},82:{name:"uppercase R"},83:{name:"uppercase S"},84:{name:"uppercase T"},85:{name:"uppercase U"},86:{name:"uppercase V"},87:{name:"uppercase W"},88:{name:"uppercase X"},89:{name:"uppercase Y"},90:{name:"uppercase Z"},91:{name:"left square bracket"},92:{name:"backslash"},93:{name:"right square bracket"},94:{name:"caret"},95:{name:"underscore"},96:{name:"grave accent"},97:{name:"lowercase a"},98:{name:"lowercase b"},99:{name:"lowercase c"},100:{name:"lowercase d"},101:{name:"lowercase e"},102:{name:"lowercase f"},103:{name:"lowercase g"},104:{name:"lowercase h"},105:{name:"lowercase i"},106:{name:"lowercase j"},107:{name:"lowercase k"},108:{name:"lowercase l"},109:{name:"lowercase m"},110:{name:"lowercase n"},111:{name:"lowercase o"},112:{name:"lowercase p"},113:{name:"lowercase q"},114:{name:"lowercase r"},115:{name:"lowercase s"},116:{name:"lowercase t"},117:{name:"lowercase u"},118:{name:"lowercase v"},119:{name:"lowercase w"},120:{name:"lowercase x"},121:{name:"lowercase y"},122:{name:"lowercase z"},123:{name:"left curly brace"},124:{name:"vertical bar"},125:{name:"right curly brace"},126:{name:"tilde"},127:{name:"delete (rubout)"}}),Ee=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["chevron-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z",fill:"#C8D4E3"}})])},Se=[],Qe={name:"DropDownChevron",props:["disabled"]},Ue=Qe,Ye=(i("493e"),Object(s["a"])(Ue,Ee,Se,!1,null,"29bdb7bf",null)),Ze=Ye.exports,Pe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["clear-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z",fill:"#C8D4E3"}})])},_e=[],qe={name:"ClearIcon",props:["disabled"]},Ve=qe,Re=(i("f7a6"),Object(s["a"])(Ve,Pe,_e,!1,null,"69060e4e",null)),Be=Re.exports,Ge={name:"DelimiterSelector",props:["value","width","disabled"],components:{DropDownChevron:Ze,ClearIcon:Be},data:function(){return{showOptions:!1,options:[",","\t"," ","|",";","",""],filled:!1,inputValue:""}},watch:{inputValue:function(){this.inputValue?(this.filled=!0,this.inputValue!==this.value&&this.$emit("input",this.inputValue)):this.filled=!1}},created:function(){this.inputValue=this.value},methods:{getSymbolName:function(e){return e?ke[e.charCodeAt(0).toString()].name:""},chooseOption:function(e){this.inputValue=e,this.showOptions=!1},onContainerClick:function(e){this.$refs.delimiterInput.focus()},clear:function(){this.disabled||(this.inputValue="",this.$refs.delimiterInput.focus())}}},He=Ge,$e=(i("28f9"),Object(s["a"])(He,Ae,Le,!1,null,"44b0b048",null)),We=$e.exports,Fe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["checkbox-container",{checked:e.checked},{disabled:e.disabled}],on:{click:function(t){return t.stopPropagation(),e.onClick(t)}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.checked,expression:"!checked"}],staticClass:"unchecked"}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&!e.disabled,expression:"checked && !disabled"}],attrs:{src:"light"===e.theme?i("69e6"):i("93dd")}}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&e.disabled,expression:"checked && disabled"}],attrs:{src:i("3d10")}}),e.label?n("span",{staticClass:"label"},[e._v(e._s(e.label))]):e._e()])},Je=[],Xe={name:"CheckBox",props:{theme:{type:String,required:!1,default:"accent",validator:function(e){return["accent","light"].includes(e)}},init:{type:Boolean,required:!1,default:!1},label:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1}},data:function(){return{checked:this.init}},methods:{onClick:function(){this.disabled||(this.checked=!this.checked,this.$emit("click",this.checked))}}},Ke=Xe,et=(i("a96d"),Object(s["a"])(Ke,Fe,Je,!1,null,"0dd86013",null)),tt=et.exports,it=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"rounded-bg"},[i("div",{ref:"header-container",staticClass:"header-container"},[i("div",e._l(e.header,(function(t,n){return i("div",{key:n,staticClass:"fixed-header",style:{width:t.width+"px"}},[e._v(" "+e._s(t.name)+" ")])})),0)]),i("div",{ref:"table-container",staticClass:"table-container",on:{scroll:e.onScrollTable}},[i("table",{ref:"table",staticClass:"sqliteviz-table"},[i("thead",[i("tr",e._l(e.columns,(function(t,n){return i("th",{key:n,ref:"th",refInFor:!0},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(e._s(t))])])})),0)]),i("tbody",e._l(e.currentPageData.count,(function(t){return i("tr",{key:t},e._l(e.columns,(function(n,a){return i("td",{key:a},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(" "+e._s(e.dataSet[n][t-1+e.currentPageData.start])+" ")])])})),0)})),0)])])]),i("div",{staticClass:"table-footer"},[i("div",{staticClass:"table-footer-count"},[e._v(" "+e._s(e.rowCount)+" "+e._s(1===e.rowCount?"row":"rows")+" retrieved "),e.preview?i("span",[e._v("for preview")]):e._e(),e.time?i("span",[e._v("in "+e._s(e.time))]):e._e()]),i("pager",{directives:[{name:"show",rawName:"v-show",value:e.pageCount>1,expression:"pageCount > 1"}],attrs:{"page-count":e.pageCount},model:{value:e.currentPage,callback:function(t){e.currentPage=t},expression:"currentPage"}})],1)])},nt=[],at=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("paginate",{attrs:{"page-count":e.pageCount,"page-range":5,"margin-pages":1,"prev-text":e.chevron,"next-text":e.chevron,"no-li-surround":!0,"container-class":"paginator-continer","page-link-class":"paginator-page-link","active-class":"paginator-active-page","break-view-link-class":"paginator-break","next-link-class":"paginator-next","prev-link-class":"paginator-prev","disabled-class":"paginator-disabled"},model:{value:e.page,callback:function(t){e.page=t},expression:"page"}})},rt=[],st=i("8832"),ot=i.n(st),ct={name:"Pager",components:{Paginate:ot.a},props:["pageCount","value"],data:function(){return{page:this.value,chevron:'\n \n \n \n '}},watch:{page:function(){this.$emit("input",this.page)},value:function(){this.page=this.value}}},lt=ct,ut=(i("fc07"),Object(s["a"])(lt,at,rt,!1,null,"658886c7",null)),dt=ut.exports,Mt={name:"SqlTable",components:{Pager:dt},props:{dataSet:Object,time:String,pageSize:{type:Number,default:20},preview:Boolean},data:function(){return{header:null,tableWidth:null,currentPage:1,resizeObserver:null}},computed:{columns:function(){return Object.keys(this.dataSet)},rowCount:function(){return this.dataSet[this.columns[0]].length},cellStyle:function(){var e=this.tableWidth/this.columns.length;return{maxWidth:"".concat(Math.max(e,100),"px")}},pageCount:function(){return Math.ceil(this.rowCount/this.pageSize)},currentPageData:function(){var e=(this.currentPage-1)*this.pageSize,t=e+this.pageSize;return t>this.rowCount-1&&(t=this.rowCount-1),{start:e,end:t,count:t-e+1}}},methods:{calculateHeadersWidth:function(){var e=this;this.tableWidth=this.$refs["table-container"].offsetWidth,this.$nextTick((function(){e.header=e.$refs.th.map((function(e){return{name:e.innerText,width:e.getBoundingClientRect().width}}))}))},onScrollTable:function(){this.$refs["header-container"].scrollLeft=this.$refs["table-container"].scrollLeft}},mounted:function(){this.resizeObserver=new ResizeObserver(this.calculateHeadersWidth),this.resizeObserver.observe(this.$refs.table),this.calculateHeadersWidth()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.table)},watch:{currentPageData:"calculateHeadersWidth",dataSet:function(){this.currentPage=1}}},gt=Mt,pt=Object(s["a"])(gt,it,nt,!1,null,"115cb541",null),ht=pt.exports,It=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"logsContainer",staticClass:"logs-container"},e._l(e.messages,(function(t,a){return n("div",{key:a,staticClass:"msg"},["error"===t.type?n("img",{attrs:{src:i("7314")}}):e._e(),"info"===t.type?n("img",{attrs:{src:i("db39"),width:"20px"}}):e._e(),"success"===t.type?n("img",{attrs:{src:i("0bf4")}}):e._e(),"loading"===t.type?n("loading-indicator",{attrs:{progress:t.progress}}):e._e(),n("span",{staticClass:"msg-text"},[e._v(e._s(e.serializeMessage(t)))])],1)})),0)},mt=[],Nt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:e.animationClass,attrs:{height:e.size,width:e.size,viewBox:"0 0 "+e.size+" "+e.size}},[i("circle",{staticClass:"loader-svg bg",style:{strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}}),i("circle",{staticClass:"loader-svg front",style:{strokeDasharray:e.circleProgress,strokeDashoffset:e.offset,strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}})])},ft=[],vt={name:"LoadingIndicator",props:{progress:{type:Number,required:!1},size:{type:Number,required:!1,default:20}},computed:{circleProgress:function(){var e=3.14*this.radius*2,t=this.progress?e*this.progress/100:1*e/3,i=e-t;return"".concat(t,"px, ").concat(i,"px")},animationClass:function(){return void 0===this.progress?"loading":"progress"},radius:function(){return this.size/2-this.strokeWidth},offset:function(){return 3.14*this.radius/2},strokeWidth:function(){return this.size/10}}},Dt=vt,jt=(i("d9ad"),Object(s["a"])(Dt,Nt,ft,!1,null,"62096452",null)),yt=jt.exports,bt={name:"logs",props:["messages"],components:{LoadingIndicator:yt},watch:{"messages.length":"scrollToBottom"},mounted:function(){this.scrollToBottom()},methods:{scrollToBottom:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$refs.logsContainer,!i){t.next=5;break}return t.next=4,e.$nextTick();case 4:i.scrollTop=i.scrollHeight;case 5:case"end":return t.stop()}}),t)})))()},serializeMessage:function(e){var t="";return null!==e.row&&void 0!==e.row&&("error"===e.type?t+="Error in row ".concat(e.row,". "):t+="Information about row ".concat(e.row,". ")),t+=e.message,/(\.|!|\?)$/.test(t)||(t+="."),e.hint&&(t+=" ".concat(e.hint)),t}}},Ct=bt,zt=(i("0582"),Object(s["a"])(Ct,It,mt,!1,null,"1c9f27dc",null)),Tt=zt.exports,wt=(i("b680"),{getPeriod:function(e,t){var i=t.getTime()-e.getTime(),n=i/1e3;return n.toFixed(3)+"s"},debounce:function(e,t){var i;return function(){var n=arguments,a=this;clearTimeout(i),i=setTimeout((function(){return e.apply(a,n)}),t)}}}),xt={name:"CsvImport",components:{CloseIcon:Oe,TextField:F,DelimiterSelector:We,CheckBox:tt,SqlTable:ht,Logs:Tt},props:["file","db","dialogName"],data:function(){return{disableDialog:!1,tableName:"",delimiter:"",quoteChar:'"',escapeChar:'"',header:!0,importCsvCompleted:!1,importCsvMessages:[],previewData:null,addedTable:null,tableNameError:""}},watch:{quoteChar:function(){this.previewCsv()},escapeChar:function(){this.previewCsv()},header:function(){this.previewCsv()},tableName:wt.debounce((function(){var e=this;this.tableNameError="",this.tableName&&this.db.validateTableName(this.tableName).catch((function(t){e.tableNameError=t.message+". Try another table name."}))}),400)},methods:{cancelCsvImport:function(){this.disableDialog||(this.addedTable&&(this.db.execute('DROP TABLE "'.concat(this.addedTable,'"')),this.db.refreshSchema()),this.$modal.hide(this.dialogName),this.$emit("cancel"))},reset:function(){this.header=!0,this.quoteChar='"',this.escapeChar='"',this.delimiter="",this.tableName="",this.disableDialog=!1,this.importCsvCompleted=!1,this.importCsvMessages=[],this.previewData=null,this.addedTable=null,this.tableNameError=""},open:function(){this.tableName=this.db.sanitizeTableName(C.getFileName(this.file)),this.$modal.show(this.dialogName)},previewCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.importCsvCompleted=!1,i={preview:3,quoteChar:e.quoteChar||'"',escapeChar:e.escapeChar,header:e.header,delimiter:e.delimiter},t.prev=2,n=new Date,t.next=6,be.parse(e.file,i);case 6:a=t.sent,r=new Date,e.previewData=a.data,e.delimiter=a.delimiter,e.importCsvMessages=a.messages||[],a.hasErrors||e.importCsvMessages.push({message:"Preview parsing is completed in ".concat(wt.getPeriod(n,r),"."),type:"success"}),t.next=17;break;case 14:t.prev=14,t.t0=t["catch"](2),e.importCsvMessages=[{message:t.t0,type:"error"}];case 17:case"end":return t.stop()}}),t,null,[[2,14]])})))()},loadFromCsv:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function e(){var i,n,a,r,s,o,c,l,u,d,M,g;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.tableName){e.next=3;break}return t.tableNameError="Table name can't be empty",e.abrupt("return");case 3:return t.disableDialog=!0,i={quoteChar:t.quoteChar||'"',escapeChar:t.escapeChar,header:t.header,delimiter:t.delimiter},n={message:"Parsing CSV...",type:"info"},t.importCsvMessages.push(n),a=setTimeout((function(){n.type="loading"}),1e3),r={message:"Importing CSV into a SQLite database...",type:"info"},s=null,o=function(e){t.$set(r,"progress",e)},c=t.db.createProgressCounter(o),e.prev=12,l=new Date,e.next=16,be.parse(t.file,i);case 16:if(u=e.sent,d=new Date,u.hasErrors){e.next=38;break}return M=u.rowCount,g=wt.getPeriod(l,d),n.type="success",u.messages.length>0?(t.importCsvMessages=t.importCsvMessages.concat(u.messages),n.message="".concat(M," rows are parsed in ").concat(g,".")):n.message="".concat(M," rows are parsed successfully in ").concat(g,"."),clearTimeout(a),t.importCsvMessages.push(r),s=setTimeout((function(){r.type="loading"}),1e3),l=new Date,e.next=29,t.db.addTableFromCsv(t.tableName,u.data,c);case 29:d=new Date,t.addedTable=t.tableName,g=wt.getPeriod(l,d),r.message="Importing CSV into a SQLite database is completed in ".concat(g,"."),r.type="success",clearTimeout(s),t.importCsvCompleted=!0,e.next=41;break;case 38:n.message="Parsing ended with errors.",n.type="info",t.importCsvMessages=t.importCsvMessages.concat(u.messages);case 41:e.next=48;break;case 43:e.prev=43,e.t0=e["catch"](12),"loading"===n.type&&(n.type="info"),"loading"===r.type&&(r.type="info"),t.importCsvMessages.push({message:e.t0,type:"error"});case 48:clearTimeout(a),clearTimeout(s),t.db.deleteProgressCounter(c),t.disableDialog=!1;case 52:case"end":return e.stop()}}),e,null,[[12,43]])})))()},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$modal.hide(e.dialogName),i=["/*"," * Your CSV file has been imported into ".concat(e.addedTable," table.")," * You can run this SQL query to make all CSV records available for charting."," */",'SELECT * FROM "'.concat(e.addedTable,'"')].join("\n"),t.next=4,e.$store.dispatch("addTab",{query:i});case 4:n=t.sent,e.$store.commit("setCurrentTabId",n),e.importCsvCompleted=!1,e.$emit("finish");case 8:case"end":return t.stop()}}),t)})))()}}},Ot=xt,At=(i("c4dc"),Object(s["a"])(Ot,fe,ve,!1,null,"68ef9d6c",null)),Lt=At.exports,kt={name:"DbUploader",props:{type:{type:String,required:!1,default:"small",validator:function(e){return["illustrated","small"].includes(e)}},width:{type:String,required:!1,default:"unset"}},components:{ChangeDbIcon:ae,CsvImport:Lt},data:function(){return{state:"",animationPromise:Promise.resolve(),file:null,newDb:null}},mounted:function(){var e=this;"illustrated"===this.type&&(this.animationPromise=new Promise((function(t){e.$refs.fileImg.addEventListener("animationend",(function(i){i.animationName.startsWith("fly")&&(e.state="dropped",t())}))})))},methods:{cancelCsvImport:function(){this.newDb&&(this.newDb.shutDown(),this.newDb=null)},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.$store.commit("setDb",e.newDb),"/workspace"!==e.$route.path&&e.$router.push("/workspace");case 2:case"end":return t.stop()}}),t)})))()},loadDb:function(e){return Promise.all([this.newDb.loadDb(e),this.animationPromise]).then(this.finish)},checkFile:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function i(){var n;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:if(t.state="dropping",t.newDb=Ie.getNewDatabase(),!C.isDatabase(e)){i.next=6;break}t.loadDb(e),i.next=12;break;case 6:return t.file=e,i.next=9,t.$nextTick();case 9:return n=t.$refs.addCsv,n.reset(),i.abrupt("return",Promise.all([n.previewCsv(),t.animationPromise]).then(n.open));case 12:case"end":return i.stop()}}),i)})))()},browse:function(){C.getFileFromUser(".db,.sqlite,.sqlite3,.csv").then(this.checkFile)},drop:function(e){this.checkFile(e.dataTransfer.files[0])}}},Et=kt,St=(i("3311"),Object(s["a"])(Et,J,X,!1,null,"eefa30c0",null)),Qt=St.exports,Ut=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")])])},Yt=[],Zt={name:"ExportIcon",mixins:[q],props:["tooltip","tooltipPosition"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Pt=Zt,_t=(i("0ee2"),Object(s["a"])(Pt,Ut,Yt,!1,null,"15bea4a0",null)),qt=_t.exports,Vt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\n 1.77485 15.1649 2.59985\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\n ",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white"}})])])]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Add new table from CSV ")])])},Rt=[],Bt={name:"AddTableIcon",mixins:[q],props:["tooltip"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Gt=Bt,Ht=(i("1640"),Object(s["a"])(Gt,Vt,Rt,!1,null,"0b825a18",null)),$t=Ht.exports,Wt={name:"Schema",components:{TableDescription:U,TextField:F,TreeChevron:k,DbUploader:Qt,ExportIcon:qt,AddTableIcon:$t,CsvImport:Lt},data:function(){return{schemaVisible:!0,filter:null,file:null}},computed:{schema:function(){var e=this;return this.$store.state.db.schema?this.filter?this.$store.state.db.schema.filter((function(t){return-1!==t.name.toUpperCase().indexOf(e.filter.toUpperCase())})):this.$store.state.db.schema:[]},dbName:function(){return this.$store.state.db.dbName}},methods:{exportToFile:function(){this.$store.state.db.export("".concat(this.dbName,".sqlite"))},addCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,C.getFileFromUser(".csv");case 2:return e.file=t.sent,t.next=5,e.$nextTick();case 5:return i=e.$refs.addCsv,i.reset(),t.next=9,i.previewCsv();case 9:i.open();case 10:case"end":return t.stop()}}),t)})))()}}},Ft=Wt,Jt=(i("20c1"),Object(s["a"])(Ft,y,b,!1,null,"3fcc3d82",null)),Xt=Jt.exports,Kt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"tabs"}},[e.tabs.length>0?i("div",{attrs:{id:"tabs-header"}},e._l(e.tabs,(function(t,n){return i("div",{key:n,class:[{"tab-selected":t.id===e.selectedIndex},"tab"],on:{click:function(i){return e.selectTab(t.id)}}},[i("div",{staticClass:"tab-name"},[i("span",{directives:[{name:"show",rawName:"v-show",value:!t.isSaved,expression:"!tab.isSaved"}],staticClass:"star"},[e._v("*")]),t.name?i("span",[e._v(e._s(t.name))]):i("span",{staticClass:"tab-untitled"},[e._v(e._s(t.tempName))])]),i("div",[i("close-icon",{staticClass:"close-icon",attrs:{size:10},on:{click:function(t){return e.beforeCloseTab(n)}}})],1)])})),0):e._e(),e._l(e.tabs,(function(e,t){return i("tab",{key:e.id,attrs:{id:e.id,"init-name":e.name,"init-query":e.query,"init-view-options":e.viewOptions,"init-view-type":e.viewType,"is-predefined":e.isPredefined,"tab-index":t}})})),i("div",{directives:[{name:"show",rawName:"v-show",value:0===e.tabs.length,expression:"tabs.length === 0"}],attrs:{id:"start-guide"}},[i("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" new inquiry from scratch or open one from "),i("router-link",{staticClass:"link",attrs:{to:"/inquiries"}},[e._v("Inquiries")])],1),i("modal",{attrs:{name:"close-warn",classes:"dialog",height:"auto"}},[i("div",{staticClass:"dialog-header"},[e._v(" Close tab "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" "),i("close-icon",{on:{click:function(t){return e.$modal.hide("close-warn")}}})],1),i("div",{staticClass:"dialog-body"},[e._v(" You have unsaved changes. Save changes in "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" before closing? ")]),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",on:{click:function(t){return e.closeTab(e.closingTabIndex)}}},[e._v(" Close without saving ")]),i("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("close-warn")}}},[e._v("Cancel")]),i("button",{staticClass:"primary",on:{click:function(t){return e.saveAndClose(e.closingTabIndex)}}},[e._v("Save and close")])])])],2)},ei=[],ti=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"tab-content-container"},[i("splitpanes",{staticClass:"query-results-splitter",attrs:{horizontal:"",before:{size:50,max:100},after:{size:50,max:100}},scopedSlots:e._u([{key:"left-pane",fn:function(){return[i("div",{staticClass:"above",attrs:{id:"above-"+e.tabIndex}})]},proxy:!0},{key:"right-pane",fn:function(){return[i("div",{ref:"bottomPane",staticClass:"bottomPane",attrs:{id:"bottom-"+e.tabIndex}})]},proxy:!0}])}),i("div",{staticClass:"hidden-part",attrs:{id:"hidden-"+e.tabIndex}}),i("teleport",{attrs:{to:"#"+e.layout.sqlEditor+"-"+e.tabIndex}},[i("sql-editor",{ref:"sqlEditor",attrs:{"is-getting-results":e.isGettingResults},on:{switchTo:function(t){return e.onSwitchView("sqlEditor",t)},run:e.execute},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("teleport",{attrs:{to:"#"+e.layout.table+"-"+e.tabIndex}},[i("run-result",{attrs:{result:e.result,"is-getting-results":e.isGettingResults,error:e.error,time:e.time},on:{switchTo:function(t){return e.onSwitchView("table",t)}}})],1),i("teleport",{attrs:{to:"#"+e.layout.dataView+"-"+e.tabIndex}},[i("data-view",{ref:"dataView",attrs:{"data-source":e.result,"init-options":e.initViewOptions,"init-mode":e.initViewType},on:{switchTo:function(t){return e.onSwitchView("dataView",t)},update:e.onDataViewUpdate}})],1)],1)},ii=[],ni=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"sql-editor-panel"},[i("div",{staticClass:"codemirror-container"},[i("codemirror",{ref:"cm",attrs:{options:e.cmOptions},on:{changes:e.onChange},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("side-tool-bar",{attrs:{panel:"sqlEditor"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{disabled:e.runDisabled,loading:e.isGettingResults,tooltip:"Run SQL query","tooltip-position":"top-left"},on:{click:function(t){return e.$emit("run")}}},[i("run-icon",{attrs:{disabled:e.runDisabled}})],1)],1)],1)},ai=[],ri=i("56b3"),si=i.n(ri),oi=(i("9b74"),i("991c"),i("2f62")),ci={tabs:[],currentTab:null,currentTabId:null,untitledLastIndex:0,predefinedInquiries:[],db:null},li=(i("a434"),{setDb:function(e,t){e.db&&e.db.shutDown(),e.db=t},updateTab:function(e,t){var i=t.index,a=t.name,r=t.id,s=t.query,o=t.viewType,c=t.viewOptions,l=t.isSaved,u=e.tabs[i],d=u.id;r&&e.currentTabId===d&&(e.currentTabId=r),r&&(u.id=r),a&&(u.name=a),s&&(u.query=s),o&&(u.viewType=o),c&&(u.viewOptions=c),void 0!==l&&(u.isSaved=l),l&&delete u.isPredefined,n["default"].set(e.tabs,i,u)},deleteTab:function(e,t){e.tabs[t].id===e.currentTabId&&(t0?e.currentTabId=e.tabs[t-1].id:(e.currentTabId=null,e.currentTab=null,e.untitledLastIndex=0)),e.tabs.splice(t,1)},setCurrentTabId:function(e,t){e.currentTabId=t},setCurrentTab:function(e,t){e.currentTab=t},updatePredefinedInquiries:function(e,t){e.predefinedInquiries=Array.isArray(t)?t:[t]}}),ui=i("e1bd"),di={addTab:function(e,t){return Object(u["a"])(regeneratorRuntime.mark((function i(){var n,a;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:return n=e.state,a=t?JSON.parse(JSON.stringify(t)):{},t&&t.id?a.isSaved=!0:(a.id=Object(ui["a"])(),a.name=null,a.tempName=n.untitledLastIndex?"Untitled ".concat(n.untitledLastIndex):"Untitled",a.viewType="chart",a.viewOptions=void 0,a.isSaved=!1),n.tabs.some((function(e){return e.id===a.id}))||(n.tabs.push(a),a.name||(n.untitledLastIndex+=1)),i.abrupt("return",a.id);case 5:case"end":return i.stop()}}),i)})))()}};n["default"].use(oi["a"]);var Mi=new oi["a"].Store({state:ci,mutations:li,actions:di});function gi(e,t){var i=e.getTokenAt(e.getCursor()).string.toUpperCase(),n=si.a.hint.sql(e,t);return 1===n.list.length&&n.list[0].text.toUpperCase()===i&&(n.list=[]),n}var pi={get tables(){var e={};return Mi.state.db.schema&&Mi.state.db.schema.forEach((function(t){e[t.name]=t.columns.map((function(e){return e.name}))})),e},get defaultTable(){var e=Mi.state.db.schema;return e&&1===e.length?e[0].name:null},completeSingle:!1,completeOnSingleClick:!0,alignWithWord:!1};function hi(e){si.a.showHint(e,gi,pi)}function Ii(e){var t=e.getTokenAt(e.getCursor()),i=t.string.slice(-1),n=t.type;"string"!==n&&i&&" "!==i&&";"!==i&&si.a.showHint(e,gi,pi)}var mi=i("8f94"),Ni=(i("a7be"),i("ffda"),i("d5db"),i("f6b6"),i("f4ba"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"side-tool-bar"},[i("icon-button",{attrs:{active:"sqlEditor"===e.panel,tooltip:"Switch panel to SQL editor","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","sqlEditor")}}},[i("sql-editor-icon")],1),i("icon-button",{attrs:{active:"table"===e.panel,tooltip:"Switch panel to result set","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","table")}}},[i("table-icon")],1),i("icon-button",{attrs:{active:"dataView"===e.panel,tooltip:"Switch panel to data view","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","dataView")}}},[i("data-view-icon")],1),e.$slots.default?i("div",{staticClass:"side-tool-bar-divider"}):e._e(),e._t("default")],2)}),fi=[],vi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["icon-btn",{active:e.active},{disabled:e.disabled}],on:{click:e.onClick,mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("div",{staticClass:"icon"},[e._t("default")],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"icon-in-progress"},[i("loading-indicator")],1),e.tooltip?i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")]):e._e()])},Di=[],ji={name:"SideBarButton",props:["active","disabled","tooltip","tooltipPosition","loading"],components:{LoadingIndicator:yt},mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},yi=ji,bi=(i("dd9c"),Object(s["a"])(yi,vi,Di,!1,null,"0c2b486e",null)),Ci=bi.exports,zi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z",fill:"#A2B1C6"}})])},Ti=[],wi={name:"TableIcon"},xi=wi,Oi=Object(s["a"])(xi,zi,Ti,!1,null,null,null),Ai=Oi.exports,Li=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"19",viewBox:"0 0 18 19",fill:"none"}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{d:"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white",transform:"translate(0 0.0134277)"}})])])])},ki=[],Ei={name:"SqlEditorIcon"},Si=Ei,Qi=Object(s["a"])(Si,Li,ki,!1,null,null,null),Ui=Qi.exports,Yi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z",fill:"#A2B1C6"}}),i("circle",{attrs:{cx:"5.50049",cy:"6.00339",r:"1.5",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z",fill:"#A2B1C6"}})])},Zi=[],Pi={name:"DataViewIcon"},_i=Pi,qi=Object(s["a"])(_i,Yi,Zi,!1,null,null,null),Vi=qi.exports,Ri={name:"SideToolBar",props:["panel"],components:{IconButton:Ci,SqlEditorIcon:Ui,DataViewIcon:Vi,TableIcon:Ai}},Bi=Ri,Gi=(i("f4e5"),Object(s["a"])(Bi,Ni,fi,!1,null,"3b6366bb",null)),Hi=Gi.exports,$i=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"12",height:"13",viewBox:"0 0 12 13",fill:"none"}},[i("path",{attrs:{d:"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z",fill:"#A2B1C6"}})])},Wi=[],Fi={name:"RunIcon"},Ji=Fi,Xi=Object(s["a"])(Ji,$i,Wi,!1,null,null,null),Ki=Xi.exports,en={name:"SqlEditor",props:["value","isGettingResults"],components:{codemirror:mi["codemirror"],SideToolBar:Hi,IconButton:Ci,RunIcon:Ki},data:function(){return{query:this.value,cmOptions:{tabSize:4,mode:"text/x-mysql",theme:"neo",lineNumbers:!0,line:!0,autoRefresh:!0,extraKeys:{"Ctrl-Space":hi}}}},computed:{runDisabled:function(){return!this.$store.state.db||!this.query||this.isGettingResults}},watch:{query:function(){this.$emit("input",this.query)}},methods:{onChange:wt.debounce(Ii,400),focus:function(){this.$refs.cm.codemirror.focus()}}},tn=en,nn=(i("16a3"),Object(s["a"])(tn,ni,ai,!1,null,"c84dd870",null)),an=nn.exports,rn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"data-view-panel"},[i("div",{staticClass:"data-view-panel-content"},[i(e.mode,{ref:"viewComponent",tag:"component",attrs:{"init-options":e.mode===e.initMode?e.initOptions:void 0,"data-sources":e.dataSource,"import-to-png-enabled":e.importToPngEnabled},on:{"update:importToPngEnabled":function(t){e.importToPngEnabled=t},"update:import-to-png-enabled":function(t){e.importToPngEnabled=t},loadingImageCompleted:function(t){e.loadingImage=!1},update:function(t){return e.$emit("update")}}})],1),i("side-tool-bar",{attrs:{panel:"dataView"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{active:"chart"===e.mode,tooltip:"Switch to chart","tooltip-position":"top-left"},on:{click:function(t){e.mode="chart"}}},[i("chart-icon")],1),i("icon-button",{attrs:{active:"pivot"===e.mode,tooltip:"Switch to pivot","tooltip-position":"top-left"},on:{click:function(t){e.mode="pivot"}}},[i("pivot-icon")],1),i("div",{staticClass:"side-tool-bar-divider"}),i("icon-button",{attrs:{disabled:!e.importToPngEnabled||e.loadingImage,loading:e.loadingImage,tooltip:"Save as PNG image","tooltip-position":"top-left"},on:{click:e.saveAsPng}},[i("png-icon")],1)],1)],1)},sn=[],on=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"chartContainer",staticClass:"chart-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources&&e.visible,expression:"!dataSources && visible"}],staticClass:"warning chart-warning"},[e._v(" There is no data to build a chart. Run your SQL query and make sure the result is not empty. ")]),i("PlotlyEditor",{ref:"plotlyEditor",staticClass:"chart",style:{height:e.dataSources?"100%":"calc(100% - 40px)"},attrs:{data:e.state.data,layout:e.state.layout,frames:e.state.frames,config:{editable:!0,displaylogo:!1,modeBarButtonsToRemove:["toImage"]},dataSources:e.dataSources,dataSourceOptions:e.dataSourceOptions,plotly:e.plotly,useResizeHandler:!0,debug:!0,advancedTraceTypeSelector:!0},on:{onUpdate:e.update,onRender:e.onRender}})],1)},cn=[],ln=i("030a"),un=i.n(ln),dn=(i("0848"),i("b1c6")),Mn=i.n(dn),gn=i("662f"),pn=i.n(gn);function hn(e){return e?Object.keys(e).map((function(e){return{value:e,label:e}})):[]}function In(e,t){var i=JSON.parse(JSON.stringify(e)),n={};for(var a in t)n[a]=[];return pn()(i.data,n),i}var mn={getOptionsFromDataSources:hn,getOptionsForSave:In},Nn={name:"Chart",props:["dataSources","initOptions","importToPngEnabled"],components:{PlotlyEditor:Mn.a},data:function(){return{plotly:un.a,state:this.initOptions||{data:[],layout:{},frames:[]},visible:!0,resizeObserver:null}},computed:{dataSourceOptions:function(){return mn.getOptionsFromDataSources(this.dataSources)}},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.chartContainer)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.chartContainer)},watch:{dataSources:function(){pn()(this.state.data,this.dataSources)}},methods:{handleResize:function(){var e=this;this.visible=!1,this.$nextTick((function(){e.visible=!0}))},onRender:function(e,t,i){},update:function(e,t,i){this.state={data:e,layout:t,frames:i},this.$emit("update")},getOptionsForSave:function(){return mn.getOptionsForSave(this.state,this.dataSources)},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$refs.plotlyEditor.$el.querySelector(".js-plotly-plot"),t.next=3,un.a.toImage(i,{format:"png",width:null,height:null});case 3:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"chart");case 6:case"end":return t.stop()}}),t)})))()}}},fn=Nn,vn=(i("807c"),Object(s["a"])(fn,on,cn,!1,null,"31be4117",null)),Dn=vn.exports,jn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources,expression:"!dataSources"}],staticClass:"warning pivot-warning"},[e._v(" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. ")]),i("pivot-ui",{attrs:{"key-names":e.columns},on:{update:function(t){return e.$emit("update")},loadingCustomChartImageCompleted:function(t){return e.$emit("loadingImageCompleted")}},model:{value:e.pivotOptions,callback:function(t){e.pivotOptions=t},expression:"pivotOptions"}}),i("div",{ref:"pivotOutput",staticClass:"pivot-output"})],1)},yn=[],bn=i("c0e9"),Cn=i.n(bn),zn=i("1157"),Tn=i.n(zn),wn=(i("9751"),i("ccb1"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-ui"},[i("div",{class:{collapsed:e.collapsed}},[i("div",{staticClass:"row"},[i("label",[e._v("Columns")]),i("multiselect",{staticClass:"sqliteviz-select cols",attrs:{options:e.colsToSelect,disabled:0===e.colsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.colsToSelect.length,"open-direction":"bottom",placeholder:""},model:{value:e.cols,callback:function(t){e.cols=t},expression:"cols"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose columns")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"col"},model:{value:e.colOrder,callback:function(t){e.colOrder=t},expression:"colOrder"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("Rows")]),i("multiselect",{staticClass:"sqliteviz-select rows",attrs:{options:e.rowsToSelect,disabled:0===e.rowsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.rowsToSelect.length,"option-height":29,"open-direction":"bottom",placeholder:""},model:{value:e.rows,callback:function(t){e.rows=t},expression:"rows"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose rows")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"row"},model:{value:e.rowOrder,callback:function(t){e.rowOrder=t},expression:"rowOrder"}})],1),i("div",{staticClass:"row aggregator"},[i("label",[e._v("Aggregator")]),i("multiselect",{staticClass:"sqliteviz-select short aggregator",attrs:{options:e.aggregators,label:"name","track-by":"name","close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a function"},model:{value:e.aggregator,callback:function(t){e.aggregator=t},expression:"aggregator"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>0,expression:"valCount > 0"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose an argument"},model:{value:e.val1,callback:function(t){e.val1=t},expression:"val1"}}),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>1,expression:"valCount > 1"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a second argument"},model:{value:e.val2,callback:function(t){e.val2=t},expression:"val2"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("View")]),i("multiselect",{staticClass:"sqliteviz-select short renderer",attrs:{options:e.renderers,label:"name","track-by":"name","close-on-select":!0,"allow-empty":!1,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a view"},model:{value:e.renderer,callback:function(t){e.renderer=t},expression:"renderer"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2)],1)]),i("span",{staticClass:"switcher",on:{click:function(t){e.collapsed=!e.collapsed}}},[e._v(" "+e._s(e.collapsed?"Show pivot settings":"Hide pivot settings")+" ")])])}),xn=[],On=(i("2532"),i("8e5f")),An=i.n(On),Ln=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["pivot-sort-btn",e.direction],on:{click:e.changeSorting}},[e._v(" "+e._s(e.value.includes("key")?"key":"value")+" "),i("sort-icon",{staticClass:"sort-icon",attrs:{horizontal:"col"===e.direction,asc:e.value.includes("a_to_z")}})],1)},kn=[],En=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["sort-icon",{horizontal:e.horizontal},{asc:e.asc}],attrs:{width:"6",height:"12",viewBox:"0 0 6 12",fill:"none"}},[i("path",{attrs:{d:"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z",fill:"#506784"}}),i("path",{attrs:{d:"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z",fill:"#506784"}})])},Sn=[],Qn={name:"SortIcon",props:{horizontal:{type:Boolean,required:!1,default:!1},asc:{type:Boolean,required:!1,default:!0}}},Un=Qn,Yn=(i("4c94"),Object(s["a"])(Un,En,Sn,!1,null,"28a29e7a",null)),Zn=Yn.exports,Pn={name:"PivotSortBtn",props:["direction","value"],components:{SortIcon:Zn},methods:{changeSorting:function(){"key_a_to_z"===this.value?this.$emit("input","value_a_to_z"):"value_a_to_z"===this.value?this.$emit("input","value_z_to_a"):this.$emit("input","key_a_to_z")}}},_n=Pn,qn=(i("0f34"),Object(s["a"])(_n,Ln,kn,!1,null,"e3801f08",null)),Vn=qn.exports,Rn=(i("8e51"),i("3c3e"),["Count","Count as Fraction of Total","Count as Fraction of Rows","Count as Fraction of Columns"]),Bn=["Sum over Sum","80% Upper Bound","80% Lower Bound"];function Gn(e){var t=e.getRowKeys(),i=e.getColKeys(),n={"Column keys":i.map((function(e){return e.join("-")})),"Row keys":t.map((function(e){return e.join("-")}))},a={},r={},s=e.rowAttrs.join("-"),o=e.colAttrs.join("-");return i.forEach((function(i){var n=o+":"+i.join("-");r[n]=[],t.forEach((function(t){var o=e.getAggregator(t,i).value();r[n].push(o);var c=s+":"+t.join("-");a[c]||(a[c]=[]),a[c].push(o)}))})),Object.assign(n,r,a)}function Hn(e,t){return t.customChartComponent.dataSources=Gn(e),t.customChartComponent.$mount(),Tn()(t.customChartComponent.$el)}Tn.a.extend(Tn.a.pivotUtilities.renderers,Tn.a.pivotUtilities.export_renderers,Tn.a.pivotUtilities.plotly_renderers,{"Custom chart":Hn});var $n=Object.keys(Tn.a.pivotUtilities.renderers).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.renderers[e]}})),Wn=Object.keys(Tn.a.pivotUtilities.aggregators).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.aggregators[e]}})),Fn=n["default"].extend(Dn),Jn={name:"pivotUi",props:["keyNames","value"],components:{Multiselect:An.a,PivotSortBtn:Vn},data:function(){var e=this.value&&this.value.aggregatorName||"Count",t=this.value&&this.value.rendererName||"Table";return{collapsed:!1,renderer:{name:t,fun:Tn.a.pivotUtilities.renderers[t]},aggregator:{name:e,fun:Tn.a.pivotUtilities.aggregators[e]},rows:this.value&&this.value.rows||[],cols:this.value&&this.value.cols||[],val1:this.value&&this.value.vals&&this.value.vals[0]||"",val2:this.value&&this.value.vals&&this.value.vals[1]||"",colOrder:this.value&&this.value.colOrder||"key_a_to_z",rowOrder:this.value&&this.value.rowOrder||"key_a_to_z",customChartComponent:this.value&&this.value.rendererOptions&&this.value.rendererOptions.customChartComponent||new Fn}},computed:{valCount:function(){return Rn.includes(this.aggregator.name)?0:Bn.includes(this.aggregator.name)?2:1},renderers:function(){return $n},aggregators:function(){return Wn},rowsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.cols.includes(t)}))},colsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.rows.includes(t)}))}},watch:{renderer:function(){this.returnValue()},aggregator:function(){this.returnValue()},rows:function(){this.returnValue()},cols:function(){this.returnValue()},val1:function(){this.returnValue()},val2:function(){this.returnValue()},colOrder:function(){this.returnValue()},rowOrder:function(){this.returnValue()}},created:function(){var e=this;this.customChartComponent.$on("update",(function(){e.$emit("update")})),this.customChartComponent.$on("loadingImageCompleted",(function(t){e.$emit("loadingCustomChartImageCompleted")}))},methods:{returnValue:function(){for(var e=[],t=1;t<=this.valCount;t++)e.push(this["val".concat(t)]);this.$emit("update"),this.$emit("input",{rows:this.rows,cols:this.cols,colOrder:this.colOrder,rowOrder:this.rowOrder,aggregator:this.aggregator.fun(e),aggregatorName:this.aggregator.name,renderer:this.renderer.fun,rendererName:this.renderer.name,rendererOptions:"Custom chart"!==this.renderer.name?void 0:{customChartComponent:this.customChartComponent},vals:e})}}},Xn=Jn,Kn=(i("81e6"),Object(s["a"])(Xn,wn,xn,!1,null,"6d818ae0",null)),ea=Kn.exports,ta=n["default"].extend(Dn),ia={name:"pivot",props:["dataSources","initOptions","importToPngEnabled"],components:{PivotUi:ea},data:function(){return{resizeObserver:null,pivotOptions:this.initOptions?{rows:this.initOptions.rows,cols:this.initOptions.cols,colOrder:this.initOptions.colOrder,rowOrder:this.initOptions.rowOrder,aggregatorName:this.initOptions.aggregatorName,aggregator:Tn.a.pivotUtilities.aggregators[this.initOptions.aggregatorName](this.initOptions.vals),vals:this.initOptions.vals,rendererName:this.initOptions.rendererName,renderer:Tn.a.pivotUtilities.renderers[this.initOptions.rendererName],rendererOptions:this.initOptions.rendererOptions?{customChartComponent:new ta({propsData:{initOptions:this.initOptions.rendererOptions.customChartOptions}})}:void 0}:{rows:[],cols:[],colOrder:"key_a_to_z",rowOrder:"key_a_to_z",aggregatorName:"Count",aggregator:Tn.a.pivotUtilities.aggregators.Count(),vals:[],rendererName:"Table",renderer:Tn.a.pivotUtilities.renderers.Table,rendererOptions:void 0}}},computed:{columns:function(){return Object.keys(this.dataSources||{})}},watch:{dataSources:function(){this.show()},"pivotOptions.rendererName":{immediate:!0,handler:function(){this.$emit("update:importToPngEnabled","TSV Export"!==this.pivotOptions.rendererName)}},pivotOptions:function(){this.show()}},mounted:function(){this.show(),this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.pivotOutput)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.pivotOutput)},methods:{handleResize:function(){this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},show:function(){var e=Object(I["a"])({},this.pivotOptions);this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&(e.rendererOptions={plotly:{autosize:!0,width:null,height:null},plotlyConfig:{displaylogo:!1,responsive:!0,modeBarButtonsToRemove:["toImage"]}}),Tn()(this.$refs.pivotOutput).pivot(function(e){for(var t=this,i=this.dataSources?this.dataSources[this.columns[0]].length:0,n=function(i){var n={};t.columns.forEach((function(e){n[e]=t.dataSources[e][i-1]})),e(n)},a=1;a<=i;a++)n(a)}.bind(this),e),this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},getOptionsForSave:function(){var e=Object(I["a"])({},this.pivotOptions);if(e.rendererOptions){var t=this.pivotOptions.rendererOptions.customChartComponent;e.rendererOptions={customChartOptions:t.getOptionsForSave()}}return e},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if("Custom chart"!==e.pivotOptions.rendererName){t.next=4;break}e.pivotOptions.rendererOptions.customChartComponent.saveAsPng(),t.next=19;break;case 4:if(!(e.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers)){t.next=13;break}return i=e.$refs.pivotOutput.querySelector(".js-plotly-plot"),t.next=8,un.a.toImage(i,{format:"png",width:null,height:null});case 8:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"pivot"),t.next=19;break;case 13:return a=e.$refs.pivotOutput.querySelector(".pvtTable"),t.next=16,Cn()(a);case 16:r=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(r.toDataURL("image/png"),"pivot","image/png");case 19:case"end":return t.stop()}}),t)})))()}}},na=ia,aa=(i("d7ec"),Object(s["a"])(na,jn,yn,!1,null,"ca17e020",null)),ra=aa.exports,sa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.41943 16V10H10.4194V16H8.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.41943 16L2.41943 10H4.41943V16H2.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.4194 16V7H13.4194V16H11.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.4194 16V8H16.4194V16H14.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.41943 12V16H5.41943V12H7.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z",fill:"#A2B1C6"}})])},oa=[],ca={name:"ChartIcon"},la=ca,ua=Object(s["a"])(la,sa,oa,!1,null,null,null),da=ua.exports,Ma=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M6.41943 0H18.4194V4H6.41943V0Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 6H4.41943V18H0.419434V6Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 0H4.41943V4H0.419434V0Z",fill:"#A2B1C6"}})])},ga=[],pa={name:"PivotIcon"},ha=pa,Ia=Object(s["a"])(ha,Ma,ga,!1,null,null,null),ma=Ia.exports,Na=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{d:"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z",fill:"#A2B1C6"}})])},fa=[],va={name:"PngIcon"},Da=va,ja=Object(s["a"])(Da,Na,fa,!1,null,null,null),ya=ja.exports,ba={name:"DataView",props:["dataSource","initOptions","initMode"],components:{Chart:Dn,Pivot:ra,SideToolBar:Hi,IconButton:Ci,ChartIcon:da,PivotIcon:ma,PngIcon:ya},data:function(){return{mode:this.initMode||"chart",importToPngEnabled:!0,loadingImage:!1}},watch:{mode:function(){this.$emit("update"),this.importToPngEnabled=!0}},methods:{saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.loadingImage=!0,setTimeout((function(){e.$refs.viewComponent.saveAsPng()}),0);case 2:case"end":return t.stop()}}),t)})))()},getOptionsForSave:function(){return this.$refs.viewComponent.getOptionsForSave()}}},Ca=ba,za=(i("be12"),Object(s["a"])(Ca,rn,sn,!1,null,"513fdbc5",null)),Ta=za.exports,wa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"runResultPanel",staticClass:"run-result-panel"},[i("div",{staticClass:"run-result-panel-content"},[i("div",{directives:[{name:"show",rawName:"v-show",value:null===e.result&&!e.isGettingResults&&!e.error,expression:"result === null && !isGettingResults && !error"}],staticClass:"table-preview result-before"},[e._v(" Run your query and get results here ")]),e.isGettingResults?i("div",{staticClass:"table-preview result-in-progress"},[i("loading-indicator",{attrs:{size:30}}),e._v(" Fetching results... ")],1):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:void 0===e.result&&!e.isGettingResults&&!e.error,expression:"result === undefined && !isGettingResults && !error"}],staticClass:"table-preview result-empty"},[e._v(" No rows retrieved according to your query ")]),e.error?i("logs",{attrs:{messages:[e.error]}}):e._e(),e.result?i("sql-table",{staticClass:"straight",attrs:{"data-set":e.result,time:e.time,pageSize:e.pageSize}}):e._e()],1),i("side-tool-bar",{attrs:{panel:"table"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}})],1)},xa=[],Oa={name:"RunResult",props:["result","isGettingResults","error","time"],data:function(){return{resizeObserver:null,pageSize:20}},components:{SqlTable:ht,LoadingIndicator:yt,Logs:Tt,SideToolBar:Hi},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.runResultPanel),this.calculatePageSize()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.runResultPanel)},methods:{handleResize:function(){this.calculatePageSize()},calculatePageSize:function(){var e=this.$refs.runResultPanel,t=e.offsetHeight-27-5-35;this.pageSize=Math.max(Math.floor(t/35),20)}}},Aa=Oa,La=(i("cd48"),Object(s["a"])(Aa,wa,xa,!1,null,"73e5054b",null)),ka=La.exports,Ea=i("b0cc"),Sa={name:"Tab",props:["id","initName","initQuery","initViewOptions","tabIndex","isPredefined","initViewType"],components:{SqlEditor:an,DataView:Ta,RunResult:ka,Splitpanes:j,Teleport:Ea["a"]},data:function(){return{query:this.initQuery,result:null,isGettingResults:!1,error:null,time:0,layout:{sqlEditor:"above",table:"bottom",dataView:"hidden"}}},computed:{isActive:function(){return this.id===this.$store.state.currentTabId}},watch:{isActive:{immediate:!0,handler:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(!e.isActive){t.next=5;break}return e.$store.commit("setCurrentTab",e),t.next=4,e.$nextTick();case 4:e.$refs.sqlEditor.focus();case 5:case"end":return t.stop()}}),t)})))()}},query:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})}},methods:{onSwitchView:function(e,t){var i=this.layout[e];this.layout[e]=this.layout[t],this.layout[t]=i},onDataViewUpdate:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})},execute:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.isGettingResults=!0,e.result=null,e.error=null,i=e.$store.state,t.prev=4,n=new Date,t.next=8,i.db.execute(e.query+";");case 8:e.result=t.sent,e.time=wt.getPeriod(n,new Date),t.next=15;break;case 12:t.prev=12,t.t0=t["catch"](4),e.error={type:"error",message:t.t0};case 15:i.db.refreshSchema(),e.isGettingResults=!1;case 17:case"end":return t.stop()}}),t,null,[[4,12]])})))()}}},Qa=Sa,Ua=(i("2a6d"),Object(s["a"])(Qa,ti,ii,!1,null,"24244834",null)),Ya=Ua.exports,Za={components:{Tab:Ya,CloseIcon:Oe},data:function(){return{closingTabIndex:null}},computed:{tabs:function(){return this.$store.state.tabs},selectedIndex:function(){return this.$store.state.currentTabId}},created:function(){window.addEventListener("beforeunload",this.leavingSqliteviz)},methods:{leavingSqliteviz:function(e){this.tabs.some((function(e){return!e.isSaved}))&&(e.preventDefault(),e.returnValue="")},selectTab:function(e){this.$store.commit("setCurrentTabId",e)},beforeCloseTab:function(e){this.closingTabIndex=e,this.tabs[e].isSaved?this.closeTab(e):this.$modal.show("close-warn")},closeTab:function(e){this.$modal.hide("close-warn"),this.closingTabIndex=null,this.$store.commit("deleteTab",e)},saveAndClose:function(e){var t=this;this.$root.$on("inquirySaved",(function(){t.closeTab(e),t.$root.$off("inquirySaved")})),this.selectTab(this.tabs[e].id),this.$modal.hide("close-warn"),this.$nextTick((function(){t.$root.$emit("saveInquiry")}))}}},Pa=Za,_a=(i("64b6"),Object(s["a"])(Pa,Kt,ei,!1,null,null,null)),qa=_a.exports,Va={name:"Workspace",components:{Schema:Xt,Splitpanes:j,Tabs:qa},beforeCreate:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$store.state.db.schema,i&&0!==i.length){t.next=7;break}return n=["/*"," * Your database is empty. In order to start building charts"," * you should create a table and insert data into it."," */","CREATE TABLE house","("," name TEXT,"," points INTEGER",");","INSERT INTO house VALUES","('Gryffindor', 100),","('Hufflepuff', 90),","('Ravenclaw', 95),","('Slytherin', 80);"].join("\n"),t.next=5,e.$store.dispatch("addTab",{query:n});case 5:a=t.sent,e.$store.commit("setCurrentTabId",a);case 7:case"end":return t.stop()}}),t)})))()}},Ra=Va,Ba=(i("2a3d"),Object(s["a"])(Ra,M,g,!1,null,"de063d86",null)),Ga=Ba.exports,Ha=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[0===e.showedInquiries.length?n("div",{attrs:{id:"start-guide"}},[e._v(" You don't have saved inquiries so far. "),n("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" the one from scratch or "),n("span",{staticClass:"link",on:{click:e.importInquiries}},[e._v("import")]),e._v(" from a file. ")]):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showedInquiries.length>0,expression:"showedInquiries.length > 0"}],ref:"my-inquiries-content",attrs:{id:"my-inquiries-content"}},[n("div",{attrs:{id:"my-inquiries-toolbar"}},[n("div",{attrs:{id:"toolbar-buttons"}},[n("button",{staticClass:"toolbar",attrs:{id:"toolbar-btns-import"},on:{click:e.importInquiries}},[e._v(" Import ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>0,expression:"selectedInquiriesCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-export"},on:{click:function(t){return e.exportSelectedInquiries()}}},[e._v(" Export ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedNotPredefinedCount>0,expression:"selectedNotPredefinedCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-delete"},on:{click:function(t){return e.showDeleteDialog(e.selectedInquiriesIds)}}},[e._v(" Delete ")])]),n("div",{attrs:{id:"toolbar-search"}},[n("text-field",{attrs:{placeholder:"Search inquiry by name",width:"300px"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1)]),n("div",{staticClass:"rounded-bg"},[n("div",{staticClass:"header-container"},[n("div",[n("div",{ref:"name-th",staticClass:"fixed-header"},[n("check-box",{ref:"mainCheckBox",attrs:{theme:"light"},on:{click:e.toggleSelectAll}}),n("div",{staticClass:"name-th"},[e._v("Name")])],1),n("div",{staticClass:"fixed-header"},[e._v(" Created at ")])])]),n("div",{staticClass:"table-container",style:{"max-height":e.maxTableHeight+"px"}},[n("table",{ref:"table",staticClass:"sqliteviz-table"},[n("tbody",e._l(e.showedInquiries,(function(t,i){return n("tr",{key:t.id,on:{click:function(t){return e.openInquiry(i)}}},[n("td",{ref:"name-td",refInFor:!0},[n("div",{staticClass:"cell-data"},[n("check-box",{ref:"rowCheckBox",refInFor:!0,attrs:{init:e.selectAll||e.selectedInquiriesIds.has(t.id)},on:{click:function(i){return e.toggleRow(i,t.id)}}}),n("div",{staticClass:"name"},[e._v(e._s(t.name))]),t.isPredefined?n("div",{staticClass:"badge",on:{mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[e._v(" Predefined "),n("span",{ref:"tooltip",refInFor:!0,staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. ")])]):e._e()],1)]),n("td",[n("div",{staticClass:"second-column"},[n("div",{staticClass:"date-container"},[e._v(e._s(e._f("date")(t.createdAt)))]),n("div",{staticClass:"icons-container"},[t.isPredefined?e._e():n("rename-icon",{on:{click:function(i){return e.showRenameDialog(t.id)}}}),n("copy-icon",{on:{click:function(t){return e.duplicateInquiry(i)}}}),n("export-icon",{attrs:{tooltip:"Export inquiry to file","tooltip-position":"top-left"},on:{click:function(i){return e.exportToFile([t],t.name+".json")}}}),t.isPredefined?e._e():n("delete-icon",{on:{click:function(i){e.showDeleteDialog((new Set).add(t.id))}}})],1)])])])})),0)])])])]),n("modal",{attrs:{name:"rename",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Rename inquiry "),n("close-icon",{on:{click:function(t){return e.$modal.hide("rename")}}})],1),n("div",{staticClass:"dialog-body"},[n("text-field",{attrs:{label:"New inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.newName,callback:function(t){e.newName=t},expression:"newName"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("rename")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.renameInquiry}},[e._v("Rename")])])]),n("modal",{attrs:{name:"delete",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Delete "+e._s(e.deleteGroup?"inquiries":"inquiry")+" "),n("close-icon",{on:{click:function(t){return e.$modal.hide("delete")}}})],1),n("div",{staticClass:"dialog-body"},[e._v(" "+e._s(e.deleteDialogMsg)+" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>e.selectedNotPredefinedCount,expression:"selectedInquiriesCount > selectedNotPredefinedCount"}],attrs:{id:"note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries you've selected won't be deleted ")])]),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("delete")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.deleteInquiry}},[e._v("Delete")])])])],1)},$a=[],Wa=(i("6062"),i("c740"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Rename inquiry ")])])}),Fa=[],Ja={name:"RenameIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Xa=Ja,Ka=(i("b5fd"),Object(s["a"])(Xa,Wa,Fa,!1,null,"075cb800",null)),er=Ka.exports,tr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Duplicate inquiry ")])])},ir=[],nr={name:"CopyIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ar=nr,rr=(i("cba9"),Object(s["a"])(ar,tr,ir,!1,null,"3a61cb73",null)),sr=rr.exports,or=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,"top-left")},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Delete inquiry ")])])},cr=[],lr={name:"DeleteIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ur=lr,dr=(i("7e99"),Object(s["a"])(ur,or,cr,!1,null,"581e8819",null)),Mr=dr.exports,gr={_migrate:function(e,t){if(1===e)return t.forEach((function(e){e.viewType="chart",e.viewOptions=e.chart,delete e.chart})),t}},pr=gr._migrate,hr={version:2,getStoredInquiries:function(){var e=JSON.parse(localStorage.getItem("myInquiries"));if(!e){var t=localStorage.getItem("myQueries");return t?(e=pr(1,JSON.parse(t)),this.updateStorage(e),e):[]}return e&&e.inquiries||[]},duplicateInquiry:function(e){var t=JSON.parse(JSON.stringify(e));return t.name=t.name+" Copy",t.id=Object(ui["a"])(),t.createdAt=new Date,delete t.isPredefined,t},isTabNeedName:function(e){var t=!e.initName;return e.isPredefined||t},save:function(e,t){var i={id:e.isPredefined?Object(ui["a"])():e.id,query:e.query,viewType:e.$refs.dataView.mode,viewOptions:e.$refs.dataView.getOptionsForSave(),name:t||e.initName},n=this.getStoredInquiries();if(t)i.createdAt=new Date;else{var a=n.findIndex((function(t){return t.id===e.id}));i.createdAt=n[a].createdAt}return t?n.push(i):n[a]=i,this.updateStorage(n),i},updateStorage:function(e){localStorage.setItem("myInquiries",JSON.stringify({version:this.version,inquiries:e}))},serialiseInquiries:function(e){var t=JSON.parse(JSON.stringify(e));return t.forEach((function(e){return delete e.isPredefined})),JSON.stringify({version:this.version,inquiries:t},null,4)},deserialiseInquiries:function(e){var t=this,i=JSON.parse(e),n=[];return i.version?n=i.inquiries||[]:(n=Array.isArray(i)?i:[i],n=pr(1,n)),n.forEach((function(e){var i=t.getStoredInquiries().map((function(e){return e.id}));i.includes(e.id)&&(e.id=Object(ui["a"])())})),n},importInquiries:function(){var e=this;return C.importFile().then((function(t){return e.deserialiseInquiries(t)}))},readPredefinedInquiries:function(){return Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,C.readFile("./inquiries.json");case 2:return t=e.sent,e.next=5,t.json();case 5:if(i=e.sent,i.version){e.next=10;break}return e.abrupt("return",i.length>0?pr(1,i):[]);case 10:return e.abrupt("return",i.inquiries);case 11:case"end":return e.stop()}}),e)})))()}},Ir={name:"Inquiries",components:{RenameIcon:er,CopyIcon:sr,ExportIcon:qt,DeleteIcon:Mr,CloseIcon:Oe,TextField:F,CheckBox:tt},mixins:[q],data:function(){return{inquiries:[],filter:null,newName:null,processedInquiryId:null,errorMsg:null,selectedInquiriesIds:new Set,selectedInquiriesCount:0,selectedNotPredefinedCount:0,selectAll:!1,deleteGroup:!1,resizeObserver:null,maxTableHeight:0}},computed:{predefinedInquiries:function(){return this.$store.state.predefinedInquiries.map((function(e){return e.isPredefined=!0,e}))},predefinedInquiriesIds:function(){return new Set(this.predefinedInquiries.map((function(e){return e.id})))},showedInquiries:function(){var e=this,t=this.allInquiries;return this.filter&&(t=t.filter((function(t){return t.name.toUpperCase().indexOf(e.filter.toUpperCase())>=0}))),t},allInquiries:function(){return this.predefinedInquiries.concat(this.inquiries)},processedInquiryIndex:function(){var e=this;return this.inquiries.findIndex((function(t){return t.id===e.processedInquiryId}))},deleteDialogMsg:function(){if(!this.deleteGroup&&(null===this.processedInquiryIndex||this.processedInquiryIndex<0||this.processedInquiryIndex>this.inquiries.length))return"";var e=this.deleteGroup?"".concat(this.selectedNotPredefinedCount," ").concat(this.selectedNotPredefinedCount>1?"inquiries":"inquiry"):'"'.concat(this.inquiries[this.processedInquiryIndex].name,'"');return"Are you sure you want to delete ".concat(e,"?")}},created:function(){var e=this;hr.readPredefinedInquiries().then((function(t){e.$store.commit("updatePredefinedInquiries",t)})).catch(console.error).finally((function(){e.inquiries=hr.getStoredInquiries()}))},mounted:function(){this.resizeObserver=new ResizeObserver(this.calcMaxTableHeight),this.resizeObserver.observe(this.$refs["my-inquiries-content"]),this.tableResizeObserver=new ResizeObserver(this.calcNameWidth),this.tableResizeObserver.observe(this.$refs.table),this.calcNameWidth(),this.calcMaxTableHeight()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs["my-inquiries-content"]),this.tableResizeObserver.unobserve(this.$refs.table)},filters:{date:function(e){if(!e)return"";var t={year:"numeric",month:"long",day:"numeric"},i={hour12:!1,hour:"2-digit",minute:"2-digit"};return new Date(e).toLocaleDateString("en-GB",t)+" "+new Date(e).toLocaleTimeString("en-GB",i)}},methods:{calcNameWidth:function(){var e=this.$refs["name-td"]?this.$refs["name-td"][0].getBoundingClientRect().width:0;this.$refs["name-th"].style="width: ".concat(e,"px")},calcMaxTableHeight:function(){var e=this.$refs["my-inquiries-content"].offsetHeight-200;this.maxTableHeight=e-e%40+1},openInquiry:function(e){var t=this,i=this.showedInquiries[e];this.$store.dispatch("addTab",i).then((function(e){t.$store.commit("setCurrentTabId",e),t.$router.push("/workspace")}))},showRenameDialog:function(e){this.errorMsg=null,this.processedInquiryId=e,this.newName=this.inquiries[this.processedInquiryIndex].name,this.$modal.show("rename")},renameInquiry:function(){if(this.newName){var e=this.inquiries[this.processedInquiryIndex];e.name=this.newName,this.$set(this.inquiries,this.processedInquiryIndex,e),hr.updateStorage(this.inquiries);var t=this.findTabIndex(e.id);t>=0&&this.$store.commit("updateTab",{index:t,name:this.newName,id:e.id}),this.$modal.hide("rename")}else this.errorMsg="Inquiry name can't be empty"},duplicateInquiry:function(e){var t=hr.duplicateInquiry(this.showedInquiries[e]);this.selectAll&&(this.selectedInquiriesIds.add(t.id),this.selectedInquiriesCount=this.selectedInquiriesIds.size),this.inquiries.push(t),hr.updateStorage(this.inquiries)},showDeleteDialog:function(e){this.deleteGroup=e.size>1,this.deleteGroup||(this.processedInquiryId=e.values().next().value),this.$modal.show("delete")},deleteInquiry:function(){var e=this;if(this.$modal.hide("delete"),this.deleteGroup){this.inquiries=this.selectAll?[]:this.inquiries.filter((function(t){return!e.selectedInquiriesIds.has(t.id)}));for(var t=this.$store.state.tabs,i=t.length-1;i>=0;i--)this.selectedInquiriesIds.has(t[i].id)&&this.$store.commit("deleteTab",i);this.selectedInquiriesIds.clear()}else{this.inquiries.splice(this.processedInquiryIndex,1);var n=this.findTabIndex(this.processedInquiryId);n>=0&&this.$store.commit("deleteTab",n),this.selectedInquiriesIds.has(this.processedInquiryId)&&this.selectedInquiriesIds.delete(this.processedInquiryId)}this.selectedInquiriesCount=this.selectedInquiriesIds.size,hr.updateStorage(this.inquiries)},findTabIndex:function(e){return this.$store.state.tabs.findIndex((function(t){return t.id===e}))},exportToFile:function(e,t){var i=hr.serialiseInquiries(e);C.exportToFile(i,t)},exportSelectedInquiries:function(){var e=this,t=this.selectAll?this.allInquiries:this.allInquiries.filter((function(t){return e.selectedInquiriesIds.has(t.id)}));this.exportToFile(t,"My sqliteviz inquiries.json")},importInquiries:function(){var e=this;hr.importInquiries().then((function(t){e.selectAll&&(t.forEach((function(t){e.selectedInquiriesIds.add(t.id)})),e.selectedInquiriesCount=e.selectedInquiriesIds.size),e.inquiries=e.inquiries.concat(t),hr.updateStorage(e.inquiries)}))},toggleSelectAll:function(e){this.selectAll=e,this.$refs.rowCheckBox.forEach((function(t){t.checked=e})),this.selectedInquiriesIds=e?new Set(this.allInquiries.map((function(e){return e.id}))):new Set,this.selectedInquiriesCount=this.selectedInquiriesIds.size,this.selectedNotPredefinedCount=e?this.inquiries.length:0},toggleRow:function(e,t){var i=this.predefinedInquiriesIds.has(t);e?(this.selectedInquiriesIds.add(t),i||(this.selectedNotPredefinedCount+=1)):(this.selectedInquiriesIds.size===this.allInquiries.length&&(this.$refs.mainCheckBox.checked=!1,this.selectAll=!1),this.selectedInquiriesIds.delete(t),i||(this.selectedNotPredefinedCount-=1)),this.selectedInquiriesCount=this.selectedInquiriesIds.size}}},mr=Ir,Nr=(i("f8c1"),Object(s["a"])(mr,Ha,$a,!1,null,"2b039cec",null)),fr=Nr.exports,vr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"dbloader-container"}},[i("db-uploader",{attrs:{type:"illustrated"}}),i("div",{attrs:{id:"note"}},[e._v(" Sqliteviz is fully client-side. Your database never leaves your computer. ")]),i("button",{staticClass:"secondary",attrs:{id:"skip"},on:{click:function(t){return e.$router.push("/workspace")}}},[e._v(" Create empty database ")])],1)},Dr=[],jr={name:"Welcome",components:{DbUploader:Qt}},yr=jr,br=(i("f2b5"),Object(s["a"])(yr,vr,Dr,!1,null,"0da5ae79",null)),Cr=br.exports,zr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("main-menu"),i("keep-alive",{attrs:{include:"Workspace"}},[i("router-view",{attrs:{id:"main-view"}})],1)],1)},Tr=[],wr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",[n("div",[n("router-link",{attrs:{to:"/workspace"}},[e._v("Workspace")]),n("router-link",{attrs:{to:"/inquiries"}},[e._v("Inquiries")]),n("a",{attrs:{href:"https://github.com/lana-k/sqliteviz/wiki",target:"_blank"}},[e._v("Help")])],1),n("div",{attrs:{id:"nav-buttons"}},[n("button",{directives:[{name:"show",rawName:"v-show",value:e.currentInquiry&&"/workspace"===e.$route.path,expression:"currentInquiry && $route.path === '/workspace'"}],staticClass:"primary",attrs:{id:"save-btn",disabled:e.isSaved},on:{click:e.checkInquiryBeforeSave}},[e._v(" Save ")]),n("button",{staticClass:"primary",attrs:{id:"create-btn"},on:{click:e.createNewInquiry}},[e._v(" Create ")]),n("app-diagnostic-info")],1),n("modal",{attrs:{name:"save",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Save inquiry "),n("close-icon",{on:{click:e.cancelSave}})],1),n("div",{staticClass:"dialog-body"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isPredefined,expression:"isPredefined"}],attrs:{id:"save-note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. ")]),n("text-field",{attrs:{label:"Inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:e.cancelSave}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.saveInquiry}},[e._v("Save")])])])],1)},xr=[],Or=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app-info-container"}},[n("img",{attrs:{id:"app-info-icon",src:i("db39")},on:{click:function(t){return e.$modal.show("app-info")}}}),n("modal",{attrs:{name:"app-info",classes:"dialog",height:"auto",width:"400px"}},[n("div",{staticClass:"dialog-header"},[e._v(" App info "),n("close-icon",{on:{click:function(t){return e.$modal.hide("app-info")}}})],1),n("div",{staticClass:"dialog-body"},e._l(e.info,(function(t,i){return n("div",{key:i,staticClass:"info-item"},[e._v(" "+e._s(t.name)+" "),n("div",{staticClass:"divider"}),n("div",{staticClass:"options"},e._l(t.info,(function(t,i){return n("div",{key:i},[e._v(" "+e._s(t)+" ")])})),0)])})),0)])],1)},Ar=[],Lr={name:"AppDiagnosticInfo",components:{CloseIcon:Oe},data:function(){return{info:[{name:"sqliteviz version",info:[i("9224").version]}]}},created:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$store.state,t.next=3,i.db.execute("select sqlite_version()");case 3:return n=t.sent,e.info.push({name:"SQLite version",info:n["sqlite_version()"]}),t.next=7,i.db.execute("PRAGMA compile_options");case 7:n=t.sent,e.info.push({name:"SQLite compile options",info:n.compile_options});case 9:case"end":return t.stop()}}),t)})))()}},kr=Lr,Er=(i("2930"),Object(s["a"])(kr,Or,Ar,!1,null,"a80fbe8a",null)),Sr=Er.exports,Qr={name:"MainMenu",components:{TextField:F,CloseIcon:Oe,AppDiagnosticInfo:Sr},data:function(){return{name:"",errorMsg:null}},computed:{currentInquiry:function(){return this.$store.state.currentTab},isSaved:function(){if(!this.currentInquiry)return!1;var e=this.currentInquiry.tabIndex,t=this.$store.state.tabs[e];return t&&t.isSaved},isPredefined:function(){return!!this.currentInquiry&&this.currentInquiry.isPredefined},runDisabled:function(){return this.currentInquiry&&(!this.$store.state.db||!this.currentInquiry.query)}},created:function(){this.$root.$on("createNewInquiry",this.createNewInquiry),this.$root.$on("saveInquiry",this.checkInquiryBeforeSave),document.addEventListener("keydown",this._keyListener)},beforeDestroy:function(){document.removeEventListener("keydown",this._keyListener)},methods:{createNewInquiry:function(){var e=this;this.$store.dispatch("addTab").then((function(t){e.$store.commit("setCurrentTabId",t),"/workspace"!==e.$route.path&&e.$router.push("/workspace")}))},cancelSave:function(){this.$modal.hide("save"),this.$root.$off("inquirySaved")},checkInquiryBeforeSave:function(){this.errorMsg=null,this.name="",hr.isTabNeedName(this.currentInquiry)?this.$modal.show("save"):this.saveInquiry()},saveInquiry:function(){var e=this,t=hr.isTabNeedName(this.currentInquiry);if(!t||this.name){var i=this.currentInquiry.result,n=this.currentInquiry.view,a=hr.save(this.currentInquiry,this.name);this.$store.commit("updateTab",{index:this.currentInquiry.tabIndex,name:a.name,id:a.id,query:a.query,viewType:a.viewType,viewOptions:a.viewOptions,isSaved:!0}),this.$nextTick((function(){e.currentInquiry.result=i,e.currentInquiry.view=n})),this.$modal.hide("save"),this.$root.$emit("inquirySaved")}else this.errorMsg="Inquiry name can't be empty"},_keyListener:function(e){if("/workspace"===this.$route.path){if(("r"===e.key||"Enter"===e.key)&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.runDisabled||this.currentInquiry.execute());if("s"===e.key&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.isSaved||this.checkInquiryBeforeSave())}"b"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.createNewInquiry())}}},Ur=Qr,Yr=(i("2cf3"),Object(s["a"])(Ur,wr,xr,!1,null,"707ebea6",null)),Zr=Yr.exports,Pr=(i("e506"),{name:"Main",components:{MainMenu:Zr}}),_r=Pr,qr=(i("d2db"),Object(s["a"])(_r,zr,Tr,!1,null,"25aa04f9",null)),Vr=qr.exports;n["default"].use(d["a"]);var Rr=[{path:"/",name:"Welcome",component:Cr},{path:"/",name:"Main",component:Vr,children:[{path:"/workspace",name:"Workspace",component:Ga},{path:"/inquiries",name:"Inquiries",component:fr}]}],Br=new d["a"]({routes:Rr});Br.beforeEach(function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(Mi.state.db){e.next=5;break}return a=Ie.getNewDatabase(),e.next=4,a.loadDb();case 4:Mi.commit("setDb",a);case 5:n();case 6:case"end":return e.stop()}}),e)})));return function(t,i,n){return e.apply(this,arguments)}}());var Gr=Br,Hr=i("b8ae"),$r=i("1881"),Wr=i.n($r);i("017d"),i("33da"),i("6d26"),i("bebf"),i("7432"),i("4a8d"),i("e607"),i("feae");["localhost","127.0.0.1"].includes(location.hostname)||i.e("chunk-60cbf026").then(i.t.bind(null,"ddb8",7)),n["default"].use(Hr["VuePlugin"]),n["default"].use(Wr.a),n["default"].config.productionTip=!1,new n["default"]({router:Gr,store:Mi,render:function(e){return e(l)}}).$mount("#app")},"5ca7":function(e,t,i){},"5f8a":function(e,t,i){},"60f1":function(e,t,i){},"637d":function(e,t,i){"use strict";var n=i("6afd"),a=i.n(n);a.a},"64b6":function(e,t,i){"use strict";var n=i("231b"),a=i.n(n);a.a},"69e6":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"6a0b":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo="},"6afd":function(e,t,i){},"6d26":function(e,t,i){},"6eba":function(e,t,i){},7314:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K"},7432:function(e,t,i){},"77ca":function(e,t,i){},7974:function(e,t,i){},"7a18":function(e,t,i){},"7e99":function(e,t,i){"use strict";var n=i("3db6"),a=i.n(n);a.a},"807c":function(e,t,i){"use strict";var n=i("3c99"),a=i.n(n);a.a},"80ad":function(e,t,i){"use strict";var n=i("2337"),a=i.n(n);a.a},"81e6":function(e,t,i){"use strict";var n=i("3856"),a=i.n(n);a.a},8458:function(e,t,i){},"85ec":function(e,t,i){},"87d4":function(e,t,i){e.exports=i.p+"img/file.f5540c43.png"},8913:function(e,t,i){},"8c0b":function(e,t,i){},"8f6e":function(e,t,i){},"8fcc":function(e,t,i){},9080:function(e,t,i){},9224:function(e){e.exports=JSON.parse('{"name":"sqliteviz","version":"0.15.1","license":"Apache-2.0","private":true,"scripts":{"serve":"vue-cli-service serve","build":"NODE_OPTIONS=--max_old_space_size=4096 vue-cli-service build","test":"vue-cli-service karma","lint":"vue-cli-service lint"},"dependencies":{"codemirror":"^5.57.0","core-js":"^3.6.5","html2canvas":"^1.1.4","jquery":"^3.6.0","nanoid":"^3.1.12","papaparse":"^5.3.1","pivottable":"^2.23.0","plotly.js":"^1.58.4","promise-worker":"^2.0.1","react":"^16.13.1","react-chart-editor":"^0.45.0","react-dom":"^16.13.1","sql.js":"file:./lib/sql-js","sqlite-parser":"^1.0.1","vue":"^2.6.11","vue-codemirror":"^4.0.6","vue-js-modal":"^2.0.0-rc.6","vue-multiselect":"^2.1.6","vue-router":"^3.2.0","vue2-teleport":"^1.0.1","vuejs-paginate":"^2.1.0","vuera":"^0.2.7","vuex":"^3.4.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.4.0","@vue/cli-plugin-eslint":"^4.4.0","@vue/cli-plugin-router":"^4.4.0","@vue/cli-plugin-vuex":"^4.4.0","@vue/cli-service":"^4.4.0","@vue/eslint-config-standard":"^5.1.2","@vue/test-utils":"^1.1.2","babel-eslint":"^10.1.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^6.7.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-vue":"^6.2.2","karma":"^3.1.4","karma-firefox-launcher":"^2.1.0","karma-webpack":"^4.0.2","vue-cli-plugin-ui-karma":"^0.2.5","vue-template-compiler":"^2.6.11","workbox-webpack-plugin":"^6.1.5","worker-loader":"^3.0.8"}}')},"93dd":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"9ae5":function(e,t,i){},"9bf4":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo="},a1f0:function(e,t,i){"use strict";var n=i("5ca7"),a=i.n(n);a.a},a303:function(e,t,i){},a96d:function(e,t,i){"use strict";var n=i("3a01"),a=i.n(n);a.a},b288:function(e,t,i){},b3ae:function(e,t,i){},b51c:function(e,t,i){},b5fd:function(e,t,i){"use strict";var n=i("5f8a"),a=i.n(n);a.a},be12:function(e,t,i){"use strict";var n=i("9ae5"),a=i.n(n);a.a},bebf:function(e,t,i){},c4dc:function(e,t,i){"use strict";var n=i("1c6b"),a=i.n(n);a.a},cba9:function(e,t,i){"use strict";var n=i("6eba"),a=i.n(n);a.a},cd48:function(e,t,i){"use strict";var n=i("8f6e"),a=i.n(n);a.a},d24f:function(e,t,i){},d2db:function(e,t,i){"use strict";var n=i("9080"),a=i.n(n);a.a},d7ec:function(e,t,i){"use strict";var n=i("4313"),a=i.n(n);a.a},d9ad:function(e,t,i){"use strict";var n=i("a303"),a=i.n(n);a.a},daef:function(e,t,i){"use strict";var n=i("547f"),a=i.n(n);a.a},db39:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg=="},dbb4:function(e,t,i){},dd9c:function(e,t,i){"use strict";var n=i("345a"),a=i.n(n);a.a},dfd4:function(e,t,i){"use strict";var n=i("7974"),a=i.n(n);a.a},e506:function(e,t,i){},f2b5:function(e,t,i){"use strict";var n=i("0cce"),a=i.n(n);a.a},f4da:function(e,t,i){"use strict";var n=i("8913"),a=i.n(n);a.a},f4e5:function(e,t,i){"use strict";var n=i("b51c"),a=i.n(n);a.a},f7a6:function(e,t,i){"use strict";var n=i("0720"),a=i.n(n);a.a},f8c1:function(e,t,i){"use strict";var n=i("8458"),a=i.n(n);a.a},fc07:function(e,t,i){"use strict";var n=i("60f1"),a=i.n(n);a.a},feae:function(e,t,i){}}); -//# sourceMappingURL=app.97da6287.js.map \ No newline at end of file diff --git a/js/app.97da6287.js.map b/js/app.97da6287.js.map deleted file mode 100644 index 0922a18..0000000 --- a/js/app.97da6287.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9b05","webpack:///./src/components/Logs.vue?0fc7","webpack:///./src/assets/images/success.svg","webpack:///./src/assets/images/chevron.svg","webpack:///./src/components/svg/export.vue?1835","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?f796","webpack:///./src/components/svg/addTable.vue?404b","webpack:///./src/assets/images/body.svg","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?8a2b","webpack:///./src/views/Main/Workspace/Schema/index.vue?d772","webpack:///./src/assets/images/rightArm.svg","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?99f2","webpack:///./src/views/Main/AppDiagnosticInfo.vue?eb56","webpack:///./src/views/Main/Workspace/index.vue?2f51","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?e14b","webpack:///./src/views/Main/MainMenu.vue?58b4","webpack:///./src/components/svg/treeChevron.vue?b6ad","webpack:///./src/components/DbUploader.vue?2df9","webpack:///./src/assets/images/top.svg","webpack:///./src/assets/images/checkbox_checked_disabled.svg","webpack:///./src/components/svg/dropDownChevron.vue?d4f2","webpack:///./src/components/svg/sort.vue?a914","webpack:///./src/App.vue?5b2c","webpack:///./src/App.vue","webpack:///./src/views/Main/Workspace/index.vue?58e9","webpack:///./src/components/Splitpanes/index.vue?cc61","webpack:///./src/components/Splitpanes/splitter.js","webpack:///src/components/Splitpanes/index.vue","webpack:///./src/components/Splitpanes/index.vue?7002","webpack:///./src/components/Splitpanes/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?d998","webpack:///./src/lib/utils/fileIo.js","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?4b69","webpack:///./src/components/svg/treeChevron.vue?9766","webpack:///src/components/svg/treeChevron.vue","webpack:///./src/components/svg/treeChevron.vue?1b38","webpack:///./src/components/svg/treeChevron.vue","webpack:///src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?c905","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/components/TextField.vue?927a","webpack:///./src/components/svg/hint.vue?a56a","webpack:///./src/tooltipMixin.js","webpack:///src/components/svg/hint.vue","webpack:///./src/components/svg/hint.vue?7e42","webpack:///./src/components/svg/hint.vue","webpack:///src/components/TextField.vue","webpack:///./src/components/TextField.vue?2591","webpack:///./src/components/TextField.vue","webpack:///./src/components/DbUploader.vue?01e5","webpack:///./src/components/svg/changeDb.vue?c9d1","webpack:///src/components/svg/changeDb.vue","webpack:///./src/components/svg/changeDb.vue?8a76","webpack:///./src/components/svg/changeDb.vue","webpack:///./src/lib/database/_statements.js","webpack:///./src/lib/database/_worker.js","webpack:///./src/lib/database/index.js","webpack:///./src/components/CsvImport/index.vue?04af","webpack:///./src/components/CsvImport/csv.js","webpack:///./src/components/svg/close.vue?1073","webpack:///src/components/svg/close.vue","webpack:///./src/components/svg/close.vue?e99c","webpack:///./src/components/svg/close.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?e4de","webpack:///./src/components/CsvImport/DelimiterSelector/ascii.js","webpack:///./src/components/svg/dropDownChevron.vue?dec1","webpack:///src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/dropDownChevron.vue?82eb","webpack:///./src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/clear.vue?4dde","webpack:///src/components/svg/clear.vue","webpack:///./src/components/svg/clear.vue?295f","webpack:///./src/components/svg/clear.vue","webpack:///src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?8465","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CheckBox.vue?3c84","webpack:///src/components/CheckBox.vue","webpack:///./src/components/CheckBox.vue?093c","webpack:///./src/components/CheckBox.vue","webpack:///./src/components/SqlTable/index.vue?de2b","webpack:///./src/components/SqlTable/Pager.vue?1e9c","webpack:///src/components/SqlTable/Pager.vue","webpack:///./src/components/SqlTable/Pager.vue?7612","webpack:///./src/components/SqlTable/Pager.vue","webpack:///src/components/SqlTable/index.vue","webpack:///./src/components/SqlTable/index.vue?c2e6","webpack:///./src/components/SqlTable/index.vue","webpack:///./src/components/Logs.vue?a689","webpack:///./src/components/LoadingIndicator.vue?1306","webpack:///src/components/LoadingIndicator.vue","webpack:///./src/components/LoadingIndicator.vue?19ce","webpack:///./src/components/LoadingIndicator.vue","webpack:///src/components/Logs.vue","webpack:///./src/components/Logs.vue?e94a","webpack:///./src/components/Logs.vue","webpack:///./src/lib/utils/time.js","webpack:///src/components/CsvImport/index.vue","webpack:///./src/components/CsvImport/index.vue?ee8f","webpack:///./src/components/CsvImport/index.vue","webpack:///src/components/DbUploader.vue","webpack:///./src/components/DbUploader.vue?1d2f","webpack:///./src/components/DbUploader.vue","webpack:///./src/components/svg/export.vue?1702","webpack:///src/components/svg/export.vue","webpack:///./src/components/svg/export.vue?fe2d","webpack:///./src/components/svg/export.vue","webpack:///./src/components/svg/addTable.vue?f46a","webpack:///src/components/svg/addTable.vue","webpack:///./src/components/svg/addTable.vue?28ba","webpack:///./src/components/svg/addTable.vue","webpack:///src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?a1f6","webpack:///./src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?b572","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?00d1","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?c198","webpack:///./src/store/state.js","webpack:///./src/store/mutations.js","webpack:///./src/store/actions.js","webpack:///./src/store/index.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/hint.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?b509","webpack:///./src/components/IconButton.vue?662b","webpack:///src/components/IconButton.vue","webpack:///./src/components/IconButton.vue?8571","webpack:///./src/components/IconButton.vue","webpack:///./src/components/svg/table.vue?5bb7","webpack:///src/components/svg/table.vue","webpack:///./src/components/svg/table.vue?491d","webpack:///./src/components/svg/table.vue","webpack:///./src/components/svg/sqlEditor.vue?2707","webpack:///src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/sqlEditor.vue?26e3","webpack:///./src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/dataView.vue?c3fe","webpack:///src/components/svg/dataView.vue","webpack:///./src/components/svg/dataView.vue?ea7d","webpack:///./src/components/svg/dataView.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?24a6","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/components/svg/run.vue?74a7","webpack:///src/components/svg/run.vue","webpack:///./src/components/svg/run.vue?2175","webpack:///./src/components/svg/run.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?dba8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?6a59","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?e21d","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/chartHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?81fb","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?6033","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?31d2","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?7624","webpack:///./src/components/svg/sort.vue?4e66","webpack:///src/components/svg/sort.vue","webpack:///./src/components/svg/sort.vue?8d22","webpack:///./src/components/svg/sort.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?e25c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/pivotHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?0f10","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?9f12","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/components/svg/chart.vue?345d","webpack:///src/components/svg/chart.vue","webpack:///./src/components/svg/chart.vue?3a5e","webpack:///./src/components/svg/chart.vue","webpack:///./src/components/svg/pivot.vue?5826","webpack:///src/components/svg/pivot.vue","webpack:///./src/components/svg/pivot.vue?5db1","webpack:///./src/components/svg/pivot.vue","webpack:///./src/components/svg/png.vue?1b3a","webpack:///src/components/svg/png.vue","webpack:///./src/components/svg/png.vue?870d","webpack:///./src/components/svg/png.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?90d3","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?3916","webpack:///src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?05ce","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?c6f1","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///src/views/Main/Workspace/Tabs/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?8b02","webpack:///./src/views/Main/Workspace/Tabs/index.vue","webpack:///src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Workspace/index.vue?1a44","webpack:///./src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?4257","webpack:///./src/views/Main/Inquiries/svg/rename.vue?e7e6","webpack:///src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/rename.vue?5205","webpack:///./src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?9056","webpack:///src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?f41f","webpack:///./src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?86af","webpack:///src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?009b","webpack:///./src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/lib/storedInquiries/_migrations.js","webpack:///./src/lib/storedInquiries/index.js","webpack:///src/views/Main/Inquiries/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?33c1","webpack:///./src/views/Main/Inquiries/index.vue","webpack:///./src/views/Welcome.vue?9c5f","webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?253e","webpack:///./src/views/Welcome.vue","webpack:///./src/views/Main/index.vue?e4c4","webpack:///./src/views/Main/MainMenu.vue?9189","webpack:///./src/views/Main/AppDiagnosticInfo.vue?21fd","webpack:///src/views/Main/AppDiagnosticInfo.vue","webpack:///./src/views/Main/AppDiagnosticInfo.vue?4caa","webpack:///./src/views/Main/AppDiagnosticInfo.vue","webpack:///src/views/Main/MainMenu.vue","webpack:///./src/views/Main/MainMenu.vue?76b3","webpack:///./src/views/Main/MainMenu.vue","webpack:///src/views/Main/index.vue","webpack:///./src/views/Main/index.vue?5975","webpack:///./src/views/Main/index.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/svg/changeDb.vue?8a94","webpack:///./src/views/Main/Workspace/Tabs/index.vue?243c","webpack:///./src/assets/images/checkbox_checked_light.svg","webpack:///./src/assets/images/bottom.svg","webpack:///./src/assets/images/error.svg","webpack:///./src/views/Main/Inquiries/svg/delete.vue?1927","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?07b5","webpack:///./src/components/svg/hint.vue?b071","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?df15","webpack:///./src/assets/images/file.png","webpack:///./src/assets/images/checkbox_checked.svg","webpack:///./src/assets/images/leftArm.svg","webpack:///./src/components/Splitpanes/index.vue?b0be","webpack:///./src/components/CheckBox.vue?8ce8","webpack:///./src/views/Main/Inquiries/svg/rename.vue?6a9c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?3c1f","webpack:///./src/components/CsvImport/index.vue?7e36","webpack:///./src/views/Main/Inquiries/svg/copy.vue?7022","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?ea72","webpack:///./src/views/Main/index.vue?b83e","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?b2a2","webpack:///./src/components/LoadingIndicator.vue?d890","webpack:///./src/components/TextField.vue?c2e5","webpack:///./src/assets/images/info.svg","webpack:///./src/components/IconButton.vue?674f","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?8581","webpack:///./src/views/Welcome.vue?1e1a","webpack:///./src/components/svg/close.vue?17e8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?dffd","webpack:///./src/components/svg/clear.vue?d1b6","webpack:///./src/views/Main/Inquiries/index.vue?f0fe","webpack:///./src/components/SqlTable/Pager.vue?b07e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","component","staticClass","size","max","scopedSlots","_u","fn","proxy","ref","class","horizontal","dragging","style","styles","paneBefore","_t","on","bindEvents","after","before","paneAfter","$event","togglePane","_e","getCurrentMouseDrag","container","rect","getBoundingClientRect","touches","clientX","clientY","x","left","y","top","getCurrentDragPercentage","isHorisontal","drag","containerSize","calculateOffset","paneBeforeMax","paneAfterMax","dragPercentage","paneBeforeMaxReached","paneAfterMaxReached","Math","min","props","beforeMinimising","movableSplitter","visibility","computed","movableSplitterStyle","directionBeforeIconStyle","rotation","expanded","transform","translation","directionAfterIconStyle","methods","addEventListener","onMouseMove","onMouseUp","unbindEvents","removeEventListener","preventDefault","moveSplitter","dir","offset","pane","otherPane","mounted","$refs","model","callback","$$v","filter","expression","schemaVisible","directives","rawName","schema","_v","_s","dbName","exportToFile","addCsv","_l","table","columns","file","$store","state","db","isDatabase","dbTypes","includes","test","getFileName","replace","downloadFromUrl","url","fileName","downloader","href","download","click","URL","revokeObjectURL","str","blob","Blob","createObjectURL","getFileFromUser","uploader","accept","files","importFile","reader","FileReader","then","readAsText","readFile","path","fetch","readAsArrayBuffer","fileReader","abort","colVisible","col","index","Boolean","required","components","errorMsg","disabled","label","hint","maxHintWidth","width","placeholder","domProps","$emit","stopPropagation","onClick","showTooltip","hideTooltip","assign","tooltipStyle","maxWidth","tooltipElement","tooltip","tooltipPosition","position","split","offsetWidth","mixins","tooltipMixin","browse","drop","newDb","cancelCsvImport","finish","generateChunks","matrix","keys","map","row","transposedMatrix","column","count","ceil","start","end","getInsertStmt","tabName","colList","join","params","getCreateStatement","getAst","sql","fixedSql","sqliteParser","getColumns","ast","columnDefinition","statement","format","definition","args","forEach","item","variant","datatype","Worker_fn","Worker","getNewDatabase","worker","Database","progressCounterIds","pw","PromiseWorker","importProgresses","progress","id","dispatchEvent","CustomEvent","detail","terminate","EventTarget","progressCounterId","postMessage","action","refreshSchema","fu","fileContent","buffer","res","getSchemaSql","execute","parsedSchema","stms","commands","results","startsWith","dialogName","disableDialog","tableNameError","tableName","previewCsv","delimiter","quoteChar","escapeChar","header","previewData","rowCount","importCsvMessages","importCsvCompleted","loadFromCsv","hintsByCode","MissingQuotes","TooFewFields","TooManyFields","getResult","source","meta","fields","trim","Date","toISOString","parse","config","defaultConfig","newline","transformHeader","dynamicTyping","preview","encoding","comments","step","complete","hasErrors","messages","errors","msg","code","downloadRequestHeaders","downloadRequestBody","skipEmptyLines","chunkSize","fastMode","beforeFirstChunk","withCredentials","delimitersToGuess","Papa","RECORD_SEP","UNIT_SEP","Number","default","onContainerClick","filled","composing","inputValue","getSymbolName","nativeOn","clear","showOptions","option","chooseOption","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","options","watch","created","ascii","charCodeAt","toString","delimiterInput","focus","checked","theme","String","validator","init","th","onScrollTable","refInFor","currentPageData","rowIndex","colIndex","dataSet","time","pageCount","currentPage","chevron","page","pageSize","tableWidth","resizeObserver","cellStyle","calculateHeadersWidth","$nextTick","scrollLeft","ResizeObserver","observe","beforeDestroy","unobserve","serializeMessage","animationClass","strokeWidth","radius","strokeDasharray","circleProgress","strokeDashoffset","scrollToBottom","getPeriod","diff","getTime","seconds","toFixed","debounce","func","ms","arguments","CloseIcon","TextField","DelimiterSelector","CheckBox","SqlTable","Logs","addedTable","validateTableName","$modal","hide","reset","open","sanitizeTableName","show","ChangeDbIcon","CsvImport","animationPromise","animationName","shutDown","loadDb","checkFile","dataTransfer","TableDescription","TreeChevron","DbUploader","ExportIcon","AddTableIcon","export","tabs","tab","selectedIndex","selectTab","isSaved","tempName","beforeCloseTab","query","viewOptions","viewType","isPredefined","$root","closingTabIndex","closeTab","saveAndClose","tabIndex","layout","isGettingResults","onSwitchView","initViewOptions","initViewType","onDataViewUpdate","cmOptions","onChange","runDisabled","currentTab","currentTabId","untitledLastIndex","predefinedInquiries","setDb","updateTab","oldId","Vue","set","deleteTab","setCurrentTabId","setCurrentTab","updatePredefinedInquiries","inquiries","Array","isArray","addTab","JSON","stringify","nanoid","some","openedTab","use","Vuex","Store","mutations","actions","getHints","cm","token","getTokenAt","getCursor","string","toUpperCase","CM","list","text","hintOptions","tables","store","completeSingle","completeOnSingleClick","alignWithWord","showHintOnDemand","editor","showHint","ch","tokenType","panel","$slots","active","IconButton","SqlEditorIcon","DataViewIcon","TableIcon","codemirror","SideToolBar","RunIcon","tabSize","lineNumbers","line","autoRefresh","extraKeys","tag","initMode","initOptions","dataSource","importToPngEnabled","loadingImage","saveAsPng","dataSources","visible","height","frames","editable","displaylogo","modeBarButtonsToRemove","dataSourceOptions","plotly","update","onRender","getOptionsFromDataSources","getOptionsForSave","stateCopy","emptySources","dereference","PlotlyEditor","chartHelper","handleResize","chartContainer","pivotOptions","collapsed","colsToSelect","cols","slot","colOrder","rowsToSelect","rows","rowOrder","aggregators","aggregator","valCount","keyNames","val1","val2","renderers","renderer","direction","changeSorting","asc","SortIcon","zeroValAggregators","twoValAggregators","_getDataSources","pivotData","rowKeys","getRowKeys","colKeys","getColKeys","colKey","rowKey","dataSourcesByRows","dataSourcesByCols","rowAttrs","colAttrs","sourceColKey","getAggregator","sourceRowKey","customChartRenderer","customChartComponent","$mount","$","$el","extend","pivotUtilities","export_renderers","plotly_renderers","fun","Multiselect","PivotSortBtn","returnValue","$on","vals","aggregatorName","rendererName","rendererOptions","PivotUi","immediate","handler","pivotOutput","Event","autosize","plotlyConfig","responsive","customChartOptions","chartComponent","Chart","Pivot","ChartIcon","PivotIcon","PngIcon","viewComponent","LoadingIndicator","runResultPanel","calculatePageSize","floor","freeSpace","SqlEditor","DataView","RunResult","Splitpanes","Teleport","initQuery","sqlEditor","dataView","isActive","commit","from","to","fromPosition","Tab","leavingSqliteviz","Schema","Tabs","showedInquiries","importInquiries","selectedInquiriesCount","exportSelectedInquiries","selectedNotPredefinedCount","showDeleteDialog","selectedInquiriesIds","toggleSelectAll","maxTableHeight","inquiry","openInquiry","selectAll","has","toggleRow","_f","createdAt","showRenameDialog","duplicateInquiry","Set","add","newName","renameInquiry","deleteGroup","deleteDialogMsg","deleteInquiry","_migrate","installedVersion","inquire","chart","migrate","migration","version","getStoredInquiries","myInquiries","localStorage","getItem","oldInquiries","updateStorage","baseInquiry","newInquiry","isTabNeedName","inquiryTab","isFromScratch","initName","save","inquiryIndex","findIndex","oldInquiry","setItem","serialiseInquiries","inquiryList","preparedData","deserialiseInquiries","allInquiriesIds","readPredefinedInquiries","json","RenameIcon","CopyIcon","DeleteIcon","processedInquiryId","predefinedInquiriesIds","allInquiries","concat","processedInquiryIndex","storedInquiries","calcMaxTableHeight","tableResizeObserver","calcNameWidth","filters","date","hour12","hour","minute","toLocaleDateString","dateOptions","dispatch","processedInquiry","$set","idsSet","values","next","delete","findTabIndex","rowCheckBox","mainCheckBox","$router","currentInquiry","$route","checkInquiryBeforeSave","createNewInquiry","cancelSave","saveInquiry","opt","info","AppDiagnosticInfo","_keyListener","$off","isNeedName","ctrlKey","metaKey","VueRouter","routes","Welcome","Main","children","Workspace","Inquiries","router","beforeEach","database","location","hostname","VuePlugin","VModal","productionTip","render","h","App"],"mappings":"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","file":"js/app.97da6287.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-60cbf026\":\"37d9df6c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjQ5OTggMTYuNjY2N0M2LjgyNDg0IDE2LjY2NjcgMy44MzMxNyAxMy42NzUgMy44MzMxNyAxMEMzLjgzMzE3IDYuMzI1MDIgNi44MjQ4NCAzLjMzMzM1IDEwLjQ5OTggMy4zMzMzNUMxNC4xNzQ4IDMuMzMzMzUgMTcuMTY2NSA2LjMyNTAyIDE3LjE2NjUgMTBDMTcuMTY2NSAxMy42NzUgMTQuMTc0OCAxNi42NjY3IDEwLjQ5OTggMTYuNjY2N1pNMTAuNDk5OCAxLjY2NjY5QzkuNDA1NDkgMS42NjY2OSA4LjMyMTg2IDEuODgyMjQgNy4zMTA4MSAyLjMwMTAyQzYuMjk5NzYgMi43MTk4MSA1LjM4MTEgMy4zMzM2NCA0LjYwNzI4IDQuMTA3NDZDMy4wNDQ0OCA1LjY3MDI3IDIuMTY2NSA3Ljc4OTg4IDIuMTY2NSAxMEMyLjE2NjUgMTIuMjEwMiAzLjA0NDQ4IDE0LjMyOTggNC42MDcyOCAxNS44OTI2QzUuMzgxMSAxNi42NjY0IDYuMjk5NzYgMTcuMjgwMiA3LjMxMDgxIDE3LjY5OUM4LjMyMTg2IDE4LjExNzggOS40MDU0OSAxOC4zMzM0IDEwLjQ5OTggMTguMzMzNEMxMi43MSAxOC4zMzM0IDE0LjgyOTYgMTcuNDU1NCAxNi4zOTI0IDE1Ljg5MjZDMTcuOTU1MiAxNC4zMjk4IDE4LjgzMzIgMTIuMjEwMiAxOC44MzMyIDEwQzE4LjgzMzIgOC45MDU2NyAxOC42MTc2IDcuODIyMDQgMTguMTk4OCA2LjgxMDk5QzE3Ljc4IDUuNzk5OTUgMTcuMTY2MiA0Ljg4MTI5IDE2LjM5MjQgNC4xMDc0NkMxNS42MTg2IDMuMzMzNjQgMTQuNjk5OSAyLjcxOTgxIDEzLjY4ODkgMi4zMDEwMkMxMi42Nzc4IDEuODgyMjQgMTEuNTk0MiAxLjY2NjY5IDEwLjQ5OTggMS42NjY2OVoiIGZpbGw9IiMwMENDOTYiLz4KPHJlY3QgeD0iNi4wOTcxNyIgeT0iMTAuMjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNC4zNDUiIHRyYW5zZm9ybT0icm90YXRlKC00NSA2LjA5NzE3IDEwLjI3NzEpIiBmaWxsPSIjMDBDQzk2Ii8+CjxyZWN0IHg9IjEzLjc1MiIgeT0iNi45NzU4OSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNy43NDM1OSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTMuNzUyIDYuOTc1ODkpIiBmaWxsPSIjMDBDQzk2Ii8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgNCA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNCAwLjk4MDU2VjQuNUw0LjAwMDA0IDcuNzE0MjhMNCA5TDEuMTA2OTRlLTA3IDQuNUw0IDBWMC45ODA1NloiIGZpbGw9IiM1MDY3ODQiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzQiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA3NCA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQyIDRMMjguODg1NyAwQzcuNDM3MjkgMTYuNDUxMiAxLjg0MzE4ZS0wNSA2MS43OTYxIDAgOTZINzRDNzEuNzQxNiA2Mi4xMDg1IDU3LjUgMjQgNDIgNFoiIGZpbGw9IiNDOEQ0RTMiLz4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iNzQiIGhlaWdodD0iOTYiPgo8cGF0aCBkPSJNNDIgNEwyOC44ODU3IDBDNy40MzcyOSAxNi40NTEyIDEuODQzMThlLTA1IDYxLjc5NjEgMCA5Nkg3NEM3MS43NDE2IDYyLjEwODUgNTcuNSAyNCA0MiA0WiIgZmlsbD0iI0M4RDRFMyIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTMyLjAwMDEgNjAuNUMzOC41MDAxIDczIDYzLjUwMDEgNzYuNDk5OSA3My40OTk5IDczQzczLjQ5OTkgNzMgNzUuNzk5MiA2MC43OTk0IDc1LjUgNjAuNTAwMkM2OS43MzM5IDU0LjczMzggNDMuMDAwMyA1Ny45OTk4IDMyLjAwMDEgNjAuNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8L3N2Zz4K\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgMTA2IDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTA0LjI1MiAxLjQwODU1QzEwMC4yNjIgLTIuMDQ5NCA5My43NzczIDEuNDA4NTQgOTEuMjgzMiA1Ljg1NDI2TDEwMC4yNjIgMTQuMzkzOUMxMDQuNzUxIDEwLjc5NDEgMTA4LjI0MyA0Ljg2NjQ2IDEwNC4yNTIgMS40MDg1NVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkxLjAxMjMgNC4zNzIwN0M3Mi40NTY4IDI1LjE3MDQgMzAuNDI3OSAyMi45MjYzIDE5Ljk1MjcgNC4zNzIwN0wwIDQ0LjY2MTVDMzguNDA5IDY5Ljg1NDcgODYuNzk0NCA1MC4wOTU0IDEwMi4yNTggMTQuNTI4Nkw5MS4wMTIzIDQuMzcyMDdaIiBmaWxsPSIjQzhENEUzIi8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgdmlld0JveD0iMCAwIDQ1MCAxNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNzUiPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgMS45OTI3MkM3MC4xOTcyIC05Ljg0ODk3IDE4Ljc0NSAzMC44ODk1IDQuMzE5ODUgOTIuNjY3OEMtMTAuMTA1NCAxNTQuNDQ2IDE0LjMzMzcgMTg2LjMzMiAzNy4zMjE4IDIyNi4xODlDNzIuMzc4NCAyODYuOTcxIDE4MS41NTEgMzQxLjIzNyAyNjUuMDgzIDMzNy43ODlDMzM3LjUxNyAzMzQuOCAzODkuMDI4IDMxNi41MTQgNDI1LjkzNiAyNDguMTExQzQ4OS4zNzggMTMwLjUzMiA0MTcuNDQ0IDUzLjkwNjUgMzI1LjUyNyA2OC4yNTUxQzIxNC41NzEgODUuNTc2IDIxMy42MjkgMTkuNDMwMiAxMjguMjA3IDEuOTkyNzJaIiBmaWxsPSIjREZFOEYzIi8+CjxwYXRoIGQ9Ik0xNTYuMjg0IDE2OS40MjZDMTU4LjE1OCAxNjcuNTUzIDE2MC42OTkgMTY2LjUgMTYzLjM0OSAxNjYuNUgzMzEuOTExQzMzNC41NjEgMTY2LjUgMzM3LjEwMiAxNjcuNTUzIDMzOC45NzYgMTY5LjQyNkwzNDYuMDQxIDE3Ni40OTFIMTQ5LjIyTDE1Ni4yODQgMTY5LjQyNloiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE3NC4wOTkgMTcwLjI1OEMxNzQuMjgzIDE3MC4wOSAxNzQuNTI0IDE2OS45OTcgMTc0Ljc3MyAxNjkuOTk3SDMxOC40OUMzMTguNzM5IDE2OS45OTcgMzE4Ljk4IDE3MC4wOSAzMTkuMTY0IDE3MC4yNThWMTcwLjI1OEMzMTkuODM3IDE3MC44NzQgMzE5LjQwMiAxNzEuOTk1IDMxOC40OSAxNzEuOTk1SDE3NC43NzNDMTczLjg2MSAxNzEuOTk1IDE3My40MjYgMTcwLjg3NCAxNzQuMDk5IDE3MC4yNThWMTcwLjI1OFoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTk0LjIyNyA4Ny44ODFDOTQuMzk2MiA4MC4xOTg4IDkyLjUwNDggNjUuMDYwOCA4My41ODU3IDY1Ljk2NjRDODMuNTg1NyA2NS45NjY0IDcwLjU3NzYgNzYuMDg3NyA3NS42MzkxIDgzLjYxODhDODAuNzAwNSA5MS4xNDk4IDkzLjQ2NzcgOTQuNTA4MyA5NC4yMjcgODcuODgxWiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODkuMjc1IDkxLjMxMDVMODggOThDODUuNTAyMyA5OS40OTg2IDc2LjU1MzEgOTkuMDE5NiA3NC41IDk1Qzc0LjUgOTUgNzYuODI5OCA4OS45MTM1IDc3Ljg0NDYgODQuOTIyNkw4OS4yNzUgOTEuMzEwNVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkyLjI3MTkgNjcuMTE2MUM5Mi4yNzE5IDcyLjc2ODkgODQuMjI0MiA2OC44ODcyIDgyLjM0MjMgNzIuOTEyNkM4MC40NjA1IDc2LjkzNzkgNzcuMzk1MiA4Ni45MjA4IDc3LjM5NTIgODYuOTIwOEM3Mi42MzIzIDg0Ljc0MTQgNjYuNzI3MyA2OS4zMyA3My4yOTM2IDY1LjEwMzRDNzkuMzUwNiA2MS4yMDQ3IDkyLjI3MTkgNjMuMDEwMiA5Mi4yNzE5IDY3LjExNjFaIiBmaWxsPSIjNTA2Nzg0Ii8+CjxwYXRoIGQ9Ik03OS43NjU0IDgzLjk2MjhDNzUuMTUyMiA4MC43MjY5IDc2LjM3MSA3NS4xMzQzIDc5Ljc1NjIgNzYuOTUzNEM4NS4xOTk0IDc5Ljg3ODUgODEuMjkzNCA4Mi45ODA4IDc5Ljc2NTQgODMuOTYyOFoiIGZpbGw9IiNGM0M2QkYiLz4KPC9nPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0RGRThGMyIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kIiB4PSIwLjYyNSIgeT0iMy4xOTI1IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuMiAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1fac0635&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('splitpanes',{staticClass:\"schema-tabs-splitter\",attrs:{\"before\":{ size: 20, max: 30 },\"after\":{ size: 80, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('schema')]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('tabs')]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",class:[\n 'splitpanes',\n (\"splitpanes-\" + (_vm.horizontal ? 'horizontal' : 'vertical')),\n { 'splitpanes-dragging': _vm.dragging }\n ]},[_c('div',{ref:\"movableSplitter\",staticClass:\"movable-splitter\",style:(_vm.movableSplitterStyle)}),_c('div',{ref:\"left\",staticClass:\"splitpanes-pane\",style:(_vm.styles.before),attrs:{\"size\":_vm.paneBefore.size,\"max-size\":\"30\"}},[_vm._t(\"left-pane\")],2),_c('div',{staticClass:\"splitpanes-splitter\",on:{\"mousedown\":_vm.bindEvents,\"touchstart\":_vm.bindEvents}},[_c('div',{class:[\n 'toggle-btns',\n {'both': _vm.after.max === 100 && _vm.before.max === 100 && _vm.paneAfter.size > 0 && _vm.paneBefore.size > 0}\n ]},[(_vm.after.max === 100 && _vm.paneAfter.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneBefore)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionBeforeIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e(),(_vm.before.max === 100 && _vm.paneBefore.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneAfter)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionAfterIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e()])]),_c('div',{ref:\"right\",staticClass:\"splitpanes-pane\",style:(_vm.styles.after)},[_vm._t(\"right-pane\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n // Get the cursor position relative to the splitpane container.\n getCurrentMouseDrag (event, container) {\n const rect = container.getBoundingClientRect()\n const { clientX, clientY } = ('ontouchstart' in window && event.touches)\n ? event.touches[0]\n : event\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n }\n },\n\n // Returns the drag percentage of the splitter relative to the 2 panes it's inbetween.\n getCurrentDragPercentage (event, container, isHorisontal) {\n let drag = this.getCurrentMouseDrag(event, container)\n drag = drag[isHorisontal ? 'y' : 'x']\n const containerSize = container[isHorisontal ? 'clientHeight' : 'clientWidth']\n return drag * 100 / containerSize\n },\n\n // Returns the new position in percents.\n calculateOffset (event, { container, isHorisontal, paneBeforeMax, paneAfterMax }) {\n const dragPercentage = this.getCurrentDragPercentage(event, container, isHorisontal)\n\n const paneBeforeMaxReached = paneBeforeMax < 100 && (dragPercentage >= paneBeforeMax)\n const paneAfterMaxReached = paneAfterMax < 100 && (dragPercentage <= 100 - paneAfterMax)\n\n // Prevent dragging beyond pane max.\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n return paneBeforeMaxReached ? paneBeforeMax : Math.max(100 - paneAfterMax, 0)\n } else {\n return Math.min(Math.max(dragPercentage, 0), paneBeforeMax)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=82b9f68a&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"schema-container\"}},[_c('div',{attrs:{\"id\":\"schema-filter\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search table\",\"width\":\"100%\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('div',{attrs:{\"id\":\"db\"}},[_c('div',{staticClass:\"db-name\",on:{\"click\":function($event){_vm.schemaVisible = !_vm.schemaVisible}}},[_c('tree-chevron',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schema.length > 0),expression:\"schema.length > 0\"}],attrs:{\"expanded\":_vm.schemaVisible}}),_vm._v(\" \"+_vm._s(_vm.dbName)+\" \")],1),_c('db-uploader',{attrs:{\"id\":\"db-edit\",\"type\":\"small\"}}),_c('export-icon',{attrs:{\"tooltip\":\"Export database\"},on:{\"click\":_vm.exportToFile}}),_c('add-table-icon',{on:{\"click\":_vm.addCsv}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schemaVisible),expression:\"schemaVisible\"}],staticClass:\"schema\"},_vm._l((_vm.schema),function(table){return _c('table-description',{key:table.name,attrs:{\"name\":table.name,\"columns\":table.columns}})}),1),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.$store.state.db,\"dialog-name\":\"addCsv\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n isDatabase (file) {\n const dbTypes = ['application/vnd.sqlite3', 'application/x-sqlite3']\n return file.type\n ? dbTypes.includes(file.type)\n : /\\.(db|sqlite(3)?)+$/.test(file.name)\n },\n\n getFileName (file) {\n return file.name.replace(/\\.[^.]+$/, '')\n },\n\n downloadFromUrl (url, fileName) {\n // Create downloader\n const downloader = document.createElement('a')\n downloader.href = url\n downloader.download = fileName\n\n // Trigger click\n downloader.click()\n\n // Clean up\n URL.revokeObjectURL(url)\n },\n\n async exportToFile (str, fileName, type = 'octet/stream') {\n const blob = new Blob([str], { type })\n const url = URL.createObjectURL(blob)\n this.downloadFromUrl(url, fileName)\n },\n\n /**\n * Note: if user press Cancel in file choosing dialog\n * it will be an unsettled promise. But it's grabbed by\n * the garbage collector (tested with FinalizationRegistry).\n */\n getFileFromUser (type) {\n return new Promise(resolve => {\n const uploader = document.createElement('input')\n\n uploader.type = 'file'\n uploader.accept = type\n\n uploader.addEventListener('change', () => {\n const file = uploader.files[0]\n resolve(file)\n })\n\n uploader.click()\n })\n },\n\n importFile () {\n const reader = new FileReader()\n\n return this.getFileFromUser('.json')\n .then(file => {\n return new Promise((resolve, reject) => {\n reader.onload = e => {\n resolve(e.target.result)\n }\n reader.readAsText(file)\n })\n })\n },\n\n readFile (path) {\n return fetch(path)\n },\n\n readAsArrayBuffer (file) {\n const fileReader = new FileReader()\n\n return new Promise((resolve, reject) => {\n fileReader.onerror = () => {\n fileReader.abort()\n reject(new Error('Problem parsing input file.'))\n }\n\n fileReader.onload = () => {\n resolve(fileReader.result)\n }\n fileReader.readAsArrayBuffer(file)\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"table-name\",on:{\"click\":function($event){_vm.colVisible = !_vm.colVisible}}},[_c('tree-chevron',{attrs:{\"expanded\":_vm.colVisible}}),_vm._v(\" \"+_vm._s(_vm.name)+\" \")],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.colVisible),expression:\"colVisible\"}],staticClass:\"columns\"},_vm._l((_vm.columns),function(col,index){return _c('div',{key:index,staticClass:\"column\"},[_vm._v(\" \"+_vm._s(col.name)+\" \"),_c('span',{staticClass:\"column-type\"},[_vm._v(_vm._s(col.type))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"chevron-icon\",style:({ transform: _vm.expanded ? 'rotate(90deg)' : 'rotate(0)' }),attrs:{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 8 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z\",\"fill\":_vm.expanded ? '#506784' : 'rgba(80, 103, 132, 0.5)'}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./treeChevron.vue?vue&type=template&id=bfc135e8&scoped=true&\"\nimport script from \"./treeChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./treeChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bfc135e8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableDescription.vue?vue&type=template&id=060be7fb&scoped=true&\"\nimport script from \"./TableDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./TableDescription.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"060be7fb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.label)?_c('div',{class:['text-field-label', { error: _vm.errorMsg }, {'disabled': _vm.disabled}]},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),(_vm.hint)?_c('hint-icon',{staticClass:\"hint\",attrs:{\"hint\":_vm.hint,\"max-width\":_vm.maxHintWidth || '149px'}}):_vm._e()],1):_vm._e(),_c('input',{class:{ error: _vm.errorMsg },style:({ width: _vm.width }),attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errorMsg),expression:\"errorMsg\"}],staticClass:\"text-field-error\"},[_vm._v(_vm._s(_vm.errorMsg))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"hint-icon\",attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(Object.assign({}, _vm.tooltipStyle, {maxWidth: _vm.maxWidth}))},[_vm._v(\" \"+_vm._s(_vm.hint)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data () {\n return {\n tooltipStyle: {\n visibility: 'hidden'\n }\n }\n },\n computed: {\n tooltipElement () {\n return this.$refs.tooltip\n }\n },\n methods: {\n showTooltip (e, tooltipPosition) {\n const position = tooltipPosition ? tooltipPosition.split('-') : ['top', 'right']\n const offset = 12\n\n if (position[0] === 'top') {\n this.tooltipStyle.top = e.clientY - offset + 'px'\n } else {\n this.tooltipStyle.top = e.clientY + offset + 'px'\n }\n\n if (position[1] === 'right') {\n this.tooltipStyle.left = e.clientX + offset + 'px'\n } else {\n this.tooltipStyle.left = e.clientX - offset - this.tooltipElement.offsetWidth + 'px'\n }\n\n this.tooltipStyle.visibility = 'visible'\n },\n hideTooltip () {\n this.tooltipStyle.visibility = 'hidden'\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hint.vue?vue&type=template&id=30581f31&scoped=true&\"\nimport script from \"./hint.vue?vue&type=script&lang=js&\"\nexport * from \"./hint.vue?vue&type=script&lang=js&\"\nimport style0 from \"./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30581f31\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=59fd41a8&scoped=true&\"\nimport script from \"./TextField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59fd41a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"db-uploader-container\",style:({ width: _vm.width })},[(_vm.type === 'small')?_c('change-db-icon',{on:{\"click\":_vm.browse}}):_vm._e(),(_vm.type === 'illustrated')?_c('div',{staticClass:\"drop-area-container\"},[_c('div',{staticClass:\"drop-area\",on:{\"dragover\":function($event){$event.preventDefault();_vm.state = 'dragover'},\"dragleave\":function($event){$event.preventDefault();_vm.state=''},\"drop\":function($event){$event.preventDefault();return _vm.drop($event)},\"click\":_vm.browse}},[_c('div',{staticClass:\"text\"},[_vm._v(\" Drop the database or CSV file here or click to choose a file from your computer. \")])])]):_vm._e(),(_vm.type === 'illustrated')?_c('div',{attrs:{\"id\":\"img-container\"}},[_c('img',{attrs:{\"id\":\"drop-file-top-img\",\"src\":require('@/assets/images/top.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"left-arm-img\",\"src\":require('@/assets/images/leftArm.svg')}}),_c('img',{ref:\"fileImg\",class:{\n 'swing': _vm.state === 'dragover',\n 'fly': _vm.state === 'dropping',\n 'hidden': _vm.state === 'dropped'\n },attrs:{\"id\":\"file-img\",\"src\":require('@/assets/images/file.png')}}),_c('img',{attrs:{\"id\":\"drop-file-bottom-img\",\"src\":require('@/assets/images/bottom.svg')}}),_c('img',{attrs:{\"id\":\"body-img\",\"src\":require('@/assets/images/body.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"right-arm-img\",\"src\":require('@/assets/images/rightArm.svg')}})]):_vm._e(),_c('div',{staticClass:\"error\",attrs:{\"id\":\"error\"}}),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.newDb,\"dialog-name\":\"importFromCsv\"},on:{\"cancel\":_vm.cancelCsvImport,\"finish\":_vm.finish}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"db-edit-icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Load another database or CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./changeDb.vue?vue&type=template&id=2c7f445c&scoped=true&\"\nimport script from \"./changeDb.vue?vue&type=script&lang=js&\"\nexport * from \"./changeDb.vue?vue&type=script&lang=js&\"\nimport style0 from \"./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c7f445c\",\n null\n \n)\n\nexport default component.exports","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"js/_worker.5e0dd41a.worker.js\");\n}\n","import stms from './_statements'\nimport fu from '@/lib/utils/fileIo'\n// We can import workers like so because of worker-loader:\n// https://webpack.js.org/loaders/worker-loader/\nimport Worker from './_worker.js'\n\n// Use promise-worker in order to turn worker into the promise based one:\n// https://github.com/nolanlawson/promise-worker\nimport PromiseWorker from 'promise-worker'\n\nfunction getNewDatabase () {\n const worker = new Worker()\n return new Database(worker)\n}\n\nexport default {\n getNewDatabase\n}\n\nlet progressCounterIds = 0\nclass Database {\n constructor (worker) {\n this.dbName = null\n this.schema = null\n this.worker = worker\n this.pw = new PromiseWorker(worker)\n\n this.importProgresses = {}\n worker.addEventListener('message', e => {\n const progress = e.data.progress\n if (progress !== undefined) {\n const id = e.data.id\n this.importProgresses[id].dispatchEvent(new CustomEvent('progress', {\n detail: progress\n }))\n }\n })\n }\n\n shutDown () {\n this.worker.terminate()\n }\n\n createProgressCounter (callback) {\n const id = progressCounterIds++\n this.importProgresses[id] = new EventTarget()\n this.importProgresses[id].addEventListener('progress', e => { callback(e.detail) })\n return id\n }\n\n deleteProgressCounter (id) {\n delete this.importProgresses[id]\n }\n\n async addTableFromCsv (tabName, data, progressCounterId) {\n const result = await this.pw.postMessage({\n action: 'import',\n data,\n progressCounterId,\n tabName\n })\n\n if (result.error) {\n throw new Error(result.error)\n }\n this.dbName = this.dbName || 'database'\n this.refreshSchema()\n }\n\n async loadDb (file) {\n const fileContent = file ? await fu.readAsArrayBuffer(file) : null\n const res = await this.pw.postMessage({ action: 'open', buffer: fileContent })\n\n if (res.error) {\n throw new Error(res.error)\n }\n\n this.dbName = file ? fu.getFileName(file) : 'database'\n this.refreshSchema()\n }\n\n async refreshSchema () {\n const getSchemaSql = `\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n `\n const result = await this.execute(getSchemaSql)\n // Parse DDL statements to get column names and types\n const parsedSchema = []\n if (result && result.name) {\n result.name.forEach((table, index) => {\n parsedSchema.push({\n name: table,\n columns: stms.getColumns(result.sql[index])\n })\n })\n }\n\n // Refresh schema\n this.schema = parsedSchema\n }\n\n async execute (commands) {\n await this.pw.postMessage({ action: 'reopen' })\n const results = await this.pw.postMessage({ action: 'exec', sql: commands })\n\n if (results.error) {\n throw new Error(results.error)\n }\n // if it was more than one select - take only the last one\n return results[results.length - 1]\n }\n\n async export (fileName) {\n const data = await this.pw.postMessage({ action: 'export' })\n\n if (data.error) {\n throw new Error(data.error)\n }\n fu.exportToFile(data, fileName)\n }\n\n async validateTableName (name) {\n if (name.startsWith('sqlite_')) {\n throw new Error(\"Table name can't start with sqlite_\")\n }\n\n if (/[^\\w]/.test(name)) {\n throw new Error('Table name can contain only letters, digits and underscores')\n }\n\n if (/^(\\d)/.test(name)) {\n throw new Error(\"Table name can't start with a digit\")\n }\n\n await this.execute(`BEGIN; CREATE TABLE \"${name}\"(id); ROLLBACK;`)\n }\n\n sanitizeTableName (tabName) {\n return tabName\n .replace(/[^\\w]/g, '_') // replace everything that is not letter, digit or _ with _\n .replace(/^(\\d)/, '_$1') // add _ at beginning if starts with digit\n .replace(/_{2,}/g, '_') // replace multiple _ with one _\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal',{attrs:{\"name\":_vm.dialogName,\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"80%\",\"scrollable\":\"\",\"clickToClose\":false}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" CSV import \"),_c('close-icon',{attrs:{\"disabled\":_vm.disableDialog},on:{\"click\":_vm.cancelCsvImport}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"Table name\",\"width\":\"484px\",\"disabled\":_vm.disableDialog,\"error-msg\":_vm.tableNameError,\"id\":\"csv-table-name\"},model:{value:(_vm.tableName),callback:function ($$v) {_vm.tableName=$$v},expression:\"tableName\"}}),_c('div',{staticClass:\"chars\"},[_c('delimiter-selector',{staticClass:\"char-input\",attrs:{\"width\":\"210px\",\"disabled\":_vm.disableDialog},on:{\"input\":_vm.previewCsv},model:{value:(_vm.delimiter),callback:function ($$v) {_vm.delimiter=$$v},expression:\"delimiter\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Quote char\",\"hint\":\"The character used to quote fields.\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"quote-char\"},model:{value:(_vm.quoteChar),callback:function ($$v) {_vm.quoteChar=$$v},expression:\"quoteChar\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Escape char\",\"hint\":\"The character used to escape the quote character within a field (e.g. \\\"column with \\\"\\\"quotes\\\"\\\" in text\\\").\",\"max-hint-width\":\"242px\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"escape-char\"},model:{value:(_vm.escapeChar),callback:function ($$v) {_vm.escapeChar=$$v},expression:\"escapeChar\"}})],1),_c('check-box',{attrs:{\"init\":true,\"label\":\"Use first row as column headers\",\"disabled\":_vm.disableDialog},on:{\"click\":function($event){_vm.header = $event}}}),(_vm.previewData\n && (_vm.previewData.rowCount > 0 || Object.keys(_vm.previewData).length > 0)\n )?_c('sql-table',{staticClass:\"preview-table\",attrs:{\"data-set\":_vm.previewData,\"preview\":true}}):_c('div',{staticClass:\"no-data\"},[_vm._v(\"No data\")]),_c('logs',{staticClass:\"import-csv-errors\",attrs:{\"messages\":_vm.importCsvMessages}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-cancel\"},on:{\"click\":_vm.cancelCsvImport}},[_vm._v(\" Cancel \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.importCsvCompleted),expression:\"!importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-import\"},on:{\"click\":function($event){return _vm.loadFromCsv(_vm.file)}}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.importCsvCompleted),expression:\"importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-finish\"},on:{\"click\":_vm.finish}},[_vm._v(\" Finish \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Papa from 'papaparse'\n\nconst hintsByCode = {\n MissingQuotes: 'Edit your CSV so that the field has a closing quote char.',\n TooFewFields: 'Add fields or try another delimiter.',\n TooManyFields: 'Edit your CSV or try another delimiter.'\n}\n\nexport default {\n getResult (source) {\n const result = {}\n if (source.meta.fields) {\n source.meta.fields.forEach(col => {\n result[col.trim()] = source.data.map(row => {\n let value = row[col]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n })\n } else {\n for (let i = 0; i <= source.data[0].length - 1; i++) {\n result[`col${i + 1}`] = source.data.map(row => {\n let value = row[i]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n }\n }\n return result\n },\n\n parse (file, config = {}) {\n return new Promise((resolve, reject) => {\n const defaultConfig = {\n delimiter: '', // auto-detect\n newline: '', // auto-detect\n quoteChar: '\"',\n escapeChar: '\"',\n header: false,\n transformHeader: undefined,\n dynamicTyping: true,\n preview: 0,\n encoding: 'UTF-8',\n worker: true,\n comments: false,\n step: undefined,\n complete: results => {\n const res = {\n data: this.getResult(results),\n delimiter: results.meta.delimiter,\n hasErrors: false,\n rowCount: results.data.length\n }\n res.messages = results.errors.map(msg => {\n msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'\n if (msg.type === 'error') res.hasErrors = true\n msg.hint = hintsByCode[msg.code]\n return msg\n })\n resolve(res)\n },\n error: (error, file) => {\n reject(error)\n },\n download: false,\n downloadRequestHeaders: undefined,\n downloadRequestBody: undefined,\n skipEmptyLines: 'greedy',\n chunk: undefined,\n chunkSize: undefined,\n fastMode: undefined,\n beforeFirstChunk: undefined,\n withCredentials: undefined,\n transform: undefined,\n delimitersToGuess: [',', '\\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]\n }\n\n Papa.parse(file, { ...defaultConfig, ...config })\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['icon', {'disabled': _vm.disabled }],attrs:{\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 14 14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('click')}}},[_c('path',{attrs:{\"d\":\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./close.vue?vue&type=template&id=86f3a16c&scoped=true&\"\nimport script from \"./close.vue?vue&type=script&lang=js&\"\nexport * from \"./close.vue?vue&type=script&lang=js&\"\nimport style0 from \"./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86f3a16c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'disabled': _vm.disabled }},[_c('div',{staticClass:\"text-field-label\"},[_vm._v(\"Delimiter\")]),_c('div',{staticClass:\"delimiter-selector-container\",style:({ width: _vm.width }),on:{\"click\":_vm.onContainerClick}},[_c('div',{staticClass:\"value\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"delimiterInput\",class:{ 'filled': _vm.filled },attrs:{\"type\":\"text\",\"maxlength\":\"1\",\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputValue)},on:{\"click\":function($event){$event.stopPropagation();},\"input\":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.getSymbolName(_vm.value)))])]),_c('div',{staticClass:\"controls\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('clear-icon',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){return _vm.clear($event)}}}),_c('drop-down-chevron',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){!_vm.disabled && (_vm.showOptions = !_vm.showOptions)}}})],1)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOptions),expression:\"showOptions\"}],staticClass:\"options\",style:({ width: _vm.width })},_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"option\",on:{\"click\":function($event){return _vm.chooseOption(option)}}},[_c('pre',[_vm._v(_vm._s(option))]),_c('div',[_vm._v(_vm._s(_vm.getSymbolName(option)))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n 0: { name: 'null character' },\n 1: { name: 'start of header' },\n 2: { name: 'start of text' },\n 3: { name: 'end of text' },\n 4: { name: 'end of transmission' },\n 5: { name: 'enquiry' },\n 6: { name: 'acknowledge' },\n 7: { name: 'bell (ring)' },\n 8: { name: 'backspace' },\n 9: { name: 'horizontal tab' },\n 10: { name: 'line feed' },\n 11: { name: 'vertical tab' },\n 12: { name: 'form feed' },\n 13: { name: 'carriage return' },\n 14: { name: 'shift out' },\n 15: { name: 'shift in' },\n 16: { name: 'data link escape' },\n 17: { name: 'device control 1' },\n 18: { name: 'device control 2' },\n 19: { name: 'device control 3' },\n 20: { name: 'device control 4' },\n 21: { name: 'negative acknowledge' },\n 22: { name: 'synchronize' },\n 23: { name: 'end transmission block' },\n 24: { name: 'cancel' },\n 25: { name: 'end of medium' },\n 26: { name: 'substitute' },\n 27: { name: 'escape' },\n 28: { name: 'file separator' },\n 29: { name: 'group separator' },\n 30: { name: 'record separator' },\n 31: { name: 'unit separator' },\n 32: { name: 'space' },\n 33: { name: 'exclamation mark' },\n 34: { name: 'quotation mark' },\n 35: { name: 'number sign' },\n 36: { name: 'dollar sign' },\n 37: { name: 'percent sign' },\n 38: { name: 'ampersand' },\n 39: { name: 'apostrophe' },\n 40: { name: 'left parenthesis' },\n 41: { name: 'right parenthesis' },\n 42: { name: 'asterisk' },\n 43: { name: 'plus sign' },\n 44: { name: 'comma' },\n 45: { name: 'hyphen' },\n 46: { name: 'period' },\n 47: { name: 'slash' },\n 48: { name: 'digit 0' },\n 49: { name: 'digit 1' },\n 50: { name: 'digit 2' },\n 51: { name: 'digit 3' },\n 52: { name: 'digit 4' },\n 53: { name: 'digit 5' },\n 54: { name: 'digit 6' },\n 55: { name: 'digit 7' },\n 56: { name: 'digit 8' },\n 57: { name: 'digit 9' },\n 58: { name: 'colon' },\n 59: { name: 'semicolon' },\n 60: { name: 'less-than' },\n 61: { name: 'equals-to' },\n 62: { name: 'greater-than' },\n 63: { name: 'question mark' },\n 64: { name: 'at sign' },\n 65: { name: 'uppercase A' },\n 66: { name: 'uppercase B' },\n 67: { name: 'uppercase C' },\n 68: { name: 'uppercase D' },\n 69: { name: 'uppercase E' },\n 70: { name: 'uppercase F' },\n 71: { name: 'uppercase G' },\n 72: { name: 'uppercase H' },\n 73: { name: 'uppercase I' },\n 74: { name: 'uppercase J' },\n 75: { name: 'uppercase K' },\n 76: { name: 'uppercase L' },\n 77: { name: 'uppercase M' },\n 78: { name: 'uppercase N' },\n 79: { name: 'uppercase O' },\n 80: { name: 'uppercase P' },\n 81: { name: 'uppercase Q' },\n 82: { name: 'uppercase R' },\n 83: { name: 'uppercase S' },\n 84: { name: 'uppercase T' },\n 85: { name: 'uppercase U' },\n 86: { name: 'uppercase V' },\n 87: { name: 'uppercase W' },\n 88: { name: 'uppercase X' },\n 89: { name: 'uppercase Y' },\n 90: { name: 'uppercase Z' },\n 91: { name: 'left square bracket' },\n 92: { name: 'backslash' },\n 93: { name: 'right square bracket' },\n 94: { name: 'caret' },\n 95: { name: 'underscore' },\n 96: { name: 'grave accent' },\n 97: { name: 'lowercase a' },\n 98: { name: 'lowercase b' },\n 99: { name: 'lowercase c' },\n 100: { name: 'lowercase d' },\n 101: { name: 'lowercase e' },\n 102: { name: 'lowercase f' },\n 103: { name: 'lowercase g' },\n 104: { name: 'lowercase h' },\n 105: { name: 'lowercase i' },\n 106: { name: 'lowercase j' },\n 107: { name: 'lowercase k' },\n 108: { name: 'lowercase l' },\n 109: { name: 'lowercase m' },\n 110: { name: 'lowercase n' },\n 111: { name: 'lowercase o' },\n 112: { name: 'lowercase p' },\n 113: { name: 'lowercase q' },\n 114: { name: 'lowercase r' },\n 115: { name: 'lowercase s' },\n 116: { name: 'lowercase t' },\n 117: { name: 'lowercase u' },\n 118: { name: 'lowercase v' },\n 119: { name: 'lowercase w' },\n 120: { name: 'lowercase x' },\n 121: { name: 'lowercase y' },\n 122: { name: 'lowercase z' },\n 123: { name: 'left curly brace' },\n 124: { name: 'vertical bar' },\n 125: { name: 'right curly brace' },\n 126: { name: 'tilde' },\n 127: { name: 'delete (rubout)' }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['chevron-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dropDownChevron.vue?vue&type=template&id=29bdb7bf&scoped=true&\"\nimport script from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29bdb7bf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['clear-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./clear.vue?vue&type=template&id=69060e4e&scoped=true&\"\nimport script from \"./clear.vue?vue&type=script&lang=js&\"\nexport * from \"./clear.vue?vue&type=script&lang=js&\"\nimport style0 from \"./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69060e4e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44b0b048&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44b0b048\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['checkbox-container', { 'checked': _vm.checked }, {'disabled': _vm.disabled}],on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.checked),expression:\"!checked\"}],staticClass:\"unchecked\"}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && !_vm.disabled),expression:\"checked && !disabled\"}],attrs:{\"src\":_vm.theme === 'light'\n ? require('@/assets/images/checkbox_checked_light.svg')\n : require('@/assets/images/checkbox_checked.svg')}}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && _vm.disabled),expression:\"checked && disabled\"}],attrs:{\"src\":require('@/assets/images/checkbox_checked_disabled.svg')}}),(_vm.label)?_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=0dd86013&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0dd86013\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"rounded-bg\"},[_c('div',{ref:\"header-container\",staticClass:\"header-container\"},[_c('div',_vm._l((_vm.header),function(th,index){return _c('div',{key:index,staticClass:\"fixed-header\",style:({ width: ((th.width) + \"px\") })},[_vm._v(\" \"+_vm._s(th.name)+\" \")])}),0)]),_c('div',{ref:\"table-container\",staticClass:\"table-container\",on:{\"scroll\":_vm.onScrollTable}},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('thead',[_c('tr',_vm._l((_vm.columns),function(th,index){return _c('th',{key:index,ref:\"th\",refInFor:true},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(_vm._s(th))])])}),0)]),_c('tbody',_vm._l((_vm.currentPageData.count),function(rowIndex){return _c('tr',{key:rowIndex},_vm._l((_vm.columns),function(col,colIndex){return _c('td',{key:colIndex},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(\" \"+_vm._s(_vm.dataSet[col][rowIndex - 1 + _vm.currentPageData.start])+\" \")])])}),0)}),0)])])]),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-footer-count\"},[_vm._v(\" \"+_vm._s(_vm.rowCount)+\" \"+_vm._s(_vm.rowCount === 1 ? 'row' : 'rows')+\" retrieved \"),(_vm.preview)?_c('span',[_vm._v(\"for preview\")]):_vm._e(),(_vm.time)?_c('span',[_vm._v(\"in \"+_vm._s(_vm.time))]):_vm._e()]),_c('pager',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pageCount > 1),expression:\"pageCount > 1\"}],attrs:{\"page-count\":_vm.pageCount},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('paginate',{attrs:{\"page-count\":_vm.pageCount,\"page-range\":5,\"margin-pages\":1,\"prev-text\":_vm.chevron,\"next-text\":_vm.chevron,\"no-li-surround\":true,\"container-class\":\"paginator-continer\",\"page-link-class\":\"paginator-page-link\",\"active-class\":\"paginator-active-page\",\"break-view-link-class\":\"paginator-break\",\"next-link-class\":\"paginator-next\",\"prev-link-class\":\"paginator-prev\",\"disabled-class\":\"paginator-disabled\"},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pager.vue?vue&type=template&id=658886c7&scoped=true&\"\nimport script from \"./Pager.vue?vue&type=script&lang=js&\"\nexport * from \"./Pager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"658886c7\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=115cb541&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"115cb541\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"logsContainer\",staticClass:\"logs-container\"},_vm._l((_vm.messages),function(msg,index){return _c('div',{key:index,staticClass:\"msg\"},[(msg.type === 'error')?_c('img',{attrs:{\"src\":require('@/assets/images/error.svg')}}):_vm._e(),(msg.type === 'info')?_c('img',{attrs:{\"src\":require('@/assets/images/info.svg'),\"width\":\"20px\"}}):_vm._e(),(msg.type === 'success')?_c('img',{attrs:{\"src\":require('@/assets/images/success.svg')}}):_vm._e(),(msg.type === 'loading')?_c('loading-indicator',{attrs:{\"progress\":msg.progress}}):_vm._e(),_c('span',{staticClass:\"msg-text\"},[_vm._v(_vm._s(_vm.serializeMessage(msg)))])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.animationClass,attrs:{\"height\":_vm.size,\"width\":_vm.size,\"viewBox\":(\"0 0 \" + _vm.size + \" \" + _vm.size)}},[_c('circle',{staticClass:\"loader-svg bg\",style:({ strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}}),_c('circle',{staticClass:\"loader-svg front\",style:({ strokeDasharray: _vm.circleProgress, strokeDashoffset: _vm.offset, strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingIndicator.vue?vue&type=template&id=62096452&scoped=true&\"\nimport script from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62096452\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=1c9f27dc&scoped=true&\"\nimport script from \"./Logs.vue?vue&type=script&lang=js&\"\nexport * from \"./Logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c9f27dc\",\n null\n \n)\n\nexport default component.exports","export default {\n getPeriod (start, end) {\n const diff = end.getTime() - start.getTime()\n const seconds = diff / 1000\n return seconds.toFixed(3) + 's'\n },\n\n debounce (func, ms) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(() => func.apply(this, arguments), ms)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=68ef9d6c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68ef9d6c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DbUploader.vue?vue&type=template&id=eefa30c0&scoped=true&\"\nimport script from \"./DbUploader.vue?vue&type=script&lang=js&\"\nexport * from \"./DbUploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eefa30c0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./export.vue?vue&type=template&id=15bea4a0&scoped=true&\"\nimport script from \"./export.vue?vue&type=script&lang=js&\"\nexport * from \"./export.vue?vue&type=script&lang=js&\"\nimport style0 from \"./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15bea4a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"\\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\\n 1.77485 15.1649 2.59985\\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\\n \",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"}})])])]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Add new table from CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./addTable.vue?vue&type=template&id=0b825a18&scoped=true&\"\nimport script from \"./addTable.vue?vue&type=script&lang=js&\"\nexport * from \"./addTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b825a18\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3fcc3d82&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fcc3d82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"tabs\"}},[(_vm.tabs.length > 0)?_c('div',{attrs:{\"id\":\"tabs-header\"}},_vm._l((_vm.tabs),function(tab,index){return _c('div',{key:index,class:[{'tab-selected': (tab.id === _vm.selectedIndex)}, 'tab'],on:{\"click\":function($event){return _vm.selectTab(tab.id)}}},[_c('div',{staticClass:\"tab-name\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!tab.isSaved),expression:\"!tab.isSaved\"}],staticClass:\"star\"},[_vm._v(\"*\")]),(tab.name)?_c('span',[_vm._v(_vm._s(tab.name))]):_c('span',{staticClass:\"tab-untitled\"},[_vm._v(_vm._s(tab.tempName))])]),_c('div',[_c('close-icon',{staticClass:\"close-icon\",attrs:{\"size\":10},on:{\"click\":function($event){return _vm.beforeCloseTab(index)}}})],1)])}),0):_vm._e(),_vm._l((_vm.tabs),function(tab,index){return _c('tab',{key:tab.id,attrs:{\"id\":tab.id,\"init-name\":tab.name,\"init-query\":tab.query,\"init-view-options\":tab.viewOptions,\"init-view-type\":tab.viewType,\"is-predefined\":tab.isPredefined,\"tab-index\":index}})}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tabs.length === 0),expression:\"tabs.length === 0\"}],attrs:{\"id\":\"start-guide\"}},[_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" new inquiry from scratch or open one from \"),_c('router-link',{staticClass:\"link\",attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")])],1),_c('modal',{attrs:{\"name\":\"close-warn\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Close tab \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" You have unsaved changes. Save changes in \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" before closing? \")]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.closeTab(_vm.closingTabIndex)}}},[_vm._v(\" Close without saving \")]),_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":function($event){return _vm.saveAndClose(_vm.closingTabIndex)}}},[_vm._v(\"Save and close\")])])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}],staticClass:\"tab-content-container\"},[_c('splitpanes',{staticClass:\"query-results-splitter\",attrs:{\"horizontal\":\"\",\"before\":{ size: 50, max: 100 },\"after\":{ size: 50, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('div',{staticClass:\"above\",attrs:{\"id\":'above-' + _vm.tabIndex}})]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('div',{ref:\"bottomPane\",staticClass:\"bottomPane\",attrs:{\"id\":'bottom-'+ _vm.tabIndex}})]},proxy:true}])}),_c('div',{staticClass:\"hidden-part\",attrs:{\"id\":'hidden-'+ _vm.tabIndex}}),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.sqlEditor) + \"-\" + _vm.tabIndex)}},[_c('sql-editor',{ref:\"sqlEditor\",attrs:{\"is-getting-results\":_vm.isGettingResults},on:{\"switchTo\":function($event){return _vm.onSwitchView('sqlEditor', $event)},\"run\":_vm.execute},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.table) + \"-\" + _vm.tabIndex)}},[_c('run-result',{attrs:{\"result\":_vm.result,\"is-getting-results\":_vm.isGettingResults,\"error\":_vm.error,\"time\":_vm.time},on:{\"switchTo\":function($event){return _vm.onSwitchView('table', $event)}}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.dataView) + \"-\" + _vm.tabIndex)}},[_c('data-view',{ref:\"dataView\",attrs:{\"data-source\":_vm.result,\"init-options\":_vm.initViewOptions,\"init-mode\":_vm.initViewType},on:{\"switchTo\":function($event){return _vm.onSwitchView('dataView', $event)},\"update\":_vm.onDataViewUpdate}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sql-editor-panel\"},[_c('div',{staticClass:\"codemirror-container\"},[_c('codemirror',{ref:\"cm\",attrs:{\"options\":_vm.cmOptions},on:{\"changes\":_vm.onChange},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"sqlEditor\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"disabled\":_vm.runDisabled,\"loading\":_vm.isGettingResults,\"tooltip\":\"Run SQL query\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.$emit('run')}}},[_c('run-icon',{attrs:{\"disabled\":_vm.runDisabled}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n tabs: [],\n currentTab: null,\n currentTabId: null,\n untitledLastIndex: 0,\n predefinedInquiries: [],\n db: null\n}\n","import Vue from 'vue'\n\nexport default {\n setDb (state, db) {\n if (state.db) {\n state.db.shutDown()\n }\n state.db = db\n },\n\n updateTab (state, { index, name, id, query, viewType, viewOptions, isSaved }) {\n const tab = state.tabs[index]\n const oldId = tab.id\n\n if (id && state.currentTabId === oldId) {\n state.currentTabId = id\n }\n\n if (id) { tab.id = id }\n if (name) { tab.name = name }\n if (query) { tab.query = query }\n if (viewType) { tab.viewType = viewType }\n if (viewOptions) { tab.viewOptions = viewOptions }\n if (isSaved !== undefined) { tab.isSaved = isSaved }\n if (isSaved) {\n // Saved inquiry is not predefined\n delete tab.isPredefined\n }\n\n Vue.set(state.tabs, index, tab)\n },\n\n deleteTab (state, index) {\n // If closing tab is the current opened\n if (state.tabs[index].id === state.currentTabId) {\n if (index < state.tabs.length - 1) {\n state.currentTabId = state.tabs[index + 1].id\n } else if (index > 0) {\n state.currentTabId = state.tabs[index - 1].id\n } else {\n state.currentTabId = null\n state.currentTab = null\n state.untitledLastIndex = 0\n }\n }\n state.tabs.splice(index, 1)\n },\n setCurrentTabId (state, id) {\n state.currentTabId = id\n },\n setCurrentTab (state, tab) {\n state.currentTab = tab\n },\n updatePredefinedInquiries (state, inquiries) {\n state.predefinedInquiries = Array.isArray(inquiries) ? inquiries : [inquiries]\n }\n}\n","import { nanoid } from 'nanoid'\n\nexport default {\n async addTab ({ state }, data) {\n const tab = data ? JSON.parse(JSON.stringify(data)) : {}\n // If no data then create a new blank one...\n // No data.id means to create new tab, but not blank,\n // e.g. with 'select * from csv_import' inquiry after csv import\n if (!data || !data.id) {\n tab.id = nanoid()\n tab.name = null\n tab.tempName = state.untitledLastIndex\n ? `Untitled ${state.untitledLastIndex}`\n : 'Untitled'\n tab.viewType = 'chart'\n tab.viewOptions = undefined\n tab.isSaved = false\n } else {\n tab.isSaved = true\n }\n\n // add new tab only if was not already opened\n if (!state.tabs.some(openedTab => openedTab.id === tab.id)) {\n state.tabs.push(tab)\n if (!tab.name) {\n state.untitledLastIndex += 1\n }\n }\n\n return tab.id\n }\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport state from '@/store/state'\nimport mutations from '@/store/mutations'\nimport actions from '@/store/actions'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state,\n mutations,\n actions\n})\n","import CM from 'codemirror'\nimport 'codemirror/addon/hint/show-hint.js'\nimport 'codemirror/addon/hint/sql-hint.js'\nimport store from '@/store'\n\nexport function getHints (cm, options) {\n const token = cm.getTokenAt(cm.getCursor()).string.toUpperCase()\n const result = CM.hint.sql(cm, options)\n // Don't show the hint if there is only one option\n // and the token is already completed with this option\n if (result.list.length === 1 && result.list[0].text.toUpperCase() === token) {\n result.list = []\n }\n return result\n}\n\nconst hintOptions = {\n get tables () {\n const tables = {}\n if (store.state.db.schema) {\n store.state.db.schema.forEach(table => {\n tables[table.name] = table.columns.map(column => column.name)\n })\n }\n return tables\n },\n get defaultTable () {\n const schema = store.state.db.schema\n return schema && schema.length === 1 ? schema[0].name : null\n },\n completeSingle: false,\n completeOnSingleClick: true,\n alignWithWord: false\n}\n\nexport function showHintOnDemand (editor) {\n CM.showHint(editor, getHints, hintOptions)\n}\n\nexport default function showHint (editor) {\n // Don't show autocomplete after a space or semicolon or in string literals\n const token = editor.getTokenAt(editor.getCursor())\n const ch = token.string.slice(-1)\n const tokenType = token.type\n if (tokenType === 'string' || !ch || ch === ' ' || ch === ';') {\n return\n }\n\n CM.showHint(editor, getHints, hintOptions)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"side-tool-bar\"},[_c('icon-button',{attrs:{\"active\":_vm.panel === 'sqlEditor',\"tooltip\":\"Switch panel to SQL editor\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'sqlEditor')}}},[_c('sql-editor-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'table',\"tooltip\":\"Switch panel to result set\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'table')}}},[_c('table-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'dataView',\"tooltip\":\"Switch panel to data view\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'dataView')}}},[_c('data-view-icon')],1),(_vm.$slots.default)?_c('div',{staticClass:\"side-tool-bar-divider\"}):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['icon-btn', { active: _vm.active }, { disabled: _vm.disabled }],on:{\"click\":_vm.onClick,\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('div',{staticClass:\"icon\"},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"icon-in-progress\"},[_c('loading-indicator')],1),(_vm.tooltip)?_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IconButton.vue?vue&type=template&id=0c2b486e&scoped=true&\"\nimport script from \"./IconButton.vue?vue&type=script&lang=js&\"\nexport * from \"./IconButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c2b486e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./table.vue?vue&type=template&id=66df4be4&\"\nimport script from \"./table.vue?vue&type=script&lang=js&\"\nexport * from \"./table.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"19\",\"viewBox\":\"0 0 18 19\",\"fill\":\"none\"}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"d\":\"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z\",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\",\"transform\":\"translate(0 0.0134277)\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sqlEditor.vue?vue&type=template&id=56d6f4f2&\"\nimport script from \"./sqlEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./sqlEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z\",\"fill\":\"#A2B1C6\"}}),_c('circle',{attrs:{\"cx\":\"5.50049\",\"cy\":\"6.00339\",\"r\":\"1.5\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dataView.vue?vue&type=template&id=8c6d3ebe&\"\nimport script from \"./dataView.vue?vue&type=script&lang=js&\"\nexport * from \"./dataView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideToolBar.vue?vue&type=template&id=3b6366bb&scoped=true&\"\nimport script from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b6366bb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"12\",\"height\":\"13\",\"viewBox\":\"0 0 12 13\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./run.vue?vue&type=template&id=6d9e3fdd&\"\nimport script from \"./run.vue?vue&type=script&lang=js&\"\nexport * from \"./run.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c84dd870&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c84dd870\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-view-panel\"},[_c('div',{staticClass:\"data-view-panel-content\"},[_c(_vm.mode,{ref:\"viewComponent\",tag:\"component\",attrs:{\"init-options\":_vm.mode === _vm.initMode ? _vm.initOptions : undefined,\"data-sources\":_vm.dataSource,\"import-to-png-enabled\":_vm.importToPngEnabled},on:{\"update:importToPngEnabled\":function($event){_vm.importToPngEnabled=$event},\"update:import-to-png-enabled\":function($event){_vm.importToPngEnabled=$event},\"loadingImageCompleted\":function($event){_vm.loadingImage = false},\"update\":function($event){return _vm.$emit('update')}}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"dataView\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"active\":_vm.mode === 'chart',\"tooltip\":\"Switch to chart\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'chart'}}},[_c('chart-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.mode === 'pivot',\"tooltip\":\"Switch to pivot\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'pivot'}}},[_c('pivot-icon')],1),_c('div',{staticClass:\"side-tool-bar-divider\"}),_c('icon-button',{attrs:{\"disabled\":!_vm.importToPngEnabled || _vm.loadingImage,\"loading\":_vm.loadingImage,\"tooltip\":\"Save as PNG image\",\"tooltip-position\":\"top-left\"},on:{\"click\":_vm.saveAsPng}},[_c('png-icon')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"chartContainer\",staticClass:\"chart-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources && _vm.visible),expression:\"!dataSources && visible\"}],staticClass:\"warning chart-warning\"},[_vm._v(\" There is no data to build a chart. Run your SQL query and make sure the result is not empty. \")]),_c('PlotlyEditor',{ref:\"plotlyEditor\",staticClass:\"chart\",style:({ height: !_vm.dataSources ? 'calc(100% - 40px)' : '100%' }),attrs:{\"data\":_vm.state.data,\"layout\":_vm.state.layout,\"frames\":_vm.state.frames,\"config\":{ editable: true, displaylogo: false, modeBarButtonsToRemove: ['toImage'] },\"dataSources\":_vm.dataSources,\"dataSourceOptions\":_vm.dataSourceOptions,\"plotly\":_vm.plotly,\"useResizeHandler\":true,\"debug\":true,\"advancedTraceTypeSelector\":true},on:{\"onUpdate\":_vm.update,\"onRender\":_vm.onRender}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dereference from 'react-chart-editor/lib/lib/dereference'\n\nexport function getOptionsFromDataSources (dataSources) {\n if (!dataSources) {\n return []\n }\n\n return Object.keys(dataSources).map(name => ({\n value: name,\n label: name\n }))\n}\n\nexport function getOptionsForSave (state, dataSources) {\n // we don't need to save the data, only settings\n // so we modify state.data using dereference\n const stateCopy = JSON.parse(JSON.stringify(state))\n const emptySources = {}\n for (const key in dataSources) {\n emptySources[key] = []\n }\n dereference(stateCopy.data, emptySources)\n return stateCopy\n}\n\nexport default {\n getOptionsFromDataSources,\n getOptionsForSave\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31be4117&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31be4117\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources),expression:\"!dataSources\"}],staticClass:\"warning pivot-warning\"},[_vm._v(\" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. \")]),_c('pivot-ui',{attrs:{\"key-names\":_vm.columns},on:{\"update\":function($event){return _vm.$emit('update')},\"loadingCustomChartImageCompleted\":function($event){return _vm.$emit('loadingImageCompleted')}},model:{value:(_vm.pivotOptions),callback:function ($$v) {_vm.pivotOptions=$$v},expression:\"pivotOptions\"}}),_c('div',{ref:\"pivotOutput\",staticClass:\"pivot-output\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-ui\"},[_c('div',{class:{collapsed: _vm.collapsed}},[_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Columns\")]),_c('multiselect',{staticClass:\"sqliteviz-select cols\",attrs:{\"options\":_vm.colsToSelect,\"disabled\":_vm.colsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.colsToSelect.length,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.cols),callback:function ($$v) {_vm.cols=$$v},expression:\"cols\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose columns\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"col\"},model:{value:(_vm.colOrder),callback:function ($$v) {_vm.colOrder=$$v},expression:\"colOrder\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Rows\")]),_c('multiselect',{staticClass:\"sqliteviz-select rows\",attrs:{\"options\":_vm.rowsToSelect,\"disabled\":_vm.rowsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.rowsToSelect.length,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.rows),callback:function ($$v) {_vm.rows=$$v},expression:\"rows\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose rows\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"row\"},model:{value:(_vm.rowOrder),callback:function ($$v) {_vm.rowOrder=$$v},expression:\"rowOrder\"}})],1),_c('div',{staticClass:\"row aggregator\"},[_c('label',[_vm._v(\"Aggregator\")]),_c('multiselect',{staticClass:\"sqliteviz-select short aggregator\",attrs:{\"options\":_vm.aggregators,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a function\"},model:{value:(_vm.aggregator),callback:function ($$v) {_vm.aggregator=$$v},expression:\"aggregator\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 0),expression:\"valCount > 0\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose an argument\"},model:{value:(_vm.val1),callback:function ($$v) {_vm.val1=$$v},expression:\"val1\"}}),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 1),expression:\"valCount > 1\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a second argument\"},model:{value:(_vm.val2),callback:function ($$v) {_vm.val2=$$v},expression:\"val2\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"View\")]),_c('multiselect',{staticClass:\"sqliteviz-select short renderer\",attrs:{\"options\":_vm.renderers,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"allow-empty\":false,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a view\"},model:{value:(_vm.renderer),callback:function ($$v) {_vm.renderer=$$v},expression:\"renderer\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2)],1)]),_c('span',{staticClass:\"switcher\",on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[_vm._v(\" \"+_vm._s(_vm.collapsed ? 'Show pivot settings' : 'Hide pivot settings')+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['pivot-sort-btn', _vm.direction],on:{\"click\":_vm.changeSorting}},[_vm._v(\" \"+_vm._s(_vm.value.includes('key') ? 'key' : 'value')+\" \"),_c('sort-icon',{staticClass:\"sort-icon\",attrs:{\"horizontal\":_vm.direction === 'col',\"asc\":_vm.value.includes('a_to_z')}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['sort-icon', { horizontal: _vm.horizontal }, { asc: _vm.asc }],attrs:{\"width\":\"6\",\"height\":\"12\",\"viewBox\":\"0 0 6 12\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z\",\"fill\":\"#506784\"}}),_c('path',{attrs:{\"d\":\"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z\",\"fill\":\"#506784\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sort.vue?vue&type=template&id=28a29e7a&scoped=true&\"\nimport script from \"./sort.vue?vue&type=script&lang=js&\"\nexport * from \"./sort.vue?vue&type=script&lang=js&\"\nimport style0 from \"./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28a29e7a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PivotSortBtn.vue?vue&type=template&id=e3801f08&scoped=true&\"\nimport script from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3801f08\",\n null\n \n)\n\nexport default component.exports","import $ from 'jquery'\nimport 'pivottable'\nimport 'pivottable/dist/export_renderers.js'\nimport 'pivottable/dist/plotly_renderers.js'\n\nexport const zeroValAggregators = [\n 'Count',\n 'Count as Fraction of Total',\n 'Count as Fraction of Rows',\n 'Count as Fraction of Columns'\n]\n\nexport const twoValAggregators = [\n 'Sum over Sum',\n '80% Upper Bound',\n '80% Lower Bound'\n]\n\nexport function _getDataSources (pivotData) {\n const rowKeys = pivotData.getRowKeys()\n const colKeys = pivotData.getColKeys()\n\n const dataSources = {\n 'Column keys': colKeys.map(colKey => colKey.join('-')),\n 'Row keys': rowKeys.map(rowKey => rowKey.join('-'))\n }\n\n const dataSourcesByRows = {}\n const dataSourcesByCols = {}\n\n const rowAttrs = pivotData.rowAttrs.join('-')\n const colAttrs = pivotData.colAttrs.join('-')\n\n colKeys.forEach(colKey => {\n const sourceColKey = colAttrs + ':' + colKey.join('-')\n dataSourcesByCols[sourceColKey] = []\n rowKeys.forEach(rowKey => {\n const value = pivotData.getAggregator(rowKey, colKey).value()\n dataSourcesByCols[sourceColKey].push(value)\n const sourceRowKey = rowAttrs + ':' + rowKey.join('-')\n if (!dataSourcesByRows[sourceRowKey]) {\n dataSourcesByRows[sourceRowKey] = []\n }\n dataSourcesByRows[sourceRowKey].push(value)\n })\n })\n\n return Object.assign(dataSources, dataSourcesByCols, dataSourcesByRows)\n}\n\nfunction customChartRenderer (data, options) {\n options.customChartComponent.dataSources = _getDataSources(data)\n options.customChartComponent.$mount()\n\n return $(options.customChartComponent.$el)\n}\n\n$.extend(\n $.pivotUtilities.renderers,\n $.pivotUtilities.export_renderers,\n $.pivotUtilities.plotly_renderers,\n { 'Custom chart': customChartRenderer }\n)\n\nexport const renderers = Object.keys($.pivotUtilities.renderers).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.renderers[key]\n }\n})\n\nexport const aggregators = Object.keys($.pivotUtilities.aggregators).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.aggregators[key]\n }\n})\n","\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6d818ae0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d818ae0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ca17e020&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ca17e020\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M8.41943 16V10H10.4194V16H8.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M2.41943 16L2.41943 10H4.41943V16H2.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M11.4194 16V7H13.4194V16H11.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.4194 16V8H16.4194V16H14.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M7.41943 12V16H5.41943V12H7.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chart.vue?vue&type=template&id=16c3eaec&\"\nimport script from \"./chart.vue?vue&type=script&lang=js&\"\nexport * from \"./chart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M6.41943 0H18.4194V4H6.41943V0Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 6H4.41943V18H0.419434V6Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 0H4.41943V4H0.419434V0Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pivot.vue?vue&type=template&id=87050fe2&\"\nimport script from \"./pivot.vue?vue&type=script&lang=js&\"\nexport * from \"./pivot.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./png.vue?vue&type=template&id=e31e3054&\"\nimport script from \"./png.vue?vue&type=script&lang=js&\"\nexport * from \"./png.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=513fdbc5&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"513fdbc5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"runResultPanel\",staticClass:\"run-result-panel\"},[_c('div',{staticClass:\"run-result-panel-content\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === null && !_vm.isGettingResults && !_vm.error),expression:\"result === null && !isGettingResults && !error\"}],staticClass:\"table-preview result-before\"},[_vm._v(\" Run your query and get results here \")]),(_vm.isGettingResults)?_c('div',{staticClass:\"table-preview result-in-progress\"},[_c('loading-indicator',{attrs:{\"size\":30}}),_vm._v(\" Fetching results... \")],1):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === undefined && !_vm.isGettingResults && !_vm.error),expression:\"result === undefined && !isGettingResults && !error\"}],staticClass:\"table-preview result-empty\"},[_vm._v(\" No rows retrieved according to your query \")]),(_vm.error)?_c('logs',{attrs:{\"messages\":[_vm.error]}}):_vm._e(),(_vm.result)?_c('sql-table',{staticClass:\"straight\",attrs:{\"data-set\":_vm.result,\"time\":_vm.time,\"pageSize\":_vm.pageSize}}):_vm._e()],1),_c('side-tool-bar',{attrs:{\"panel\":\"table\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RunResult.vue?vue&type=template&id=73e5054b&scoped=true&\"\nimport script from \"./RunResult.vue?vue&type=script&lang=js&\"\nexport * from \"./RunResult.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73e5054b\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=24244834&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24244834\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=75c85da5&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=de063d86&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"de063d86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showedInquiries.length === 0)?_c('div',{attrs:{\"id\":\"start-guide\"}},[_vm._v(\" You don't have saved inquiries so far. \"),_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" the one from scratch or \"),_c('span',{staticClass:\"link\",on:{\"click\":_vm.importInquiries}},[_vm._v(\"import\")]),_vm._v(\" from a file. \")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showedInquiries.length > 0),expression:\"showedInquiries.length > 0\"}],ref:\"my-inquiries-content\",attrs:{\"id\":\"my-inquiries-content\"}},[_c('div',{attrs:{\"id\":\"my-inquiries-toolbar\"}},[_c('div',{attrs:{\"id\":\"toolbar-buttons\"}},[_c('button',{staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-import\"},on:{\"click\":_vm.importInquiries}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > 0),expression:\"selectedInquiriesCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-export\"},on:{\"click\":function($event){return _vm.exportSelectedInquiries()}}},[_vm._v(\" Export \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedNotPredefinedCount > 0),expression:\"selectedNotPredefinedCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-delete\"},on:{\"click\":function($event){return _vm.showDeleteDialog(_vm.selectedInquiriesIds)}}},[_vm._v(\" Delete \")])]),_c('div',{attrs:{\"id\":\"toolbar-search\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search inquiry by name\",\"width\":\"300px\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1)]),_c('div',{staticClass:\"rounded-bg\"},[_c('div',{staticClass:\"header-container\"},[_c('div',[_c('div',{ref:\"name-th\",staticClass:\"fixed-header\"},[_c('check-box',{ref:\"mainCheckBox\",attrs:{\"theme\":\"light\"},on:{\"click\":_vm.toggleSelectAll}}),_c('div',{staticClass:\"name-th\"},[_vm._v(\"Name\")])],1),_c('div',{staticClass:\"fixed-header\"},[_vm._v(\" Created at \")])])]),_c('div',{staticClass:\"table-container\",style:({ 'max-height': (_vm.maxTableHeight + \"px\") })},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('tbody',_vm._l((_vm.showedInquiries),function(inquiry,index){return _c('tr',{key:inquiry.id,on:{\"click\":function($event){return _vm.openInquiry(index)}}},[_c('td',{ref:\"name-td\",refInFor:true},[_c('div',{staticClass:\"cell-data\"},[_c('check-box',{ref:\"rowCheckBox\",refInFor:true,attrs:{\"init\":_vm.selectAll || _vm.selectedInquiriesIds.has(inquiry.id)},on:{\"click\":function($event){return _vm.toggleRow($event, inquiry.id)}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(inquiry.name))]),(inquiry.isPredefined)?_c('div',{staticClass:\"badge\",on:{\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_vm._v(\" Predefined \"),_c('span',{ref:\"tooltip\",refInFor:true,staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. \")])]):_vm._e()],1)]),_c('td',[_c('div',{staticClass:\"second-column\"},[_c('div',{staticClass:\"date-container\"},[_vm._v(_vm._s(_vm._f(\"date\")(inquiry.createdAt)))]),_c('div',{staticClass:\"icons-container\"},[(!inquiry.isPredefined)?_c('rename-icon',{on:{\"click\":function($event){return _vm.showRenameDialog(inquiry.id)}}}):_vm._e(),_c('copy-icon',{on:{\"click\":function($event){return _vm.duplicateInquiry(index)}}}),_c('export-icon',{attrs:{\"tooltip\":\"Export inquiry to file\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.exportToFile([inquiry], ((inquiry.name) + \".json\"))}}}),(!inquiry.isPredefined)?_c('delete-icon',{on:{\"click\":function($event){_vm.showDeleteDialog((new Set()).add(inquiry.id))}}}):_vm._e()],1)])])])}),0)])])])]),_c('modal',{attrs:{\"name\":\"rename\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Rename inquiry \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('rename')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"New inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('rename')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.renameInquiry}},[_vm._v(\"Rename\")])])]),_c('modal',{attrs:{\"name\":\"delete\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Delete \"+_vm._s(_vm.deleteGroup ? 'inquiries' : 'inquiry')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('delete')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" \"+_vm._s(_vm.deleteDialogMsg)+\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > _vm.selectedNotPredefinedCount),expression:\"selectedInquiriesCount > selectedNotPredefinedCount\"}],attrs:{\"id\":\"note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries you've selected won't be deleted \")])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('delete')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.deleteInquiry}},[_vm._v(\"Delete\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Rename inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./rename.vue?vue&type=template&id=075cb800&scoped=true&\"\nimport script from \"./rename.vue?vue&type=script&lang=js&\"\nexport * from \"./rename.vue?vue&type=script&lang=js&\"\nimport style0 from \"./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"075cb800\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Duplicate inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./copy.vue?vue&type=template&id=3a61cb73&scoped=true&\"\nimport script from \"./copy.vue?vue&type=script&lang=js&\"\nexport * from \"./copy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a61cb73\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, 'top-left')},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Delete inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./delete.vue?vue&type=template&id=581e8819&scoped=true&\"\nimport script from \"./delete.vue?vue&type=script&lang=js&\"\nexport * from \"./delete.vue?vue&type=script&lang=js&\"\nimport style0 from \"./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"581e8819\",\n null\n \n)\n\nexport default component.exports","export default {\n _migrate (installedVersion, inquiries) {\n if (installedVersion === 1) {\n inquiries.forEach(inquire => {\n inquire.viewType = 'chart'\n inquire.viewOptions = inquire.chart\n delete inquire.chart\n })\n return inquiries\n }\n }\n}\n","import { nanoid } from 'nanoid'\nimport fu from '@/lib/utils/fileIo'\nimport migration from './_migrations'\n\nconst migrate = migration._migrate\n\nexport default {\n version: 2,\n getStoredInquiries () {\n let myInquiries = JSON.parse(localStorage.getItem('myInquiries'))\n if (!myInquiries) {\n const oldInquiries = localStorage.getItem('myQueries')\n if (oldInquiries) {\n myInquiries = migrate(1, JSON.parse(oldInquiries))\n this.updateStorage(myInquiries)\n return myInquiries\n }\n return []\n }\n\n return (myInquiries && myInquiries.inquiries) || []\n },\n\n duplicateInquiry (baseInquiry) {\n const newInquiry = JSON.parse(JSON.stringify(baseInquiry))\n newInquiry.name = newInquiry.name + ' Copy'\n newInquiry.id = nanoid()\n newInquiry.createdAt = new Date()\n delete newInquiry.isPredefined\n\n return newInquiry\n },\n\n isTabNeedName (inquiryTab) {\n const isFromScratch = !inquiryTab.initName\n return inquiryTab.isPredefined || isFromScratch\n },\n\n save (inquiryTab, newName) {\n const value = {\n id: inquiryTab.isPredefined ? nanoid() : inquiryTab.id,\n query: inquiryTab.query,\n viewType: inquiryTab.$refs.dataView.mode,\n viewOptions: inquiryTab.$refs.dataView.getOptionsForSave(),\n name: newName || inquiryTab.initName\n }\n\n // Get inquiries from local storage\n const myInquiries = this.getStoredInquiries()\n\n // Set createdAt\n if (newName) {\n value.createdAt = new Date()\n } else {\n var inquiryIndex = myInquiries.findIndex(oldInquiry => oldInquiry.id === inquiryTab.id)\n value.createdAt = myInquiries[inquiryIndex].createdAt\n }\n\n // Insert in inquiries list\n if (newName) {\n myInquiries.push(value)\n } else {\n myInquiries[inquiryIndex] = value\n }\n\n // Save to local storage\n this.updateStorage(myInquiries)\n return value\n },\n\n updateStorage (inquiries) {\n localStorage.setItem('myInquiries', JSON.stringify({ version: this.version, inquiries }))\n },\n\n serialiseInquiries (inquiryList) {\n const preparedData = JSON.parse(JSON.stringify(inquiryList))\n preparedData.forEach(inquiry => delete inquiry.isPredefined)\n return JSON.stringify({ version: this.version, inquiries: preparedData }, null, 4)\n },\n\n deserialiseInquiries (str) {\n const inquiries = JSON.parse(str)\n let inquiryList = []\n if (!inquiries.version) {\n // Turn data into array if they are not\n inquiryList = !Array.isArray(inquiries) ? [inquiries] : inquiries\n inquiryList = migrate(1, inquiryList)\n } else {\n inquiryList = inquiries.inquiries || []\n }\n\n // Generate new ids if they are the same as existing inquiries\n inquiryList.forEach(inquiry => {\n const allInquiriesIds = this.getStoredInquiries().map(inquiry => inquiry.id)\n if (allInquiriesIds.includes(inquiry.id)) {\n inquiry.id = nanoid()\n }\n })\n\n return inquiryList\n },\n\n importInquiries () {\n return fu.importFile()\n .then(str => {\n return this.deserialiseInquiries(str)\n })\n },\n\n async readPredefinedInquiries () {\n const res = await fu.readFile('./inquiries.json')\n const data = await res.json()\n\n if (!data.version) {\n return data.length > 0 ? migrate(1, data) : []\n } else {\n return data.inquiries\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2b039cec&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b039cec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"dbloader-container\"}},[_c('db-uploader',{attrs:{\"type\":\"illustrated\"}}),_c('div',{attrs:{\"id\":\"note\"}},[_vm._v(\" Sqliteviz is fully client-side. Your database never leaves your computer. \")]),_c('button',{staticClass:\"secondary\",attrs:{\"id\":\"skip\"},on:{\"click\":function($event){return _vm.$router.push('/workspace')}}},[_vm._v(\" Create empty database \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=0da5ae79&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=js&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0da5ae79\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('main-menu'),_c('keep-alive',{attrs:{\"include\":\"Workspace\"}},[_c('router-view',{attrs:{\"id\":\"main-view\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',[_c('div',[_c('router-link',{attrs:{\"to\":\"/workspace\"}},[_vm._v(\"Workspace\")]),_c('router-link',{attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")]),_c('a',{attrs:{\"href\":\"https://github.com/lana-k/sqliteviz/wiki\",\"target\":\"_blank\"}},[_vm._v(\"Help\")])],1),_c('div',{attrs:{\"id\":\"nav-buttons\"}},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentInquiry && _vm.$route.path === '/workspace'),expression:\"currentInquiry && $route.path === '/workspace'\"}],staticClass:\"primary\",attrs:{\"id\":\"save-btn\",\"disabled\":_vm.isSaved},on:{\"click\":_vm.checkInquiryBeforeSave}},[_vm._v(\" Save \")]),_c('button',{staticClass:\"primary\",attrs:{\"id\":\"create-btn\"},on:{\"click\":_vm.createNewInquiry}},[_vm._v(\" Create \")]),_c('app-diagnostic-info')],1),_c('modal',{attrs:{\"name\":\"save\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Save inquiry \"),_c('close-icon',{on:{\"click\":_vm.cancelSave}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isPredefined),expression:\"isPredefined\"}],attrs:{\"id\":\"save-note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. \")]),_c('text-field',{attrs:{\"label\":\"Inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":_vm.cancelSave}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.saveInquiry}},[_vm._v(\"Save\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app-info-container\"}},[_c('img',{attrs:{\"id\":\"app-info-icon\",\"src\":require('@/assets/images/info.svg')},on:{\"click\":function($event){return _vm.$modal.show('app-info')}}}),_c('modal',{attrs:{\"name\":\"app-info\",\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"400px\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" App info \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('app-info')}}})],1),_c('div',{staticClass:\"dialog-body\"},_vm._l((_vm.info),function(item,index){return _c('div',{key:index,staticClass:\"info-item\"},[_vm._v(\" \"+_vm._s(item.name)+\" \"),_c('div',{staticClass:\"divider\"}),_c('div',{staticClass:\"options\"},_vm._l((item.info),function(opt,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(opt)+\" \")])}),0)])}),0)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppDiagnosticInfo.vue?vue&type=template&id=a80fbe8a&scoped=true&\"\nimport script from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a80fbe8a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainMenu.vue?vue&type=template&id=707ebea6&scoped=true&\"\nimport script from \"./MainMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MainMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"707ebea6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=25aa04f9&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25aa04f9\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Workspace from '@/views/Main/Workspace'\nimport Inquiries from '@/views/Main/Inquiries'\nimport Welcome from '@/views/Welcome'\nimport Main from '@/views/Main'\nimport store from '@/store'\nimport database from '@/lib/database'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Welcome',\n component: Welcome\n },\n {\n path: '/',\n name: 'Main',\n component: Main,\n children: [\n {\n path: '/workspace',\n name: 'Workspace',\n component: Workspace\n },\n {\n path: '/inquiries',\n name: 'Inquiries',\n component: Inquiries\n }\n ]\n }\n]\n\nconst router = new VueRouter({\n routes\n})\n\nrouter.beforeEach(async (to, from, next) => {\n if (!store.state.db) {\n const newDb = database.getNewDatabase()\n await newDb.loadDb()\n store.commit('setDb', newDb)\n }\n next()\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\nimport store from '@/store'\nimport { VuePlugin } from 'vuera'\nimport VModal from 'vue-js-modal'\n\nimport '@/assets/styles/variables.css'\nimport '@/assets/styles/buttons.css'\nimport '@/assets/styles/tables.css'\nimport '@/assets/styles/dialogs.css'\nimport '@/assets/styles/tooltips.css'\nimport '@/assets/styles/messages.css'\nimport 'vue-multiselect/dist/vue-multiselect.min.css'\nimport '@/assets/styles/multiselect.css'\n\nif (!['localhost', '127.0.0.1'].includes(location.hostname)) {\n import('./registerServiceWorker') // eslint-disable-line no-unused-expressions\n}\n\nVue.use(VuePlugin)\nVue.use(VModal)\n\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/file.f5540c43.png\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 7d2e688..b0f4127 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return r[e]||(s=new Promise((async s=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},s=(s,r)=>{Promise.all(s.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(s)};self.define=(s,n,i)=>{r[s]||(r[s]=Promise.resolve().then((()=>{let r={};const o={uri:location.origin+s.slice(1)};return Promise.all(n.map((s=>{switch(s){case"exports":return r;case"module":return o;default:return e(s)}}))).then((e=>{const s=i(...e);return r.default||(r.default=s),r}))})))}}define("./service-worker.js",["./workbox-15dd0bab"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"Logo192x192.png",revision:"15e06927b5e6e2b55c5ae6fb783d2618"},{url:"Logo48x48.png",revision:"65270f0df7353ad8c75ba5140d6d7c6a"},{url:"Logo512x512.png",revision:"50991847b13d0d0de738dc34d15e0920"},{url:"css/app.8d40a360.css",revision:null},{url:"css/chunk-vendors.a9765fa5.css",revision:null},{url:"favicon.png",revision:"f3da3682ba8d648ebaa9e09a27875c20"},{url:"fonts/OpenSans-Bold.21b37d1a.woff2",revision:"21b37d1abf90816560781f286c7dfa90"},{url:"fonts/OpenSans-BoldItalic.95149f80.woff2",revision:"95149f80a181cfb7c63078e3f44134cb"},{url:"fonts/OpenSans-Italic.ee451d9a.woff2",revision:"ee451d9aa59d5cf65407f17971d12090"},{url:"fonts/OpenSans-Regular.8abbb9d9.woff2",revision:"8abbb9d98c0c7304060190592408ab78"},{url:"fonts/OpenSans-SemiBold.2595cae6.woff2",revision:"2595cae6483bb50cbeb0cb40e3292231"},{url:"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2",revision:"40ca91217266fa60c6e81c539a059190"},{url:"img/file.f5540c43.png",revision:"f5540c433396049050945be85ee9c4b1"},{url:"index.html",revision:"9b10376dd270b7eeefe937decc2731c9"},{url:"js/_worker.5e0dd41a.worker.js",revision:null},{url:"js/app.97da6287.js",revision:null},{url:"js/chunk-60cbf026.37d9df6c.js",revision:null},{url:"js/chunk-vendors.bb2c58c6.js",revision:null},{url:"js/sql-wasm.wasm",revision:"7b34172eda0b1fc383b6a090ccb1cc16"},{url:"manifest.webmanifest",revision:"6b085b7ef6a4cd86a1cf5ad97b0d7160"}],{})})); +if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return r[e]||(s=new Promise((async s=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},s=(s,r)=>{Promise.all(s.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(s)};self.define=(s,n,i)=>{r[s]||(r[s]=Promise.resolve().then((()=>{let r={};const o={uri:location.origin+s.slice(1)};return Promise.all(n.map((s=>{switch(s){case"exports":return r;case"module":return o;default:return e(s)}}))).then((e=>{const s=i(...e);return r.default||(r.default=s),r}))})))}}define("./service-worker.js",["./workbox-15dd0bab"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"Logo192x192.png",revision:"15e06927b5e6e2b55c5ae6fb783d2618"},{url:"Logo48x48.png",revision:"65270f0df7353ad8c75ba5140d6d7c6a"},{url:"Logo512x512.png",revision:"50991847b13d0d0de738dc34d15e0920"},{url:"css/app.ffe937ae.css",revision:null},{url:"css/chunk-vendors.a9765fa5.css",revision:null},{url:"favicon.png",revision:"f3da3682ba8d648ebaa9e09a27875c20"},{url:"fonts/OpenSans-Bold.21b37d1a.woff2",revision:"21b37d1abf90816560781f286c7dfa90"},{url:"fonts/OpenSans-BoldItalic.95149f80.woff2",revision:"95149f80a181cfb7c63078e3f44134cb"},{url:"fonts/OpenSans-Italic.ee451d9a.woff2",revision:"ee451d9aa59d5cf65407f17971d12090"},{url:"fonts/OpenSans-Regular.8abbb9d9.woff2",revision:"8abbb9d98c0c7304060190592408ab78"},{url:"fonts/OpenSans-SemiBold.2595cae6.woff2",revision:"2595cae6483bb50cbeb0cb40e3292231"},{url:"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2",revision:"40ca91217266fa60c6e81c539a059190"},{url:"img/file.f5540c43.png",revision:"f5540c433396049050945be85ee9c4b1"},{url:"index.html",revision:"51b7de9c5b9aa955ed09f1200a1d072c"},{url:"js/_worker.289a3d4b.worker.js",revision:null},{url:"js/app.6b687a75.js",revision:null},{url:"js/chunk-60cbf026.37d9df6c.js",revision:null},{url:"js/chunk-vendors.bb2c58c6.js",revision:null},{url:"js/sql-wasm.wasm",revision:"7b34172eda0b1fc383b6a090ccb1cc16"},{url:"manifest.webmanifest",revision:"6b085b7ef6a4cd86a1cf5ad97b0d7160"}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/service-worker.js.map b/service-worker.js.map index b44d69e..e49ee5d 100644 --- a/service-worker.js.map +++ b/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/b8737bb483fe5b45da9739ee606eedf0/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"Logo192x192.png\",\n \"revision\": \"15e06927b5e6e2b55c5ae6fb783d2618\"\n },\n {\n \"url\": \"Logo48x48.png\",\n \"revision\": \"65270f0df7353ad8c75ba5140d6d7c6a\"\n },\n {\n \"url\": \"Logo512x512.png\",\n \"revision\": \"50991847b13d0d0de738dc34d15e0920\"\n },\n {\n \"url\": \"css/app.8d40a360.css\",\n \"revision\": null\n },\n {\n \"url\": \"css/chunk-vendors.a9765fa5.css\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.png\",\n \"revision\": \"f3da3682ba8d648ebaa9e09a27875c20\"\n },\n {\n \"url\": \"fonts/OpenSans-Bold.21b37d1a.woff2\",\n \"revision\": \"21b37d1abf90816560781f286c7dfa90\"\n },\n {\n \"url\": \"fonts/OpenSans-BoldItalic.95149f80.woff2\",\n \"revision\": \"95149f80a181cfb7c63078e3f44134cb\"\n },\n {\n \"url\": \"fonts/OpenSans-Italic.ee451d9a.woff2\",\n \"revision\": \"ee451d9aa59d5cf65407f17971d12090\"\n },\n {\n \"url\": \"fonts/OpenSans-Regular.8abbb9d9.woff2\",\n \"revision\": \"8abbb9d98c0c7304060190592408ab78\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBold.2595cae6.woff2\",\n \"revision\": \"2595cae6483bb50cbeb0cb40e3292231\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2\",\n \"revision\": \"40ca91217266fa60c6e81c539a059190\"\n },\n {\n \"url\": \"img/file.f5540c43.png\",\n \"revision\": \"f5540c433396049050945be85ee9c4b1\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"9b10376dd270b7eeefe937decc2731c9\"\n },\n {\n \"url\": \"js/_worker.5e0dd41a.worker.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/app.97da6287.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-60cbf026.37d9df6c.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-vendors.bb2c58c6.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/sql-wasm.wasm\",\n \"revision\": \"7b34172eda0b1fc383b6a090ccb1cc16\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"6b085b7ef6a4cd86a1cf5ad97b0d7160\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAoBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,qDAY2B,CAClC,KACS,2BACK,oCAEd,KACS,yBACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,MAEd,KACS,0CACK,MAEd,KACS,uBACK,oCAEd,KACS,8CACK,oCAEd,KACS,oDACK,oCAEd,KACS,gDACK,oCAEd,KACS,iDACK,oCAEd,KACS,kDACK,oCAEd,KACS,wDACK,oCAEd,KACS,iCACK,oCAEd,KACS,sBACK,oCAEd,KACS,yCACK,MAEd,KACS,8BACK,MAEd,KACS,yCACK,MAEd,KACS,wCACK,MAEd,KACS,4BACK,oCAEd,KACS,gCACK,qCAEb"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/328c30291093b96a19214a46d94cb68d/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"Logo192x192.png\",\n \"revision\": \"15e06927b5e6e2b55c5ae6fb783d2618\"\n },\n {\n \"url\": \"Logo48x48.png\",\n \"revision\": \"65270f0df7353ad8c75ba5140d6d7c6a\"\n },\n {\n \"url\": \"Logo512x512.png\",\n \"revision\": \"50991847b13d0d0de738dc34d15e0920\"\n },\n {\n \"url\": \"css/app.ffe937ae.css\",\n \"revision\": null\n },\n {\n \"url\": \"css/chunk-vendors.a9765fa5.css\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.png\",\n \"revision\": \"f3da3682ba8d648ebaa9e09a27875c20\"\n },\n {\n \"url\": \"fonts/OpenSans-Bold.21b37d1a.woff2\",\n \"revision\": \"21b37d1abf90816560781f286c7dfa90\"\n },\n {\n \"url\": \"fonts/OpenSans-BoldItalic.95149f80.woff2\",\n \"revision\": \"95149f80a181cfb7c63078e3f44134cb\"\n },\n {\n \"url\": \"fonts/OpenSans-Italic.ee451d9a.woff2\",\n \"revision\": \"ee451d9aa59d5cf65407f17971d12090\"\n },\n {\n \"url\": \"fonts/OpenSans-Regular.8abbb9d9.woff2\",\n \"revision\": \"8abbb9d98c0c7304060190592408ab78\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBold.2595cae6.woff2\",\n \"revision\": \"2595cae6483bb50cbeb0cb40e3292231\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2\",\n \"revision\": \"40ca91217266fa60c6e81c539a059190\"\n },\n {\n \"url\": \"img/file.f5540c43.png\",\n \"revision\": \"f5540c433396049050945be85ee9c4b1\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"51b7de9c5b9aa955ed09f1200a1d072c\"\n },\n {\n \"url\": \"js/_worker.289a3d4b.worker.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/app.6b687a75.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-60cbf026.37d9df6c.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-vendors.bb2c58c6.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/sql-wasm.wasm\",\n \"revision\": \"7b34172eda0b1fc383b6a090ccb1cc16\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"6b085b7ef6a4cd86a1cf5ad97b0d7160\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAoBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,qDAY2B,CAClC,KACS,2BACK,oCAEd,KACS,yBACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,MAEd,KACS,0CACK,MAEd,KACS,uBACK,oCAEd,KACS,8CACK,oCAEd,KACS,oDACK,oCAEd,KACS,gDACK,oCAEd,KACS,iDACK,oCAEd,KACS,kDACK,oCAEd,KACS,wDACK,oCAEd,KACS,iCACK,oCAEd,KACS,sBACK,oCAEd,KACS,yCACK,MAEd,KACS,8BACK,MAEd,KACS,yCACK,MAEd,KACS,wCACK,MAEd,KACS,4BACK,oCAEd,KACS,gCACK,qCAEb"} \ No newline at end of file