@touchvue/ui 1.0.0-beta.34 → 1.0.0-beta.35-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -70
- package/es/components/article/index.d.ts +1 -1
- package/es/components/box/index.d.ts +1 -1
- package/es/components/breadcrumb/index.d.ts +1 -1
- package/es/components/button/index.d.ts +1 -1
- package/es/components/button/src/button.d.ts +1 -1
- package/es/components/calendar/index.d.ts +1 -1
- package/es/components/card/index.d.ts +1 -1
- package/es/components/cascader/index.d.ts +1 -1
- package/es/components/center-scroll/index.d.ts +1 -1
- package/es/components/checkbox/index.d.ts +1 -1
- package/es/components/checkboxes/index.d.ts +1 -1
- package/es/components/collapse/index.d.ts +1 -1
- package/es/components/datepicker/index.d.ts +1 -1
- package/es/components/daterange/index.d.ts +1 -1
- package/es/components/dialog/index.d.ts +1 -1
- package/es/components/divider/index.d.ts +1 -1
- package/es/components/ellipsis/index.d.ts +1 -1
- package/es/components/export/index.d.ts +1 -1
- package/es/components/export/src/export.vue.d.ts +1 -1
- package/es/components/fix/index.d.ts +1 -1
- package/es/components/float/index.d.ts +1 -1
- package/es/components/form/index.d.ts +1 -1
- package/es/components/gap/index.d.ts +1 -1
- package/es/components/grid/index.d.ts +1 -1
- package/es/components/guider/index.d.ts +1 -1
- package/es/components/header/index.d.ts +1 -1
- package/es/components/icon/index.d.ts +1 -1
- package/es/components/import/index.d.ts +1 -1
- package/es/components/index.d.ts +1 -1
- package/es/components/input/index.d.ts +1 -1
- package/es/components/input/src/input.vue.d.ts +4 -0
- package/es/components/msg/index.d.ts +1 -1
- package/es/components/padding/index.d.ts +1 -1
- package/es/components/page/index.d.ts +1 -1
- package/es/components/param/index.d.ts +7 -7
- package/es/components/param/src/Param.vue.d.ts +3 -3
- package/es/components/pic/index.d.ts +1 -1
- package/es/components/progress/index.d.ts +1 -1
- package/es/components/range/index.d.ts +1 -1
- package/es/components/scroll/index.d.ts +2 -2
- package/es/components/segment/index.d.ts +1 -1
- package/es/components/select/index.d.ts +1 -1
- package/es/components/slide/index.d.ts +1 -1
- package/es/components/step/index.d.ts +1 -1
- package/es/components/submit/index.d.ts +1 -1
- package/es/components/switch/index.d.ts +1 -1
- package/es/components/tab/index.d.ts +1 -1
- package/es/components/tab/src/tab.vue.d.ts +3 -1
- package/es/components/table/index.d.ts +1 -1
- package/es/components/tag/index.d.ts +1 -1
- package/es/components/text/index.d.ts +1 -1
- package/es/components/timeline/src/timeline.vue.d.ts +4 -4
- package/es/components/tip/index.d.ts +1 -1
- package/es/components/tooltip/index.d.ts +1 -1
- package/es/components/transfer/index.d.ts +1 -1
- package/es/components/tree/index.d.ts +1 -1
- package/es/components/upload/index.d.ts +1 -1
- package/es/index.mjs +2 -1
- package/es/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/{dompurify@3.3.1 → dompurify@3.2.6}/node_modules/dompurify/dist/purify.es.mjs +25 -65
- package/es/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
- package/es/packages/components/article/index.mjs.map +1 -1
- package/es/packages/components/article/src/article.mjs.map +1 -1
- package/es/packages/components/article/src/article.vue2.mjs.map +1 -1
- package/es/packages/components/box/index.mjs.map +1 -1
- package/es/packages/components/box/src/box.mjs.map +1 -1
- package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/index.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
- package/es/packages/components/button/index.mjs.map +1 -1
- package/es/packages/components/button/src/button.mjs.map +1 -1
- package/es/packages/components/button/src/button.vue2.mjs +8 -8
- package/es/packages/components/button/src/button.vue2.mjs.map +1 -1
- package/es/packages/components/calendar/index.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/packages/components/card/index.mjs.map +1 -1
- package/es/packages/components/card/src/Card.vue.mjs.map +1 -1
- package/es/packages/components/card/src/card-item.vue.mjs.map +1 -1
- package/es/packages/components/card/src/card.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/index.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader-item.vue2.mjs +1 -1
- package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs +2 -2
- package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/index.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs.map +1 -1
- package/es/packages/components/checkbox/index.mjs.map +1 -1
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs +2 -2
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs.map +1 -1
- package/es/packages/components/checkboxes/index.mjs.map +1 -1
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +1 -1
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
- package/es/packages/components/collapse/index.mjs.map +1 -1
- package/es/packages/components/collapse/src/collapse-item.vue2.mjs +2 -2
- package/es/packages/components/collapse/src/collapse-item.vue2.mjs.map +1 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/index.mjs.map +1 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +2 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/Picker.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/date-picker.mjs.map +1 -1
- package/es/packages/components/datepicker/src/use-date-picker.mjs.map +1 -1
- package/es/packages/components/daterange/index.mjs.map +1 -1
- package/es/packages/components/daterange/src/date-range.vue2.mjs +12 -12
- package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/index.mjs.map +1 -1
- package/es/packages/components/dialog/src/Dialog.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
- package/es/packages/components/divider/index.mjs.map +1 -1
- package/es/packages/components/divider/src/divider.vue2.mjs.map +1 -1
- package/es/packages/components/ellipsis/index.mjs.map +1 -1
- package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs.map +1 -1
- package/es/packages/components/ellipsis/src/ellipsis.mjs.map +1 -1
- package/es/packages/components/export/index.mjs.map +1 -1
- package/es/packages/components/export/src/export.vue2.mjs.map +1 -1
- package/es/packages/components/fix/index.mjs.map +1 -1
- package/es/packages/components/fix/src/Fix.vue2.mjs.map +1 -1
- package/es/packages/components/fix/src/fix.mjs.map +1 -1
- package/es/packages/components/float/index.mjs.map +1 -1
- package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/float.mjs.map +1 -1
- package/es/packages/components/form/index.mjs.map +1 -1
- package/es/packages/components/form/src/form-item.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/gap/index.mjs.map +1 -1
- package/es/packages/components/gap/src/gap.vue2.mjs.map +1 -1
- package/es/packages/components/grid/index.mjs.map +1 -1
- package/es/packages/components/grid/src/grid-item.vue2.mjs.map +1 -1
- package/es/packages/components/grid/src/grid.vue2.mjs.map +1 -1
- package/es/packages/components/guider/index.mjs.map +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
- package/es/packages/components/header/index.mjs.map +1 -1
- package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
- package/es/packages/components/icon/index.mjs.map +1 -1
- package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
- package/es/packages/components/import/index.mjs.map +1 -1
- package/es/packages/components/import/src/import.vue2.mjs +1 -1
- package/es/packages/components/import/src/import.vue2.mjs.map +1 -1
- package/es/packages/components/input/index.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +59 -7
- package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
- package/es/packages/components/msg/index.mjs.map +1 -1
- package/es/packages/components/msg/src/msg.vue2.mjs +14 -14
- package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
- package/es/packages/components/padding/index.mjs.map +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs.map +1 -1
- package/es/packages/components/page/index.mjs.map +1 -1
- package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
- package/es/packages/components/param/index.mjs.map +1 -1
- package/es/packages/components/param/src/Param.vue2.mjs.map +1 -1
- package/es/packages/components/param/src/ParamItem.vue.mjs.map +1 -1
- package/es/packages/components/param/src/param-item.mjs.map +1 -1
- package/es/packages/components/param/src/param.mjs.map +1 -1
- package/es/packages/components/pic/index.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/PicViewer.vue2.mjs +1 -1
- package/es/packages/components/pic/src/PicViewer.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/pic.mjs.map +1 -1
- package/es/packages/components/progress/index.mjs.map +1 -1
- package/es/packages/components/progress/src/Progress.vue.mjs.map +1 -1
- package/es/packages/components/progress/src/Progress.vue2.mjs.map +1 -1
- package/es/packages/components/progress/src/progress.mjs.map +1 -1
- package/es/packages/components/range/index.mjs.map +1 -1
- package/es/packages/components/range/src/range.vue2.mjs +3 -3
- package/es/packages/components/range/src/range.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/index.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/ScrollPoint.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll-point.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/segment/index.mjs.map +1 -1
- package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
- package/es/packages/components/select/index.mjs.map +1 -1
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs.map +1 -1
- package/es/packages/components/select/src/hooks/use-select-option-data.mjs.map +1 -1
- package/es/packages/components/select/src/select.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/components/slide/index.mjs.map +1 -1
- package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
- package/es/packages/components/step/index.mjs.map +1 -1
- package/es/packages/components/step/src/step.vue2.mjs.map +1 -1
- package/es/packages/components/submit/index.mjs.map +1 -1
- package/es/packages/components/submit/src/submit.vue2.mjs.map +1 -1
- package/es/packages/components/switch/index.mjs.map +1 -1
- package/es/packages/components/switch/src/switch.vue2.mjs.map +1 -1
- package/es/packages/components/tab/index.mjs.map +1 -1
- package/es/packages/components/tab/src/tab-item.vue2.mjs +1 -1
- package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
- package/es/packages/components/tab/src/tab.vue2.mjs +29 -20
- package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
- package/es/packages/components/table/index.mjs.map +1 -1
- package/es/packages/components/table/src/table-body.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table-config.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table-head.vue2.mjs +1 -1
- package/es/packages/components/table/src/table-head.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +19 -19
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/components/tag/index.mjs.map +1 -1
- package/es/packages/components/tag/src/tag.vue2.mjs +3 -3
- package/es/packages/components/tag/src/tag.vue2.mjs.map +1 -1
- package/es/packages/components/text/index.mjs.map +1 -1
- package/es/packages/components/text/src/text.vue2.mjs +7 -7
- package/es/packages/components/text/src/text.vue2.mjs.map +1 -1
- package/es/packages/components/timeline/index.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue2.mjs.map +1 -1
- package/es/packages/components/tip/index.mjs.map +1 -1
- package/es/packages/components/tip/src/tip.mjs.map +1 -1
- package/es/packages/components/tip/src/tip.vue2.mjs.map +1 -1
- package/es/packages/components/tooltip/index.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.vue2.mjs.map +1 -1
- package/es/packages/components/transfer/index.mjs.map +1 -1
- package/es/packages/components/transfer/src/transfer.vue2.mjs +9 -9
- package/es/packages/components/transfer/src/transfer.vue2.mjs.map +1 -1
- package/es/packages/components/tree/index.mjs.map +1 -1
- package/es/packages/components/tree/src/tree-item.vue2.mjs +26 -26
- package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
- package/es/packages/components/tree/src/tree.vue2.mjs +4 -4
- package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
- package/es/packages/components/upload/index.mjs.map +1 -1
- package/es/packages/components/upload/src/upload.vue2.mjs +11 -11
- package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
- package/es/packages/directives/align/index.mjs.map +1 -1
- package/es/packages/directives/align/src/align.mjs.map +1 -1
- package/es/packages/directives/color/index.mjs.map +1 -1
- package/es/packages/directives/color/src/color.mjs.map +1 -1
- package/es/packages/directives/dis/index.mjs.map +1 -1
- package/es/packages/directives/dis/src/dis.mjs.map +1 -1
- package/es/packages/directives/hide/src/hide.mjs.map +1 -1
- package/es/packages/directives/index.mjs.map +1 -1
- package/es/packages/directives/loading/index.mjs.map +1 -1
- package/es/packages/directives/loading/src/loading.mjs.map +1 -1
- package/es/packages/directives/longtap/src/longtap.mjs.map +1 -1
- package/es/packages/directives/size/index.mjs.map +1 -1
- package/es/packages/directives/size/src/size.mjs.map +1 -1
- package/es/packages/directives/tip/index.mjs.map +1 -1
- package/es/packages/directives/tip/src/tip.mjs.map +1 -1
- package/es/packages/hooks/useDevice.mjs.map +1 -1
- package/es/packages/hooks/useFormItem.mjs.map +1 -1
- package/es/packages/hooks/useSetClass.mjs.map +1 -1
- package/es/packages/hooks/useWidthStyle.mjs.map +1 -1
- package/es/packages/locale/format.mjs.map +1 -1
- package/es/packages/locale/index.d.mjs.map +1 -1
- package/es/packages/locale/index.mjs.map +1 -1
- package/es/packages/locale/lang/en.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/es/packages/resolver/resolver.mjs.map +1 -1
- package/es/packages/utils/ajax.mjs.map +1 -1
- package/es/packages/utils/beforeChange.mjs.map +1 -1
- package/es/packages/utils/compare.mjs.map +1 -1
- package/es/packages/utils/config.mjs.map +1 -1
- package/es/packages/utils/date.mjs.map +1 -1
- package/es/packages/utils/disabledArea.mjs.map +1 -1
- package/es/packages/utils/dom.mjs.map +1 -1
- package/es/packages/utils/fileAjax.mjs.map +1 -1
- package/es/packages/utils/isModified.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/JSEncrypt.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/JSEncryptRSAKey.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/asn1.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/base64.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/hex.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/int10.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/oids.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/base64.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/jsbn.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/prng4.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/rng.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/rsa.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/util.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsrsasign/asn1-1.0.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsrsasign/yahoo.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/util.mjs.map +1 -1
- package/es/packages/utils/md5.mjs.map +1 -1
- package/es/packages/utils/print.mjs +1 -1
- package/es/packages/utils/print.mjs.map +1 -1
- package/es/packages/utils/ratio.mjs.map +1 -1
- package/es/packages/utils/sign.mjs.map +1 -1
- package/es/packages/utils/theme.mjs.map +1 -1
- package/es/packages/utils/types.mjs.map +1 -1
- package/es/packages/utils/util.mjs.map +1 -1
- package/es/packages/utils/uuid.mjs.map +1 -1
- package/es/packages/utils/validate.mjs.map +1 -1
- package/es/ui/index.d.ts +11 -5
- package/lib/components/article/index.d.ts +1 -1
- package/lib/components/box/index.d.ts +1 -1
- package/lib/components/breadcrumb/index.d.ts +1 -1
- package/lib/components/button/index.d.ts +1 -1
- package/lib/components/button/src/button.d.ts +1 -1
- package/lib/components/calendar/index.d.ts +1 -1
- package/lib/components/card/index.d.ts +1 -1
- package/lib/components/cascader/index.d.ts +1 -1
- package/lib/components/center-scroll/index.d.ts +1 -1
- package/lib/components/checkbox/index.d.ts +1 -1
- package/lib/components/checkboxes/index.d.ts +1 -1
- package/lib/components/collapse/index.d.ts +1 -1
- package/lib/components/datepicker/index.d.ts +1 -1
- package/lib/components/daterange/index.d.ts +1 -1
- package/lib/components/dialog/index.d.ts +1 -1
- package/lib/components/divider/index.d.ts +1 -1
- package/lib/components/ellipsis/index.d.ts +1 -1
- package/lib/components/export/index.d.ts +1 -1
- package/lib/components/export/src/export.vue.d.ts +1 -1
- package/lib/components/fix/index.d.ts +1 -1
- package/lib/components/float/index.d.ts +1 -1
- package/lib/components/form/index.d.ts +1 -1
- package/lib/components/gap/index.d.ts +1 -1
- package/lib/components/grid/index.d.ts +1 -1
- package/lib/components/guider/index.d.ts +1 -1
- package/lib/components/header/index.d.ts +1 -1
- package/lib/components/icon/index.d.ts +1 -1
- package/lib/components/import/index.d.ts +1 -1
- package/lib/components/index.d.ts +1 -1
- package/lib/components/input/index.d.ts +1 -1
- package/lib/components/input/src/input.vue.d.ts +4 -0
- package/lib/components/msg/index.d.ts +1 -1
- package/lib/components/padding/index.d.ts +1 -1
- package/lib/components/page/index.d.ts +1 -1
- package/lib/components/param/index.d.ts +7 -7
- package/lib/components/param/src/Param.vue.d.ts +3 -3
- package/lib/components/pic/index.d.ts +1 -1
- package/lib/components/progress/index.d.ts +1 -1
- package/lib/components/range/index.d.ts +1 -1
- package/lib/components/scroll/index.d.ts +2 -2
- package/lib/components/segment/index.d.ts +1 -1
- package/lib/components/select/index.d.ts +1 -1
- package/lib/components/slide/index.d.ts +1 -1
- package/lib/components/step/index.d.ts +1 -1
- package/lib/components/submit/index.d.ts +1 -1
- package/lib/components/switch/index.d.ts +1 -1
- package/lib/components/tab/index.d.ts +1 -1
- package/lib/components/tab/src/tab.vue.d.ts +3 -1
- package/lib/components/table/index.d.ts +1 -1
- package/lib/components/tag/index.d.ts +1 -1
- package/lib/components/text/index.d.ts +1 -1
- package/lib/components/timeline/src/timeline.vue.d.ts +4 -4
- package/lib/components/tip/index.d.ts +1 -1
- package/lib/components/tooltip/index.d.ts +1 -1
- package/lib/components/transfer/index.d.ts +1 -1
- package/lib/components/tree/index.d.ts +1 -1
- package/lib/components/upload/index.d.ts +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/node_modules/.pnpm/{dompurify@3.3.1 → dompurify@3.2.6}/node_modules/dompurify/dist/purify.es.js +25 -65
- package/lib/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/lib/packages/components/article/index.js.map +1 -1
- package/lib/packages/components/article/src/article.js.map +1 -1
- package/lib/packages/components/article/src/article.vue2.js.map +1 -1
- package/lib/packages/components/box/index.js.map +1 -1
- package/lib/packages/components/box/src/box.js.map +1 -1
- package/lib/packages/components/box/src/box.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/index.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
- package/lib/packages/components/button/index.js.map +1 -1
- package/lib/packages/components/button/src/button.js.map +1 -1
- package/lib/packages/components/button/src/button.vue2.js +8 -8
- package/lib/packages/components/button/src/button.vue2.js.map +1 -1
- package/lib/packages/components/calendar/index.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/packages/components/card/index.js.map +1 -1
- package/lib/packages/components/card/src/Card.vue.js.map +1 -1
- package/lib/packages/components/card/src/card-item.vue.js.map +1 -1
- package/lib/packages/components/card/src/card.vue2.js.map +1 -1
- package/lib/packages/components/cascader/index.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader-item.vue2.js +1 -1
- package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js +2 -2
- package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/index.js.map +1 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js.map +1 -1
- package/lib/packages/components/checkbox/index.js.map +1 -1
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js +2 -2
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js.map +1 -1
- package/lib/packages/components/checkboxes/index.js.map +1 -1
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +1 -1
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
- package/lib/packages/components/collapse/index.js.map +1 -1
- package/lib/packages/components/collapse/src/collapse-item.vue2.js +2 -2
- package/lib/packages/components/collapse/src/collapse-item.vue2.js.map +1 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/index.js.map +1 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js +2 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/Picker.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/date-picker.js.map +1 -1
- package/lib/packages/components/datepicker/src/use-date-picker.js.map +1 -1
- package/lib/packages/components/daterange/index.js.map +1 -1
- package/lib/packages/components/daterange/src/date-range.vue2.js +12 -12
- package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
- package/lib/packages/components/dialog/index.js.map +1 -1
- package/lib/packages/components/dialog/src/Dialog.vue2.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog.js.map +1 -1
- package/lib/packages/components/divider/index.js.map +1 -1
- package/lib/packages/components/divider/src/divider.vue2.js.map +1 -1
- package/lib/packages/components/ellipsis/index.js.map +1 -1
- package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js.map +1 -1
- package/lib/packages/components/ellipsis/src/ellipsis.js.map +1 -1
- package/lib/packages/components/export/index.js.map +1 -1
- package/lib/packages/components/export/src/export.vue2.js.map +1 -1
- package/lib/packages/components/fix/index.js.map +1 -1
- package/lib/packages/components/fix/src/Fix.vue2.js.map +1 -1
- package/lib/packages/components/fix/src/fix.js.map +1 -1
- package/lib/packages/components/float/index.js.map +1 -1
- package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
- package/lib/packages/components/float/src/float.js.map +1 -1
- package/lib/packages/components/form/index.js.map +1 -1
- package/lib/packages/components/form/src/form-item.vue2.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/gap/index.js.map +1 -1
- package/lib/packages/components/gap/src/gap.vue2.js.map +1 -1
- package/lib/packages/components/grid/index.js.map +1 -1
- package/lib/packages/components/grid/src/grid-item.vue2.js.map +1 -1
- package/lib/packages/components/grid/src/grid.vue2.js.map +1 -1
- package/lib/packages/components/guider/index.js.map +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
- package/lib/packages/components/header/index.js.map +1 -1
- package/lib/packages/components/header/src/header.vue2.js.map +1 -1
- package/lib/packages/components/icon/index.js.map +1 -1
- package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
- package/lib/packages/components/import/index.js.map +1 -1
- package/lib/packages/components/import/src/import.vue2.js +1 -1
- package/lib/packages/components/import/src/import.vue2.js.map +1 -1
- package/lib/packages/components/input/index.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +58 -6
- package/lib/packages/components/input/src/input.vue2.js.map +1 -1
- package/lib/packages/components/msg/index.js.map +1 -1
- package/lib/packages/components/msg/src/msg.vue2.js +14 -14
- package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
- package/lib/packages/components/padding/index.js.map +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js.map +1 -1
- package/lib/packages/components/page/index.js.map +1 -1
- package/lib/packages/components/page/src/page.vue2.js.map +1 -1
- package/lib/packages/components/param/index.js.map +1 -1
- package/lib/packages/components/param/src/Param.vue2.js.map +1 -1
- package/lib/packages/components/param/src/ParamItem.vue.js.map +1 -1
- package/lib/packages/components/param/src/param-item.js.map +1 -1
- package/lib/packages/components/param/src/param.js.map +1 -1
- package/lib/packages/components/pic/index.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/PicViewer.vue2.js +1 -1
- package/lib/packages/components/pic/src/PicViewer.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/pic.js.map +1 -1
- package/lib/packages/components/progress/index.js.map +1 -1
- package/lib/packages/components/progress/src/Progress.vue.js.map +1 -1
- package/lib/packages/components/progress/src/Progress.vue2.js.map +1 -1
- package/lib/packages/components/progress/src/progress.js.map +1 -1
- package/lib/packages/components/range/index.js.map +1 -1
- package/lib/packages/components/range/src/range.vue2.js +3 -3
- package/lib/packages/components/range/src/range.vue2.js.map +1 -1
- package/lib/packages/components/scroll/index.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/ScrollPoint.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll-point.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/segment/index.js.map +1 -1
- package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
- package/lib/packages/components/select/index.js.map +1 -1
- package/lib/packages/components/select/src/hooks/use-select-class-style.js.map +1 -1
- package/lib/packages/components/select/src/hooks/use-select-option-data.js.map +1 -1
- package/lib/packages/components/select/src/select.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/components/slide/index.js.map +1 -1
- package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
- package/lib/packages/components/step/index.js.map +1 -1
- package/lib/packages/components/step/src/step.vue2.js.map +1 -1
- package/lib/packages/components/submit/index.js.map +1 -1
- package/lib/packages/components/submit/src/submit.vue2.js.map +1 -1
- package/lib/packages/components/switch/index.js.map +1 -1
- package/lib/packages/components/switch/src/switch.vue2.js.map +1 -1
- package/lib/packages/components/tab/index.js.map +1 -1
- package/lib/packages/components/tab/src/tab-item.vue2.js +1 -1
- package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
- package/lib/packages/components/tab/src/tab.vue2.js +29 -20
- package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
- package/lib/packages/components/table/index.js.map +1 -1
- package/lib/packages/components/table/src/table-body.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table-config.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table-head.vue2.js +1 -1
- package/lib/packages/components/table/src/table-head.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +19 -19
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/components/tag/index.js.map +1 -1
- package/lib/packages/components/tag/src/tag.vue2.js +3 -3
- package/lib/packages/components/tag/src/tag.vue2.js.map +1 -1
- package/lib/packages/components/text/index.js.map +1 -1
- package/lib/packages/components/text/src/text.vue2.js +6 -6
- package/lib/packages/components/text/src/text.vue2.js.map +1 -1
- package/lib/packages/components/timeline/index.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue2.js.map +1 -1
- package/lib/packages/components/tip/index.js.map +1 -1
- package/lib/packages/components/tip/src/tip.js.map +1 -1
- package/lib/packages/components/tip/src/tip.vue2.js.map +1 -1
- package/lib/packages/components/tooltip/index.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.vue2.js.map +1 -1
- package/lib/packages/components/transfer/index.js.map +1 -1
- package/lib/packages/components/transfer/src/transfer.vue2.js +9 -9
- package/lib/packages/components/transfer/src/transfer.vue2.js.map +1 -1
- package/lib/packages/components/tree/index.js.map +1 -1
- package/lib/packages/components/tree/src/tree-item.vue2.js +26 -26
- package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
- package/lib/packages/components/tree/src/tree.vue2.js +4 -4
- package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
- package/lib/packages/components/upload/index.js.map +1 -1
- package/lib/packages/components/upload/src/upload.vue2.js +11 -11
- package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
- package/lib/packages/directives/align/index.js.map +1 -1
- package/lib/packages/directives/align/src/align.js.map +1 -1
- package/lib/packages/directives/color/index.js.map +1 -1
- package/lib/packages/directives/color/src/color.js.map +1 -1
- package/lib/packages/directives/dis/index.js.map +1 -1
- package/lib/packages/directives/dis/src/dis.js.map +1 -1
- package/lib/packages/directives/hide/src/hide.js.map +1 -1
- package/lib/packages/directives/index.js.map +1 -1
- package/lib/packages/directives/loading/index.js.map +1 -1
- package/lib/packages/directives/loading/src/loading.js.map +1 -1
- package/lib/packages/directives/longtap/src/longtap.js.map +1 -1
- package/lib/packages/directives/size/index.js.map +1 -1
- package/lib/packages/directives/size/src/size.js.map +1 -1
- package/lib/packages/directives/tip/index.js.map +1 -1
- package/lib/packages/directives/tip/src/tip.js.map +1 -1
- package/lib/packages/hooks/useDevice.js.map +1 -1
- package/lib/packages/hooks/useFormItem.js.map +1 -1
- package/lib/packages/hooks/useSetClass.js.map +1 -1
- package/lib/packages/hooks/useWidthStyle.js.map +1 -1
- package/lib/packages/locale/format.js.map +1 -1
- package/lib/packages/locale/index.d.js.map +1 -1
- package/lib/packages/locale/index.js.map +1 -1
- package/lib/packages/locale/lang/en.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/lib/packages/resolver/resolver.js.map +1 -1
- package/lib/packages/utils/ajax.js.map +1 -1
- package/lib/packages/utils/beforeChange.js.map +1 -1
- package/lib/packages/utils/compare.js.map +1 -1
- package/lib/packages/utils/config.js.map +1 -1
- package/lib/packages/utils/date.js.map +1 -1
- package/lib/packages/utils/disabledArea.js.map +1 -1
- package/lib/packages/utils/dom.js.map +1 -1
- package/lib/packages/utils/fileAjax.js.map +1 -1
- package/lib/packages/utils/isModified.js.map +1 -1
- package/lib/packages/utils/jsencrypt/JSEncrypt.js.map +1 -1
- package/lib/packages/utils/jsencrypt/JSEncryptRSAKey.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/asn1.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/base64.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/hex.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/int10.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/oids.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/base64.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/jsbn.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/prng4.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/rng.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/rsa.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/util.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsrsasign/asn1-1.0.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsrsasign/yahoo.js.map +1 -1
- package/lib/packages/utils/jsencrypt/util.js.map +1 -1
- package/lib/packages/utils/md5.js.map +1 -1
- package/lib/packages/utils/print.js +1 -1
- package/lib/packages/utils/print.js.map +1 -1
- package/lib/packages/utils/ratio.js.map +1 -1
- package/lib/packages/utils/sign.js.map +1 -1
- package/lib/packages/utils/theme.js.map +1 -1
- package/lib/packages/utils/types.js.map +1 -1
- package/lib/packages/utils/util.js.map +1 -1
- package/lib/packages/utils/uuid.js.map +1 -1
- package/lib/packages/utils/validate.js.map +1 -1
- package/lib/ui/index.d.ts +11 -5
- package/package.json +84 -84
- package/theme/components/index.css +60 -31
- package/theme/index.css +60 -31
- package/theme/skin/default.css +60 -31
- package/es/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
- package/lib/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/base64.js"],"sourcesContent":["import { int2char } from './util'\
|
|
1
|
+
{"version":3,"file":"base64.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/base64.js"],"sourcesContent":["import { int2char } from './util'\nvar b64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nvar b64pad = '='\nexport function hex2b64(h) {\n\tvar i\n\tvar c\n\tvar ret = ''\n\tfor (i = 0; i + 3 <= h.length; i += 3) {\n\t\tc = parseInt(h.substring(i, i + 3), 16)\n\t\tret += b64map.charAt(c >> 6) + b64map.charAt(c & 63)\n\t}\n\tif (i + 1 == h.length) {\n\t\tc = parseInt(h.substring(i, i + 1), 16)\n\t\tret += b64map.charAt(c << 2)\n\t} else if (i + 2 == h.length) {\n\t\tc = parseInt(h.substring(i, i + 2), 16)\n\t\tret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4)\n\t}\n\twhile ((ret.length & 3) > 0) {\n\t\tret += b64pad\n\t}\n\treturn ret\n}\n// convert a base64 string to hex\nexport function b64tohex(s) {\n\tvar ret = ''\n\tvar i\n\tvar k = 0 // b64 state, 0-3\n\tvar slop = 0\n\tfor (i = 0; i < s.length; ++i) {\n\t\tif (s.charAt(i) == b64pad) {\n\t\t\tbreak\n\t\t}\n\t\tvar v = b64map.indexOf(s.charAt(i))\n\t\tif (v < 0) {\n\t\t\tcontinue\n\t\t}\n\t\tif (k == 0) {\n\t\t\tret += int2char(v >> 2)\n\t\t\tslop = v & 3\n\t\t\tk = 1\n\t\t} else if (k == 1) {\n\t\t\tret += int2char((slop << 2) | (v >> 4))\n\t\t\tslop = v & 0xf\n\t\t\tk = 2\n\t\t} else if (k == 2) {\n\t\t\tret += int2char(slop)\n\t\t\tret += int2char(v >> 2)\n\t\t\tslop = v & 3\n\t\t\tk = 3\n\t\t} else {\n\t\t\tret += int2char((slop << 2) | (v >> 4))\n\t\t\tret += int2char(v & 0xf)\n\t\t\tk = 0\n\t\t}\n\t}\n\tif (k == 1) {\n\t\tret += int2char(slop << 2)\n\t}\n\treturn ret\n}\n// convert a base64 string to a byte/number array\nexport function b64toBA(s) {\n\t// piggyback on b64tohex for now, optimize later\n\tvar h = b64tohex(s)\n\tvar i\n\tvar a = []\n\tfor (i = 0; 2 * i < h.length; ++i) {\n\t\ta[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16)\n\t}\n\treturn a\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsbn.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/jsbn.js"],"sourcesContent":["// Copyright (c) 2005 Tom Wu\r\n// All Rights Reserved.\r\n// See \"LICENSE\" for details.\r\n// Basic JavaScript BN library - subset useful for RSA encryption.\r\n/* eslint-disable */\r\nimport { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from './util'\r\n// Bits per digit\r\nvar dbits\r\n// JavaScript engine analysis\r\nvar canary = 0xdeadbeefcafe\r\nvar j_lm = (canary & 0xffffff) == 0xefcafe\r\n//#region\r\nvar lowprimes = [\r\n\t2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,\r\n\t101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193,\r\n\t197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307,\r\n\t311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421,\r\n\t431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547,\r\n\t557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,\r\n\t661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797,\r\n\t809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929,\r\n\t937, 941, 947, 953, 967, 971, 977, 983, 991, 997,\r\n]\r\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1]\r\n//#endregion\r\n// (public) Constructor\r\nvar BigInteger = /** @class */ (function () {\r\n\tfunction BigInteger(a, b, c) {\r\n\t\tif (a != null) {\r\n\t\t\tif ('number' == typeof a) {\r\n\t\t\t\tthis.fromNumber(a, b, c)\r\n\t\t\t} else if (b == null && 'string' != typeof a) {\r\n\t\t\t\tthis.fromString(a, 256)\r\n\t\t\t} else {\r\n\t\t\t\tthis.fromString(a, b)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t//#region PUBLIC\r\n\t// BigInteger.prototype.toString = bnToString;\r\n\t// (public) return string representation in given radix\r\n\tBigInteger.prototype.toString = function (b) {\r\n\t\tif (this.s < 0) {\r\n\t\t\treturn '-' + this.negate().toString(b)\r\n\t\t}\r\n\t\tvar k\r\n\t\tif (b == 16) {\r\n\t\t\tk = 4\r\n\t\t} else if (b == 8) {\r\n\t\t\tk = 3\r\n\t\t} else if (b == 2) {\r\n\t\t\tk = 1\r\n\t\t} else if (b == 32) {\r\n\t\t\tk = 5\r\n\t\t} else if (b == 4) {\r\n\t\t\tk = 2\r\n\t\t} else {\r\n\t\t\treturn this.toRadix(b)\r\n\t\t}\r\n\t\tvar km = (1 << k) - 1\r\n\t\tvar d\r\n\t\tvar m = false\r\n\t\tvar r = ''\r\n\t\tvar i = this.t\r\n\t\tvar p = this.DB - ((i * this.DB) % k)\r\n\t\tif (i-- > 0) {\r\n\t\t\tif (p < this.DB && (d = this[i] >> p) > 0) {\r\n\t\t\t\tm = true\r\n\t\t\t\tr = int2char(d)\r\n\t\t\t}\r\n\t\t\twhile (i >= 0) {\r\n\t\t\t\tif (p < k) {\r\n\t\t\t\t\td = (this[i] & ((1 << p) - 1)) << (k - p)\r\n\t\t\t\t\td |= this[--i] >> (p += this.DB - k)\r\n\t\t\t\t} else {\r\n\t\t\t\t\td = (this[i] >> (p -= k)) & km\r\n\t\t\t\t\tif (p <= 0) {\r\n\t\t\t\t\t\tp += this.DB\r\n\t\t\t\t\t\t--i\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (d > 0) {\r\n\t\t\t\t\tm = true\r\n\t\t\t\t}\r\n\t\t\t\tif (m) {\r\n\t\t\t\t\tr += int2char(d)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn m ? r : '0'\r\n\t}\r\n\t// BigInteger.prototype.negate = bnNegate;\r\n\t// (public) -this\r\n\tBigInteger.prototype.negate = function () {\r\n\t\tvar r = nbi()\r\n\t\tBigInteger.ZERO.subTo(this, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.abs = bnAbs;\r\n\t// (public) |this|\r\n\tBigInteger.prototype.abs = function () {\r\n\t\treturn this.s < 0 ? this.negate() : this\r\n\t}\r\n\t// BigInteger.prototype.compareTo = bnCompareTo;\r\n\t// (public) return + if this > a, - if this < a, 0 if equal\r\n\tBigInteger.prototype.compareTo = function (a) {\r\n\t\tvar r = this.s - a.s\r\n\t\tif (r != 0) {\r\n\t\t\treturn r\r\n\t\t}\r\n\t\tvar i = this.t\r\n\t\tr = i - a.t\r\n\t\tif (r != 0) {\r\n\t\t\treturn this.s < 0 ? -r : r\r\n\t\t}\r\n\t\twhile (--i >= 0) {\r\n\t\t\tif ((r = this[i] - a[i]) != 0) {\r\n\t\t\t\treturn r\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn 0\r\n\t}\r\n\t// BigInteger.prototype.bitLength = bnBitLength;\r\n\t// (public) return the number of bits in \"this\"\r\n\tBigInteger.prototype.bitLength = function () {\r\n\t\tif (this.t <= 0) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\treturn this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM))\r\n\t}\r\n\t// BigInteger.prototype.mod = bnMod;\r\n\t// (public) this mod a\r\n\tBigInteger.prototype.mod = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.abs().divRemTo(a, null, r)\r\n\t\tif (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\r\n\t\t\ta.subTo(r, r)\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.modPowInt = bnModPowInt;\r\n\t// (public) this^e % m, 0 <= e < 2^32\r\n\tBigInteger.prototype.modPowInt = function (e, m) {\r\n\t\tvar z\r\n\t\tif (e < 256 || m.isEven()) {\r\n\t\t\tz = new Classic(m)\r\n\t\t} else {\r\n\t\t\tz = new Montgomery(m)\r\n\t\t}\r\n\t\treturn this.exp(e, z)\r\n\t}\r\n\t// BigInteger.prototype.clone = bnClone;\r\n\t// (public)\r\n\tBigInteger.prototype.clone = function () {\r\n\t\tvar r = nbi()\r\n\t\tthis.copyTo(r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.intValue = bnIntValue;\r\n\t// (public) return value as integer\r\n\tBigInteger.prototype.intValue = function () {\r\n\t\tif (this.s < 0) {\r\n\t\t\tif (this.t == 1) {\r\n\t\t\t\treturn this[0] - this.DV\r\n\t\t\t} else if (this.t == 0) {\r\n\t\t\t\treturn -1\r\n\t\t\t}\r\n\t\t} else if (this.t == 1) {\r\n\t\t\treturn this[0]\r\n\t\t} else if (this.t == 0) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\t// assumes 16 < DB < 32\r\n\t\treturn ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]\r\n\t}\r\n\t// BigInteger.prototype.byteValue = bnByteValue;\r\n\t// (public) return value as byte\r\n\tBigInteger.prototype.byteValue = function () {\r\n\t\treturn this.t == 0 ? this.s : (this[0] << 24) >> 24\r\n\t}\r\n\t// BigInteger.prototype.shortValue = bnShortValue;\r\n\t// (public) return value as short (assumes DB>=16)\r\n\tBigInteger.prototype.shortValue = function () {\r\n\t\treturn this.t == 0 ? this.s : (this[0] << 16) >> 16\r\n\t}\r\n\t// BigInteger.prototype.signum = bnSigNum;\r\n\t// (public) 0 if this == 0, 1 if this > 0\r\n\tBigInteger.prototype.signum = function () {\r\n\t\tif (this.s < 0) {\r\n\t\t\treturn -1\r\n\t\t} else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\r\n\t\t\treturn 0\r\n\t\t} else {\r\n\t\t\treturn 1\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.toByteArray = bnToByteArray;\r\n\t// (public) convert to bigendian byte array\r\n\tBigInteger.prototype.toByteArray = function () {\r\n\t\tvar i = this.t\r\n\t\tvar r = []\r\n\t\tr[0] = this.s\r\n\t\tvar p = this.DB - ((i * this.DB) % 8)\r\n\t\tvar d\r\n\t\tvar k = 0\r\n\t\tif (i-- > 0) {\r\n\t\t\tif (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\r\n\t\t\t\tr[k++] = d | (this.s << (this.DB - p))\r\n\t\t\t}\r\n\t\t\twhile (i >= 0) {\r\n\t\t\t\tif (p < 8) {\r\n\t\t\t\t\td = (this[i] & ((1 << p) - 1)) << (8 - p)\r\n\t\t\t\t\td |= this[--i] >> (p += this.DB - 8)\r\n\t\t\t\t} else {\r\n\t\t\t\t\td = (this[i] >> (p -= 8)) & 0xff\r\n\t\t\t\t\tif (p <= 0) {\r\n\t\t\t\t\t\tp += this.DB\r\n\t\t\t\t\t\t--i\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif ((d & 0x80) != 0) {\r\n\t\t\t\t\td |= -256\r\n\t\t\t\t}\r\n\t\t\t\tif (k == 0 && (this.s & 0x80) != (d & 0x80)) {\r\n\t\t\t\t\t++k\r\n\t\t\t\t}\r\n\t\t\t\tif (k > 0 || d != this.s) {\r\n\t\t\t\t\tr[k++] = d\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.equals = bnEquals;\r\n\tBigInteger.prototype.equals = function (a) {\r\n\t\treturn this.compareTo(a) == 0\r\n\t}\r\n\t// BigInteger.prototype.min = bnMin;\r\n\tBigInteger.prototype.min = function (a) {\r\n\t\treturn this.compareTo(a) < 0 ? this : a\r\n\t}\r\n\t// BigInteger.prototype.max = bnMax;\r\n\tBigInteger.prototype.max = function (a) {\r\n\t\treturn this.compareTo(a) > 0 ? this : a\r\n\t}\r\n\t// BigInteger.prototype.and = bnAnd;\r\n\tBigInteger.prototype.and = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.bitwiseTo(a, op_and, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.or = bnOr;\r\n\tBigInteger.prototype.or = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.bitwiseTo(a, op_or, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.xor = bnXor;\r\n\tBigInteger.prototype.xor = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.bitwiseTo(a, op_xor, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.andNot = bnAndNot;\r\n\tBigInteger.prototype.andNot = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.bitwiseTo(a, op_andnot, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.not = bnNot;\r\n\t// (public) ~this\r\n\tBigInteger.prototype.not = function () {\r\n\t\tvar r = nbi()\r\n\t\tfor (var i = 0; i < this.t; ++i) {\r\n\t\t\tr[i] = this.DM & ~this[i]\r\n\t\t}\r\n\t\tr.t = this.t\r\n\t\tr.s = ~this.s\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.shiftLeft = bnShiftLeft;\r\n\t// (public) this << n\r\n\tBigInteger.prototype.shiftLeft = function (n) {\r\n\t\tvar r = nbi()\r\n\t\tif (n < 0) {\r\n\t\t\tthis.rShiftTo(-n, r)\r\n\t\t} else {\r\n\t\t\tthis.lShiftTo(n, r)\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.shiftRight = bnShiftRight;\r\n\t// (public) this >> n\r\n\tBigInteger.prototype.shiftRight = function (n) {\r\n\t\tvar r = nbi()\r\n\t\tif (n < 0) {\r\n\t\t\tthis.lShiftTo(-n, r)\r\n\t\t} else {\r\n\t\t\tthis.rShiftTo(n, r)\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\r\n\t// (public) returns index of lowest 1-bit (or -1 if none)\r\n\tBigInteger.prototype.getLowestSetBit = function () {\r\n\t\tfor (var i = 0; i < this.t; ++i) {\r\n\t\t\tif (this[i] != 0) {\r\n\t\t\t\treturn i * this.DB + lbit(this[i])\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.s < 0) {\r\n\t\t\treturn this.t * this.DB\r\n\t\t}\r\n\t\treturn -1\r\n\t}\r\n\t// BigInteger.prototype.bitCount = bnBitCount;\r\n\t// (public) return number of set bits\r\n\tBigInteger.prototype.bitCount = function () {\r\n\t\tvar r = 0\r\n\t\tvar x = this.s & this.DM\r\n\t\tfor (var i = 0; i < this.t; ++i) {\r\n\t\t\tr += cbit(this[i] ^ x)\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.testBit = bnTestBit;\r\n\t// (public) true iff nth bit is set\r\n\tBigInteger.prototype.testBit = function (n) {\r\n\t\tvar j = Math.floor(n / this.DB)\r\n\t\tif (j >= this.t) {\r\n\t\t\treturn this.s != 0\r\n\t\t}\r\n\t\treturn (this[j] & (1 << n % this.DB)) != 0\r\n\t}\r\n\t// BigInteger.prototype.setBit = bnSetBit;\r\n\t// (public) this | (1<<n)\r\n\tBigInteger.prototype.setBit = function (n) {\r\n\t\treturn this.changeBit(n, op_or)\r\n\t}\r\n\t// BigInteger.prototype.clearBit = bnClearBit;\r\n\t// (public) this & ~(1<<n)\r\n\tBigInteger.prototype.clearBit = function (n) {\r\n\t\treturn this.changeBit(n, op_andnot)\r\n\t}\r\n\t// BigInteger.prototype.flipBit = bnFlipBit;\r\n\t// (public) this ^ (1<<n)\r\n\tBigInteger.prototype.flipBit = function (n) {\r\n\t\treturn this.changeBit(n, op_xor)\r\n\t}\r\n\t// BigInteger.prototype.add = bnAdd;\r\n\t// (public) this + a\r\n\tBigInteger.prototype.add = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.addTo(a, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.subtract = bnSubtract;\r\n\t// (public) this - a\r\n\tBigInteger.prototype.subtract = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.subTo(a, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.multiply = bnMultiply;\r\n\t// (public) this * a\r\n\tBigInteger.prototype.multiply = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.multiplyTo(a, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.divide = bnDivide;\r\n\t// (public) this / a\r\n\tBigInteger.prototype.divide = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.divRemTo(a, r, null)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.remainder = bnRemainder;\r\n\t// (public) this % a\r\n\tBigInteger.prototype.remainder = function (a) {\r\n\t\tvar r = nbi()\r\n\t\tthis.divRemTo(a, null, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\r\n\t// (public) [this/a,this%a]\r\n\tBigInteger.prototype.divideAndRemainder = function (a) {\r\n\t\tvar q = nbi()\r\n\t\tvar r = nbi()\r\n\t\tthis.divRemTo(a, q, r)\r\n\t\treturn [q, r]\r\n\t}\r\n\t// BigInteger.prototype.modPow = bnModPow;\r\n\t// (public) this^e % m (HAC 14.85)\r\n\tBigInteger.prototype.modPow = function (e, m) {\r\n\t\tvar i = e.bitLength()\r\n\t\tvar k\r\n\t\tvar r = nbv(1)\r\n\t\tvar z\r\n\t\tif (i <= 0) {\r\n\t\t\treturn r\r\n\t\t} else if (i < 18) {\r\n\t\t\tk = 1\r\n\t\t} else if (i < 48) {\r\n\t\t\tk = 3\r\n\t\t} else if (i < 144) {\r\n\t\t\tk = 4\r\n\t\t} else if (i < 768) {\r\n\t\t\tk = 5\r\n\t\t} else {\r\n\t\t\tk = 6\r\n\t\t}\r\n\t\tif (i < 8) {\r\n\t\t\tz = new Classic(m)\r\n\t\t} else if (m.isEven()) {\r\n\t\t\tz = new Barrett(m)\r\n\t\t} else {\r\n\t\t\tz = new Montgomery(m)\r\n\t\t}\r\n\t\t// precomputation\r\n\t\tvar g = []\r\n\t\tvar n = 3\r\n\t\tvar k1 = k - 1\r\n\t\tvar km = (1 << k) - 1\r\n\t\tg[1] = z.convert(this)\r\n\t\tif (k > 1) {\r\n\t\t\tvar g2 = nbi()\r\n\t\t\tz.sqrTo(g[1], g2)\r\n\t\t\twhile (n <= km) {\r\n\t\t\t\tg[n] = nbi()\r\n\t\t\t\tz.mulTo(g2, g[n - 2], g[n])\r\n\t\t\t\tn += 2\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar j = e.t - 1\r\n\t\tvar w\r\n\t\tvar is1 = true\r\n\t\tvar r2 = nbi()\r\n\t\tvar t\r\n\t\ti = nbits(e[j]) - 1\r\n\t\twhile (j >= 0) {\r\n\t\t\tif (i >= k1) {\r\n\t\t\t\tw = (e[j] >> (i - k1)) & km\r\n\t\t\t} else {\r\n\t\t\t\tw = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i)\r\n\t\t\t\tif (j > 0) {\r\n\t\t\t\t\tw |= e[j - 1] >> (this.DB + i - k1)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tn = k\r\n\t\t\twhile ((w & 1) == 0) {\r\n\t\t\t\tw >>= 1\r\n\t\t\t\t--n\r\n\t\t\t}\r\n\t\t\tif ((i -= n) < 0) {\r\n\t\t\t\ti += this.DB\r\n\t\t\t\t--j\r\n\t\t\t}\r\n\t\t\tif (is1) {\r\n\t\t\t\t// ret == 1, don't bother squaring or multiplying it\r\n\t\t\t\tg[w].copyTo(r)\r\n\t\t\t\tis1 = false\r\n\t\t\t} else {\r\n\t\t\t\twhile (n > 1) {\r\n\t\t\t\t\tz.sqrTo(r, r2)\r\n\t\t\t\t\tz.sqrTo(r2, r)\r\n\t\t\t\t\tn -= 2\r\n\t\t\t\t}\r\n\t\t\t\tif (n > 0) {\r\n\t\t\t\t\tz.sqrTo(r, r2)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tt = r\r\n\t\t\t\t\tr = r2\r\n\t\t\t\t\tr2 = t\r\n\t\t\t\t}\r\n\t\t\t\tz.mulTo(r2, g[w], r)\r\n\t\t\t}\r\n\t\t\twhile (j >= 0 && (e[j] & (1 << i)) == 0) {\r\n\t\t\t\tz.sqrTo(r, r2)\r\n\t\t\t\tt = r\r\n\t\t\t\tr = r2\r\n\t\t\t\tr2 = t\r\n\t\t\t\tif (--i < 0) {\r\n\t\t\t\t\ti = this.DB - 1\r\n\t\t\t\t\t--j\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn z.revert(r)\r\n\t}\r\n\t// BigInteger.prototype.modInverse = bnModInverse;\r\n\t// (public) 1/this % m (HAC 14.61)\r\n\tBigInteger.prototype.modInverse = function (m) {\r\n\t\tvar ac = m.isEven()\r\n\t\tif ((this.isEven() && ac) || m.signum() == 0) {\r\n\t\t\treturn BigInteger.ZERO\r\n\t\t}\r\n\t\tvar u = m.clone()\r\n\t\tvar v = this.clone()\r\n\t\tvar a = nbv(1)\r\n\t\tvar b = nbv(0)\r\n\t\tvar c = nbv(0)\r\n\t\tvar d = nbv(1)\r\n\t\twhile (u.signum() != 0) {\r\n\t\t\twhile (u.isEven()) {\r\n\t\t\t\tu.rShiftTo(1, u)\r\n\t\t\t\tif (ac) {\r\n\t\t\t\t\tif (!a.isEven() || !b.isEven()) {\r\n\t\t\t\t\t\ta.addTo(this, a)\r\n\t\t\t\t\t\tb.subTo(m, b)\r\n\t\t\t\t\t}\r\n\t\t\t\t\ta.rShiftTo(1, a)\r\n\t\t\t\t} else if (!b.isEven()) {\r\n\t\t\t\t\tb.subTo(m, b)\r\n\t\t\t\t}\r\n\t\t\t\tb.rShiftTo(1, b)\r\n\t\t\t}\r\n\t\t\twhile (v.isEven()) {\r\n\t\t\t\tv.rShiftTo(1, v)\r\n\t\t\t\tif (ac) {\r\n\t\t\t\t\tif (!c.isEven() || !d.isEven()) {\r\n\t\t\t\t\t\tc.addTo(this, c)\r\n\t\t\t\t\t\td.subTo(m, d)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tc.rShiftTo(1, c)\r\n\t\t\t\t} else if (!d.isEven()) {\r\n\t\t\t\t\td.subTo(m, d)\r\n\t\t\t\t}\r\n\t\t\t\td.rShiftTo(1, d)\r\n\t\t\t}\r\n\t\t\tif (u.compareTo(v) >= 0) {\r\n\t\t\t\tu.subTo(v, u)\r\n\t\t\t\tif (ac) {\r\n\t\t\t\t\ta.subTo(c, a)\r\n\t\t\t\t}\r\n\t\t\t\tb.subTo(d, b)\r\n\t\t\t} else {\r\n\t\t\t\tv.subTo(u, v)\r\n\t\t\t\tif (ac) {\r\n\t\t\t\t\tc.subTo(a, c)\r\n\t\t\t\t}\r\n\t\t\t\td.subTo(b, d)\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (v.compareTo(BigInteger.ONE) != 0) {\r\n\t\t\treturn BigInteger.ZERO\r\n\t\t}\r\n\t\tif (d.compareTo(m) >= 0) {\r\n\t\t\treturn d.subtract(m)\r\n\t\t}\r\n\t\tif (d.signum() < 0) {\r\n\t\t\td.addTo(m, d)\r\n\t\t} else {\r\n\t\t\treturn d\r\n\t\t}\r\n\t\tif (d.signum() < 0) {\r\n\t\t\treturn d.add(m)\r\n\t\t} else {\r\n\t\t\treturn d\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.pow = bnPow;\r\n\t// (public) this^e\r\n\tBigInteger.prototype.pow = function (e) {\r\n\t\treturn this.exp(e, new NullExp())\r\n\t}\r\n\t// BigInteger.prototype.gcd = bnGCD;\r\n\t// (public) gcd(this,a) (HAC 14.54)\r\n\tBigInteger.prototype.gcd = function (a) {\r\n\t\tvar x = this.s < 0 ? this.negate() : this.clone()\r\n\t\tvar y = a.s < 0 ? a.negate() : a.clone()\r\n\t\tif (x.compareTo(y) < 0) {\r\n\t\t\tvar t = x\r\n\t\t\tx = y\r\n\t\t\ty = t\r\n\t\t}\r\n\t\tvar i = x.getLowestSetBit()\r\n\t\tvar g = y.getLowestSetBit()\r\n\t\tif (g < 0) {\r\n\t\t\treturn x\r\n\t\t}\r\n\t\tif (i < g) {\r\n\t\t\tg = i\r\n\t\t}\r\n\t\tif (g > 0) {\r\n\t\t\tx.rShiftTo(g, x)\r\n\t\t\ty.rShiftTo(g, y)\r\n\t\t}\r\n\t\twhile (x.signum() > 0) {\r\n\t\t\tif ((i = x.getLowestSetBit()) > 0) {\r\n\t\t\t\tx.rShiftTo(i, x)\r\n\t\t\t}\r\n\t\t\tif ((i = y.getLowestSetBit()) > 0) {\r\n\t\t\t\ty.rShiftTo(i, y)\r\n\t\t\t}\r\n\t\t\tif (x.compareTo(y) >= 0) {\r\n\t\t\t\tx.subTo(y, x)\r\n\t\t\t\tx.rShiftTo(1, x)\r\n\t\t\t} else {\r\n\t\t\t\ty.subTo(x, y)\r\n\t\t\t\ty.rShiftTo(1, y)\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (g > 0) {\r\n\t\t\ty.lShiftTo(g, y)\r\n\t\t}\r\n\t\treturn y\r\n\t}\r\n\t// BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\r\n\t// (public) test primality with certainty >= 1-.5^t\r\n\tBigInteger.prototype.isProbablePrime = function (t) {\r\n\t\tvar i\r\n\t\tvar x = this.abs()\r\n\t\tif (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\r\n\t\t\tfor (i = 0; i < lowprimes.length; ++i) {\r\n\t\t\t\tif (x[0] == lowprimes[i]) {\r\n\t\t\t\t\treturn true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (x.isEven()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti = 1\r\n\t\twhile (i < lowprimes.length) {\r\n\t\t\tvar m = lowprimes[i]\r\n\t\t\tvar j = i + 1\r\n\t\t\twhile (j < lowprimes.length && m < lplim) {\r\n\t\t\t\tm *= lowprimes[j++]\r\n\t\t\t}\r\n\t\t\tm = x.modInt(m)\r\n\t\t\twhile (i < j) {\r\n\t\t\t\tif (m % lowprimes[i++] == 0) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn x.millerRabin(t)\r\n\t}\r\n\t//#endregion PUBLIC\r\n\t//#region PROTECTED\r\n\t// BigInteger.prototype.copyTo = bnpCopyTo;\r\n\t// (protected) copy this to r\r\n\tBigInteger.prototype.copyTo = function (r) {\r\n\t\tfor (var i = this.t - 1; i >= 0; --i) {\r\n\t\t\tr[i] = this[i]\r\n\t\t}\r\n\t\tr.t = this.t\r\n\t\tr.s = this.s\r\n\t}\r\n\t// BigInteger.prototype.fromInt = bnpFromInt;\r\n\t// (protected) set from integer value x, -DV <= x < DV\r\n\tBigInteger.prototype.fromInt = function (x) {\r\n\t\tthis.t = 1\r\n\t\tthis.s = x < 0 ? -1 : 0\r\n\t\tif (x > 0) {\r\n\t\t\tthis[0] = x\r\n\t\t} else if (x < -1) {\r\n\t\t\tthis[0] = x + this.DV\r\n\t\t} else {\r\n\t\t\tthis.t = 0\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.fromString = bnpFromString;\r\n\t// (protected) set from string and radix\r\n\tBigInteger.prototype.fromString = function (s, b) {\r\n\t\tvar k\r\n\t\tif (b == 16) {\r\n\t\t\tk = 4\r\n\t\t} else if (b == 8) {\r\n\t\t\tk = 3\r\n\t\t} else if (b == 256) {\r\n\t\t\tk = 8\r\n\t\t\t/* byte array */\r\n\t\t} else if (b == 2) {\r\n\t\t\tk = 1\r\n\t\t} else if (b == 32) {\r\n\t\t\tk = 5\r\n\t\t} else if (b == 4) {\r\n\t\t\tk = 2\r\n\t\t} else {\r\n\t\t\tthis.fromRadix(s, b)\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.t = 0\r\n\t\tthis.s = 0\r\n\t\tvar i = s.length\r\n\t\tvar mi = false\r\n\t\tvar sh = 0\r\n\t\twhile (--i >= 0) {\r\n\t\t\tvar x = k == 8 ? +s[i] & 0xff : intAt(s, i)\r\n\t\t\tif (x < 0) {\r\n\t\t\t\tif (s.charAt(i) == '-') {\r\n\t\t\t\t\tmi = true\r\n\t\t\t\t}\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tmi = false\r\n\t\t\tif (sh == 0) {\r\n\t\t\t\tthis[this.t++] = x\r\n\t\t\t} else if (sh + k > this.DB) {\r\n\t\t\t\tthis[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh\r\n\t\t\t\tthis[this.t++] = x >> (this.DB - sh)\r\n\t\t\t} else {\r\n\t\t\t\tthis[this.t - 1] |= x << sh\r\n\t\t\t}\r\n\t\t\tsh += k\r\n\t\t\tif (sh >= this.DB) {\r\n\t\t\t\tsh -= this.DB\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (k == 8 && (+s[0] & 0x80) != 0) {\r\n\t\t\tthis.s = -1\r\n\t\t\tif (sh > 0) {\r\n\t\t\t\tthis[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.clamp()\r\n\t\tif (mi) {\r\n\t\t\tBigInteger.ZERO.subTo(this, this)\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.clamp = bnpClamp;\r\n\t// (protected) clamp off excess high words\r\n\tBigInteger.prototype.clamp = function () {\r\n\t\tvar c = this.s & this.DM\r\n\t\twhile (this.t > 0 && this[this.t - 1] == c) {\r\n\t\t\t--this.t\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\r\n\t// (protected) r = this << n*DB\r\n\tBigInteger.prototype.dlShiftTo = function (n, r) {\r\n\t\tvar i\r\n\t\tfor (i = this.t - 1; i >= 0; --i) {\r\n\t\t\tr[i + n] = this[i]\r\n\t\t}\r\n\t\tfor (i = n - 1; i >= 0; --i) {\r\n\t\t\tr[i] = 0\r\n\t\t}\r\n\t\tr.t = this.t + n\r\n\t\tr.s = this.s\r\n\t}\r\n\t// BigInteger.prototype.drShiftTo = bnpDRShiftTo;\r\n\t// (protected) r = this >> n*DB\r\n\tBigInteger.prototype.drShiftTo = function (n, r) {\r\n\t\tfor (var i = n; i < this.t; ++i) {\r\n\t\t\tr[i - n] = this[i]\r\n\t\t}\r\n\t\tr.t = Math.max(this.t - n, 0)\r\n\t\tr.s = this.s\r\n\t}\r\n\t// BigInteger.prototype.lShiftTo = bnpLShiftTo;\r\n\t// (protected) r = this << n\r\n\tBigInteger.prototype.lShiftTo = function (n, r) {\r\n\t\tvar bs = n % this.DB\r\n\t\tvar cbs = this.DB - bs\r\n\t\tvar bm = (1 << cbs) - 1\r\n\t\tvar ds = Math.floor(n / this.DB)\r\n\t\tvar c = (this.s << bs) & this.DM\r\n\t\tfor (var i = this.t - 1; i >= 0; --i) {\r\n\t\t\tr[i + ds + 1] = (this[i] >> cbs) | c\r\n\t\t\tc = (this[i] & bm) << bs\r\n\t\t}\r\n\t\tfor (var i = ds - 1; i >= 0; --i) {\r\n\t\t\tr[i] = 0\r\n\t\t}\r\n\t\tr[ds] = c\r\n\t\tr.t = this.t + ds + 1\r\n\t\tr.s = this.s\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.rShiftTo = bnpRShiftTo;\r\n\t// (protected) r = this >> n\r\n\tBigInteger.prototype.rShiftTo = function (n, r) {\r\n\t\tr.s = this.s\r\n\t\tvar ds = Math.floor(n / this.DB)\r\n\t\tif (ds >= this.t) {\r\n\t\t\tr.t = 0\r\n\t\t\treturn\r\n\t\t}\r\n\t\tvar bs = n % this.DB\r\n\t\tvar cbs = this.DB - bs\r\n\t\tvar bm = (1 << bs) - 1\r\n\t\tr[0] = this[ds] >> bs\r\n\t\tfor (var i = ds + 1; i < this.t; ++i) {\r\n\t\t\tr[i - ds - 1] |= (this[i] & bm) << cbs\r\n\t\t\tr[i - ds] = this[i] >> bs\r\n\t\t}\r\n\t\tif (bs > 0) {\r\n\t\t\tr[this.t - ds - 1] |= (this.s & bm) << cbs\r\n\t\t}\r\n\t\tr.t = this.t - ds\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.subTo = bnpSubTo;\r\n\t// (protected) r = this - a\r\n\tBigInteger.prototype.subTo = function (a, r) {\r\n\t\tvar i = 0\r\n\t\tvar c = 0\r\n\t\tvar m = Math.min(a.t, this.t)\r\n\t\twhile (i < m) {\r\n\t\t\tc += this[i] - a[i]\r\n\t\t\tr[i++] = c & this.DM\r\n\t\t\tc >>= this.DB\r\n\t\t}\r\n\t\tif (a.t < this.t) {\r\n\t\t\tc -= a.s\r\n\t\t\twhile (i < this.t) {\r\n\t\t\t\tc += this[i]\r\n\t\t\t\tr[i++] = c & this.DM\r\n\t\t\t\tc >>= this.DB\r\n\t\t\t}\r\n\t\t\tc += this.s\r\n\t\t} else {\r\n\t\t\tc += this.s\r\n\t\t\twhile (i < a.t) {\r\n\t\t\t\tc -= a[i]\r\n\t\t\t\tr[i++] = c & this.DM\r\n\t\t\t\tc >>= this.DB\r\n\t\t\t}\r\n\t\t\tc -= a.s\r\n\t\t}\r\n\t\tr.s = c < 0 ? -1 : 0\r\n\t\tif (c < -1) {\r\n\t\t\tr[i++] = this.DV + c\r\n\t\t} else if (c > 0) {\r\n\t\t\tr[i++] = c\r\n\t\t}\r\n\t\tr.t = i\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.multiplyTo = bnpMultiplyTo;\r\n\t// (protected) r = this * a, r != this,a (HAC 14.12)\r\n\t// \"this\" should be the larger one if appropriate.\r\n\tBigInteger.prototype.multiplyTo = function (a, r) {\r\n\t\tvar x = this.abs()\r\n\t\tvar y = a.abs()\r\n\t\tvar i = x.t\r\n\t\tr.t = i + y.t\r\n\t\twhile (--i >= 0) {\r\n\t\t\tr[i] = 0\r\n\t\t}\r\n\t\tfor (i = 0; i < y.t; ++i) {\r\n\t\t\tr[i + x.t] = x.am(0, y[i], r, i, 0, x.t)\r\n\t\t}\r\n\t\tr.s = 0\r\n\t\tr.clamp()\r\n\t\tif (this.s != a.s) {\r\n\t\t\tBigInteger.ZERO.subTo(r, r)\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.squareTo = bnpSquareTo;\r\n\t// (protected) r = this^2, r != this (HAC 14.16)\r\n\tBigInteger.prototype.squareTo = function (r) {\r\n\t\tvar x = this.abs()\r\n\t\tvar i = (r.t = 2 * x.t)\r\n\t\twhile (--i >= 0) {\r\n\t\t\tr[i] = 0\r\n\t\t}\r\n\t\tfor (i = 0; i < x.t - 1; ++i) {\r\n\t\t\tvar c = x.am(i, x[i], r, 2 * i, 0, 1)\r\n\t\t\tif ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\r\n\t\t\t\tr[i + x.t] -= x.DV\r\n\t\t\t\tr[i + x.t + 1] = 1\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (r.t > 0) {\r\n\t\t\tr[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1)\r\n\t\t}\r\n\t\tr.s = 0\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.divRemTo = bnpDivRemTo;\r\n\t// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\r\n\t// r != q, this != m. q or r may be null.\r\n\tBigInteger.prototype.divRemTo = function (m, q, r) {\r\n\t\tvar pm = m.abs()\r\n\t\tif (pm.t <= 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tvar pt = this.abs()\r\n\t\tif (pt.t < pm.t) {\r\n\t\t\tif (q != null) {\r\n\t\t\t\tq.fromInt(0)\r\n\t\t\t}\r\n\t\t\tif (r != null) {\r\n\t\t\t\tthis.copyTo(r)\r\n\t\t\t}\r\n\t\t\treturn\r\n\t\t}\r\n\t\tif (r == null) {\r\n\t\t\tr = nbi()\r\n\t\t}\r\n\t\tvar y = nbi()\r\n\t\tvar ts = this.s\r\n\t\tvar ms = m.s\r\n\t\tvar nsh = this.DB - nbits(pm[pm.t - 1]) // normalize modulus\r\n\t\tif (nsh > 0) {\r\n\t\t\tpm.lShiftTo(nsh, y)\r\n\t\t\tpt.lShiftTo(nsh, r)\r\n\t\t} else {\r\n\t\t\tpm.copyTo(y)\r\n\t\t\tpt.copyTo(r)\r\n\t\t}\r\n\t\tvar ys = y.t\r\n\t\tvar y0 = y[ys - 1]\r\n\t\tif (y0 == 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tvar yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0)\r\n\t\tvar d1 = this.FV / yt\r\n\t\tvar d2 = (1 << this.F1) / yt\r\n\t\tvar e = 1 << this.F2\r\n\t\tvar i = r.t\r\n\t\tvar j = i - ys\r\n\t\tvar t = q == null ? nbi() : q\r\n\t\ty.dlShiftTo(j, t)\r\n\t\tif (r.compareTo(t) >= 0) {\r\n\t\t\tr[r.t++] = 1\r\n\t\t\tr.subTo(t, r)\r\n\t\t}\r\n\t\tBigInteger.ONE.dlShiftTo(ys, t)\r\n\t\tt.subTo(y, y) // \"negative\" y so we can replace sub with am later\r\n\t\twhile (y.t < ys) {\r\n\t\t\ty[y.t++] = 0\r\n\t\t}\r\n\t\twhile (--j >= 0) {\r\n\t\t\t// Estimate quotient digit\r\n\t\t\tvar qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2)\r\n\t\t\tif ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\r\n\t\t\t\t// Try it out\r\n\t\t\t\ty.dlShiftTo(j, t)\r\n\t\t\t\tr.subTo(t, r)\r\n\t\t\t\twhile (r[i] < --qd) {\r\n\t\t\t\t\tr.subTo(t, r)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (q != null) {\r\n\t\t\tr.drShiftTo(ys, q)\r\n\t\t\tif (ts != ms) {\r\n\t\t\t\tBigInteger.ZERO.subTo(q, q)\r\n\t\t\t}\r\n\t\t}\r\n\t\tr.t = ys\r\n\t\tr.clamp()\r\n\t\tif (nsh > 0) {\r\n\t\t\tr.rShiftTo(nsh, r)\r\n\t\t} // Denormalize remainder\r\n\t\tif (ts < 0) {\r\n\t\t\tBigInteger.ZERO.subTo(r, r)\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.invDigit = bnpInvDigit;\r\n\t// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\r\n\t// justification:\r\n\t// xy == 1 (mod m)\r\n\t// xy = 1+km\r\n\t// xy(2-xy) = (1+km)(1-km)\r\n\t// x[y(2-xy)] = 1-k^2m^2\r\n\t// x[y(2-xy)] == 1 (mod m^2)\r\n\t// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\r\n\t// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\r\n\t// JS multiply \"overflows\" differently from C/C++, so care is needed here.\r\n\tBigInteger.prototype.invDigit = function () {\r\n\t\tif (this.t < 1) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\tvar x = this[0]\r\n\t\tif ((x & 1) == 0) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\tvar y = x & 3 // y == 1/x mod 2^2\r\n\t\ty = (y * (2 - (x & 0xf) * y)) & 0xf // y == 1/x mod 2^4\r\n\t\ty = (y * (2 - (x & 0xff) * y)) & 0xff // y == 1/x mod 2^8\r\n\t\ty = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff // y == 1/x mod 2^16\r\n\t\t// last step - calculate inverse mod DV directly;\r\n\t\t// assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\r\n\t\ty = (y * (2 - ((x * y) % this.DV))) % this.DV // y == 1/x mod 2^dbits\r\n\t\t// we really want the negative inverse, and -DV < y < DV\r\n\t\treturn y > 0 ? this.DV - y : -y\r\n\t}\r\n\t// BigInteger.prototype.isEven = bnpIsEven;\r\n\t// (protected) true iff this is even\r\n\tBigInteger.prototype.isEven = function () {\r\n\t\treturn (this.t > 0 ? this[0] & 1 : this.s) == 0\r\n\t}\r\n\t// BigInteger.prototype.exp = bnpExp;\r\n\t// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\r\n\tBigInteger.prototype.exp = function (e, z) {\r\n\t\tif (e > 0xffffffff || e < 1) {\r\n\t\t\treturn BigInteger.ONE\r\n\t\t}\r\n\t\tvar r = nbi()\r\n\t\tvar r2 = nbi()\r\n\t\tvar g = z.convert(this)\r\n\t\tvar i = nbits(e) - 1\r\n\t\tg.copyTo(r)\r\n\t\twhile (--i >= 0) {\r\n\t\t\tz.sqrTo(r, r2)\r\n\t\t\tif ((e & (1 << i)) > 0) {\r\n\t\t\t\tz.mulTo(r2, g, r)\r\n\t\t\t} else {\r\n\t\t\t\tvar t = r\r\n\t\t\t\tr = r2\r\n\t\t\t\tr2 = t\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn z.revert(r)\r\n\t}\r\n\t// BigInteger.prototype.chunkSize = bnpChunkSize;\r\n\t// (protected) return x s.t. r^x < DV\r\n\tBigInteger.prototype.chunkSize = function (r) {\r\n\t\treturn Math.floor((Math.LN2 * this.DB) / Math.log(r))\r\n\t}\r\n\t// BigInteger.prototype.toRadix = bnpToRadix;\r\n\t// (protected) convert to radix string\r\n\tBigInteger.prototype.toRadix = function (b) {\r\n\t\tif (b == null) {\r\n\t\t\tb = 10\r\n\t\t}\r\n\t\tif (this.signum() == 0 || b < 2 || b > 36) {\r\n\t\t\treturn '0'\r\n\t\t}\r\n\t\tvar cs = this.chunkSize(b)\r\n\t\tvar a = Math.pow(b, cs)\r\n\t\tvar d = nbv(a)\r\n\t\tvar y = nbi()\r\n\t\tvar z = nbi()\r\n\t\tvar r = ''\r\n\t\tthis.divRemTo(d, y, z)\r\n\t\twhile (y.signum() > 0) {\r\n\t\t\tr = (a + z.intValue()).toString(b).substr(1) + r\r\n\t\t\ty.divRemTo(d, y, z)\r\n\t\t}\r\n\t\treturn z.intValue().toString(b) + r\r\n\t}\r\n\t// BigInteger.prototype.fromRadix = bnpFromRadix;\r\n\t// (protected) convert from radix string\r\n\tBigInteger.prototype.fromRadix = function (s, b) {\r\n\t\tthis.fromInt(0)\r\n\t\tif (b == null) {\r\n\t\t\tb = 10\r\n\t\t}\r\n\t\tvar cs = this.chunkSize(b)\r\n\t\tvar d = Math.pow(b, cs)\r\n\t\tvar mi = false\r\n\t\tvar j = 0\r\n\t\tvar w = 0\r\n\t\tfor (var i = 0; i < s.length; ++i) {\r\n\t\t\tvar x = intAt(s, i)\r\n\t\t\tif (x < 0) {\r\n\t\t\t\tif (s.charAt(i) == '-' && this.signum() == 0) {\r\n\t\t\t\t\tmi = true\r\n\t\t\t\t}\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tw = b * w + x\r\n\t\t\tif (++j >= cs) {\r\n\t\t\t\tthis.dMultiply(d)\r\n\t\t\t\tthis.dAddOffset(w, 0)\r\n\t\t\t\tj = 0\r\n\t\t\t\tw = 0\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (j > 0) {\r\n\t\t\tthis.dMultiply(Math.pow(b, j))\r\n\t\t\tthis.dAddOffset(w, 0)\r\n\t\t}\r\n\t\tif (mi) {\r\n\t\t\tBigInteger.ZERO.subTo(this, this)\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.fromNumber = bnpFromNumber;\r\n\t// (protected) alternate constructor\r\n\tBigInteger.prototype.fromNumber = function (a, b, c) {\r\n\t\tif ('number' == typeof b) {\r\n\t\t\t// new BigInteger(int,int,RNG)\r\n\t\t\tif (a < 2) {\r\n\t\t\t\tthis.fromInt(1)\r\n\t\t\t} else {\r\n\t\t\t\tthis.fromNumber(a, c)\r\n\t\t\t\tif (!this.testBit(a - 1)) {\r\n\t\t\t\t\t// force MSB set\r\n\t\t\t\t\tthis.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.isEven()) {\r\n\t\t\t\t\tthis.dAddOffset(1, 0)\r\n\t\t\t\t} // force odd\r\n\t\t\t\twhile (!this.isProbablePrime(b)) {\r\n\t\t\t\t\tthis.dAddOffset(2, 0)\r\n\t\t\t\t\tif (this.bitLength() > a) {\r\n\t\t\t\t\t\tthis.subTo(BigInteger.ONE.shiftLeft(a - 1), this)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// new BigInteger(int,RNG)\r\n\t\t\tvar x = []\r\n\t\t\tvar t = a & 7\r\n\t\t\tx.length = (a >> 3) + 1\r\n\t\t\tb.nextBytes(x)\r\n\t\t\tif (t > 0) {\r\n\t\t\t\tx[0] &= (1 << t) - 1\r\n\t\t\t} else {\r\n\t\t\t\tx[0] = 0\r\n\t\t\t}\r\n\t\t\tthis.fromString(x, 256)\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\r\n\t// (protected) r = this op a (bitwise)\r\n\tBigInteger.prototype.bitwiseTo = function (a, op, r) {\r\n\t\tvar i\r\n\t\tvar f\r\n\t\tvar m = Math.min(a.t, this.t)\r\n\t\tfor (i = 0; i < m; ++i) {\r\n\t\t\tr[i] = op(this[i], a[i])\r\n\t\t}\r\n\t\tif (a.t < this.t) {\r\n\t\t\tf = a.s & this.DM\r\n\t\t\tfor (i = m; i < this.t; ++i) {\r\n\t\t\t\tr[i] = op(this[i], f)\r\n\t\t\t}\r\n\t\t\tr.t = this.t\r\n\t\t} else {\r\n\t\t\tf = this.s & this.DM\r\n\t\t\tfor (i = m; i < a.t; ++i) {\r\n\t\t\t\tr[i] = op(f, a[i])\r\n\t\t\t}\r\n\t\t\tr.t = a.t\r\n\t\t}\r\n\t\tr.s = op(this.s, a.s)\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.changeBit = bnpChangeBit;\r\n\t// (protected) this op (1<<n)\r\n\tBigInteger.prototype.changeBit = function (n, op) {\r\n\t\tvar r = BigInteger.ONE.shiftLeft(n)\r\n\t\tthis.bitwiseTo(r, op, r)\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.addTo = bnpAddTo;\r\n\t// (protected) r = this + a\r\n\tBigInteger.prototype.addTo = function (a, r) {\r\n\t\tvar i = 0\r\n\t\tvar c = 0\r\n\t\tvar m = Math.min(a.t, this.t)\r\n\t\twhile (i < m) {\r\n\t\t\tc += this[i] + a[i]\r\n\t\t\tr[i++] = c & this.DM\r\n\t\t\tc >>= this.DB\r\n\t\t}\r\n\t\tif (a.t < this.t) {\r\n\t\t\tc += a.s\r\n\t\t\twhile (i < this.t) {\r\n\t\t\t\tc += this[i]\r\n\t\t\t\tr[i++] = c & this.DM\r\n\t\t\t\tc >>= this.DB\r\n\t\t\t}\r\n\t\t\tc += this.s\r\n\t\t} else {\r\n\t\t\tc += this.s\r\n\t\t\twhile (i < a.t) {\r\n\t\t\t\tc += a[i]\r\n\t\t\t\tr[i++] = c & this.DM\r\n\t\t\t\tc >>= this.DB\r\n\t\t\t}\r\n\t\t\tc += a.s\r\n\t\t}\r\n\t\tr.s = c < 0 ? -1 : 0\r\n\t\tif (c > 0) {\r\n\t\t\tr[i++] = c\r\n\t\t} else if (c < -1) {\r\n\t\t\tr[i++] = this.DV + c\r\n\t\t}\r\n\t\tr.t = i\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.dMultiply = bnpDMultiply;\r\n\t// (protected) this *= n, this >= 0, 1 < n < DV\r\n\tBigInteger.prototype.dMultiply = function (n) {\r\n\t\tthis[this.t] = this.am(0, n - 1, this, 0, 0, this.t)\r\n\t\t++this.t\r\n\t\tthis.clamp()\r\n\t}\r\n\t// BigInteger.prototype.dAddOffset = bnpDAddOffset;\r\n\t// (protected) this += n << w words, this >= 0\r\n\tBigInteger.prototype.dAddOffset = function (n, w) {\r\n\t\tif (n == 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\twhile (this.t <= w) {\r\n\t\t\tthis[this.t++] = 0\r\n\t\t}\r\n\t\tthis[w] += n\r\n\t\twhile (this[w] >= this.DV) {\r\n\t\t\tthis[w] -= this.DV\r\n\t\t\tif (++w >= this.t) {\r\n\t\t\t\tthis[this.t++] = 0\r\n\t\t\t}\r\n\t\t\t++this[w]\r\n\t\t}\r\n\t}\r\n\t// BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\r\n\t// (protected) r = lower n words of \"this * a\", a.t <= n\r\n\t// \"this\" should be the larger one if appropriate.\r\n\tBigInteger.prototype.multiplyLowerTo = function (a, n, r) {\r\n\t\tvar i = Math.min(this.t + a.t, n)\r\n\t\tr.s = 0 // assumes a,this >= 0\r\n\t\tr.t = i\r\n\t\twhile (i > 0) {\r\n\t\t\tr[--i] = 0\r\n\t\t}\r\n\t\tfor (var j = r.t - this.t; i < j; ++i) {\r\n\t\t\tr[i + this.t] = this.am(0, a[i], r, i, 0, this.t)\r\n\t\t}\r\n\t\tfor (var j = Math.min(a.t, n); i < j; ++i) {\r\n\t\t\tthis.am(0, a[i], r, i, 0, n - i)\r\n\t\t}\r\n\t\tr.clamp()\r\n\t}\r\n\t// BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\r\n\t// (protected) r = \"this * a\" without lower n words, n > 0\r\n\t// \"this\" should be the larger one if appropriate.\r\n\tBigInteger.prototype.multiplyUpperTo = function (a, n, r) {\r\n\t\t--n\r\n\t\tvar i = (r.t = this.t + a.t - n)\r\n\t\tr.s = 0 // assumes a,this >= 0\r\n\t\twhile (--i >= 0) {\r\n\t\t\tr[i] = 0\r\n\t\t}\r\n\t\tfor (i = Math.max(n - this.t, 0); i < a.t; ++i) {\r\n\t\t\tr[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n)\r\n\t\t}\r\n\t\tr.clamp()\r\n\t\tr.drShiftTo(1, r)\r\n\t}\r\n\t// BigInteger.prototype.modInt = bnpModInt;\r\n\t// (protected) this % n, n < 2^26\r\n\tBigInteger.prototype.modInt = function (n) {\r\n\t\tif (n <= 0) {\r\n\t\t\treturn 0\r\n\t\t}\r\n\t\tvar d = this.DV % n\r\n\t\tvar r = this.s < 0 ? n - 1 : 0\r\n\t\tif (this.t > 0) {\r\n\t\t\tif (d == 0) {\r\n\t\t\t\tr = this[0] % n\r\n\t\t\t} else {\r\n\t\t\t\tfor (var i = this.t - 1; i >= 0; --i) {\r\n\t\t\t\t\tr = (d * r + this[i]) % n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// BigInteger.prototype.millerRabin = bnpMillerRabin;\r\n\t// (protected) true if probably prime (HAC 4.24, Miller-Rabin)\r\n\tBigInteger.prototype.millerRabin = function (t) {\r\n\t\tvar n1 = this.subtract(BigInteger.ONE)\r\n\t\tvar k = n1.getLowestSetBit()\r\n\t\tif (k <= 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tvar r = n1.shiftRight(k)\r\n\t\tt = (t + 1) >> 1\r\n\t\tif (t > lowprimes.length) {\r\n\t\t\tt = lowprimes.length\r\n\t\t}\r\n\t\tvar a = nbi()\r\n\t\tfor (var i = 0; i < t; ++i) {\r\n\t\t\t// Pick bases at random, instead of starting at 2\r\n\t\t\ta.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)])\r\n\t\t\tvar y = a.modPow(r, this)\r\n\t\t\tif (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\r\n\t\t\t\tvar j = 1\r\n\t\t\t\twhile (j++ < k && y.compareTo(n1) != 0) {\r\n\t\t\t\t\ty = y.modPowInt(2, this)\r\n\t\t\t\t\tif (y.compareTo(BigInteger.ONE) == 0) {\r\n\t\t\t\t\t\treturn false\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (y.compareTo(n1) != 0) {\r\n\t\t\t\t\treturn false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\t// BigInteger.prototype.square = bnSquare;\r\n\t// (public) this^2\r\n\tBigInteger.prototype.square = function () {\r\n\t\tvar r = nbi()\r\n\t\tthis.squareTo(r)\r\n\t\treturn r\r\n\t}\r\n\t//#region ASYNC\r\n\t// Public API method\r\n\tBigInteger.prototype.gcda = function (a, callback) {\r\n\t\tvar x = this.s < 0 ? this.negate() : this.clone()\r\n\t\tvar y = a.s < 0 ? a.negate() : a.clone()\r\n\t\tif (x.compareTo(y) < 0) {\r\n\t\t\tvar t = x\r\n\t\t\tx = y\r\n\t\t\ty = t\r\n\t\t}\r\n\t\tvar i = x.getLowestSetBit()\r\n\t\tvar g = y.getLowestSetBit()\r\n\t\tif (g < 0) {\r\n\t\t\tcallback(x)\r\n\t\t\treturn\r\n\t\t}\r\n\t\tif (i < g) {\r\n\t\t\tg = i\r\n\t\t}\r\n\t\tif (g > 0) {\r\n\t\t\tx.rShiftTo(g, x)\r\n\t\t\ty.rShiftTo(g, y)\r\n\t\t}\r\n\t\t// Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\r\n\t\tvar gcda1 = function () {\r\n\t\t\tif ((i = x.getLowestSetBit()) > 0) {\r\n\t\t\t\tx.rShiftTo(i, x)\r\n\t\t\t}\r\n\t\t\tif ((i = y.getLowestSetBit()) > 0) {\r\n\t\t\t\ty.rShiftTo(i, y)\r\n\t\t\t}\r\n\t\t\tif (x.compareTo(y) >= 0) {\r\n\t\t\t\tx.subTo(y, x)\r\n\t\t\t\tx.rShiftTo(1, x)\r\n\t\t\t} else {\r\n\t\t\t\ty.subTo(x, y)\r\n\t\t\t\ty.rShiftTo(1, y)\r\n\t\t\t}\r\n\t\t\tif (!(x.signum() > 0)) {\r\n\t\t\t\tif (g > 0) {\r\n\t\t\t\t\ty.lShiftTo(g, y)\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tcallback(y)\r\n\t\t\t\t}, 0) // escape\r\n\t\t\t} else {\r\n\t\t\t\tsetTimeout(gcda1, 0)\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetTimeout(gcda1, 10)\r\n\t}\r\n\t// (protected) alternate constructor\r\n\tBigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\r\n\t\tif ('number' == typeof b) {\r\n\t\t\tif (a < 2) {\r\n\t\t\t\tthis.fromInt(1)\r\n\t\t\t} else {\r\n\t\t\t\tthis.fromNumber(a, c)\r\n\t\t\t\tif (!this.testBit(a - 1)) {\r\n\t\t\t\t\tthis.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.isEven()) {\r\n\t\t\t\t\tthis.dAddOffset(1, 0)\r\n\t\t\t\t}\r\n\t\t\t\tvar bnp_1 = this\r\n\t\t\t\tvar bnpfn1_1 = function () {\r\n\t\t\t\t\tbnp_1.dAddOffset(2, 0)\r\n\t\t\t\t\tif (bnp_1.bitLength() > a) {\r\n\t\t\t\t\t\tbnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (bnp_1.isProbablePrime(b)) {\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tcallback()\r\n\t\t\t\t\t\t}, 0) // escape\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsetTimeout(bnpfn1_1, 0)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(bnpfn1_1, 0)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar x = []\r\n\t\t\tvar t = a & 7\r\n\t\t\tx.length = (a >> 3) + 1\r\n\t\t\tb.nextBytes(x)\r\n\t\t\tif (t > 0) {\r\n\t\t\t\tx[0] &= (1 << t) - 1\r\n\t\t\t} else {\r\n\t\t\t\tx[0] = 0\r\n\t\t\t}\r\n\t\t\tthis.fromString(x, 256)\r\n\t\t}\r\n\t}\r\n\treturn BigInteger\r\n})()\r\nexport { BigInteger }\r\n//#region REDUCERS\r\n//#region NullExp\r\nvar NullExp = /** @class */ (function () {\r\n\tfunction NullExp() {}\r\n\t// NullExp.prototype.convert = nNop;\r\n\tNullExp.prototype.convert = function (x) {\r\n\t\treturn x\r\n\t}\r\n\t// NullExp.prototype.revert = nNop;\r\n\tNullExp.prototype.revert = function (x) {\r\n\t\treturn x\r\n\t}\r\n\t// NullExp.prototype.mulTo = nMulTo;\r\n\tNullExp.prototype.mulTo = function (x, y, r) {\r\n\t\tx.multiplyTo(y, r)\r\n\t}\r\n\t// NullExp.prototype.sqrTo = nSqrTo;\r\n\tNullExp.prototype.sqrTo = function (x, r) {\r\n\t\tx.squareTo(r)\r\n\t}\r\n\treturn NullExp\r\n})()\r\n// Modular reduction using \"classic\" algorithm\r\nvar Classic = /** @class */ (function () {\r\n\tfunction Classic(m) {\r\n\t\tthis.m = m\r\n\t}\r\n\t// Classic.prototype.convert = cConvert;\r\n\tClassic.prototype.convert = function (x) {\r\n\t\tif (x.s < 0 || x.compareTo(this.m) >= 0) {\r\n\t\t\treturn x.mod(this.m)\r\n\t\t} else {\r\n\t\t\treturn x\r\n\t\t}\r\n\t}\r\n\t// Classic.prototype.revert = cRevert;\r\n\tClassic.prototype.revert = function (x) {\r\n\t\treturn x\r\n\t}\r\n\t// Classic.prototype.reduce = cReduce;\r\n\tClassic.prototype.reduce = function (x) {\r\n\t\tx.divRemTo(this.m, null, x)\r\n\t}\r\n\t// Classic.prototype.mulTo = cMulTo;\r\n\tClassic.prototype.mulTo = function (x, y, r) {\r\n\t\tx.multiplyTo(y, r)\r\n\t\tthis.reduce(r)\r\n\t}\r\n\t// Classic.prototype.sqrTo = cSqrTo;\r\n\tClassic.prototype.sqrTo = function (x, r) {\r\n\t\tx.squareTo(r)\r\n\t\tthis.reduce(r)\r\n\t}\r\n\treturn Classic\r\n})()\r\n//#endregion\r\n//#region Montgomery\r\n// Montgomery reduction\r\nvar Montgomery = /** @class */ (function () {\r\n\tfunction Montgomery(m) {\r\n\t\tthis.m = m\r\n\t\tthis.mp = m.invDigit()\r\n\t\tthis.mpl = this.mp & 0x7fff\r\n\t\tthis.mph = this.mp >> 15\r\n\t\tthis.um = (1 << (m.DB - 15)) - 1\r\n\t\tthis.mt2 = 2 * m.t\r\n\t}\r\n\t// Montgomery.prototype.convert = montConvert;\r\n\t// xR mod m\r\n\tMontgomery.prototype.convert = function (x) {\r\n\t\tvar r = nbi()\r\n\t\tx.abs().dlShiftTo(this.m.t, r)\r\n\t\tr.divRemTo(this.m, null, r)\r\n\t\tif (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\r\n\t\t\tthis.m.subTo(r, r)\r\n\t\t}\r\n\t\treturn r\r\n\t}\r\n\t// Montgomery.prototype.revert = montRevert;\r\n\t// x/R mod m\r\n\tMontgomery.prototype.revert = function (x) {\r\n\t\tvar r = nbi()\r\n\t\tx.copyTo(r)\r\n\t\tthis.reduce(r)\r\n\t\treturn r\r\n\t}\r\n\t// Montgomery.prototype.reduce = montReduce;\r\n\t// x = x/R mod m (HAC 14.32)\r\n\tMontgomery.prototype.reduce = function (x) {\r\n\t\twhile (x.t <= this.mt2) {\r\n\t\t\t// pad x so am has enough room later\r\n\t\t\tx[x.t++] = 0\r\n\t\t}\r\n\t\tfor (var i = 0; i < this.m.t; ++i) {\r\n\t\t\t// faster way of calculating u0 = x[i]*mp mod DV\r\n\t\t\tvar j = x[i] & 0x7fff\r\n\t\t\tvar u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM\r\n\t\t\t// use am to combine the multiply-shift-add into one call\r\n\t\t\tj = i + this.m.t\r\n\t\t\tx[j] += this.m.am(0, u0, x, i, 0, this.m.t)\r\n\t\t\t// propagate carry\r\n\t\t\twhile (x[j] >= x.DV) {\r\n\t\t\t\tx[j] -= x.DV\r\n\t\t\t\tx[++j]++\r\n\t\t\t}\r\n\t\t}\r\n\t\tx.clamp()\r\n\t\tx.drShiftTo(this.m.t, x)\r\n\t\tif (x.compareTo(this.m) >= 0) {\r\n\t\t\tx.subTo(this.m, x)\r\n\t\t}\r\n\t}\r\n\t// Montgomery.prototype.mulTo = montMulTo;\r\n\t// r = \"xy/R mod m\"; x,y != r\r\n\tMontgomery.prototype.mulTo = function (x, y, r) {\r\n\t\tx.multiplyTo(y, r)\r\n\t\tthis.reduce(r)\r\n\t}\r\n\t// Montgomery.prototype.sqrTo = montSqrTo;\r\n\t// r = \"x^2/R mod m\"; x != r\r\n\tMontgomery.prototype.sqrTo = function (x, r) {\r\n\t\tx.squareTo(r)\r\n\t\tthis.reduce(r)\r\n\t}\r\n\treturn Montgomery\r\n})()\r\n//#endregion Montgomery\r\n//#region Barrett\r\n// Barrett modular reduction\r\nvar Barrett = /** @class */ (function () {\r\n\tfunction Barrett(m) {\r\n\t\tthis.m = m\r\n\t\t// setup Barrett\r\n\t\tthis.r2 = nbi()\r\n\t\tthis.q3 = nbi()\r\n\t\tBigInteger.ONE.dlShiftTo(2 * m.t, this.r2)\r\n\t\tthis.mu = this.r2.divide(m)\r\n\t}\r\n\t// Barrett.prototype.convert = barrettConvert;\r\n\tBarrett.prototype.convert = function (x) {\r\n\t\tif (x.s < 0 || x.t > 2 * this.m.t) {\r\n\t\t\treturn x.mod(this.m)\r\n\t\t} else if (x.compareTo(this.m) < 0) {\r\n\t\t\treturn x\r\n\t\t} else {\r\n\t\t\tvar r = nbi()\r\n\t\t\tx.copyTo(r)\r\n\t\t\tthis.reduce(r)\r\n\t\t\treturn r\r\n\t\t}\r\n\t}\r\n\t// Barrett.prototype.revert = barrettRevert;\r\n\tBarrett.prototype.revert = function (x) {\r\n\t\treturn x\r\n\t}\r\n\t// Barrett.prototype.reduce = barrettReduce;\r\n\t// x = x mod m (HAC 14.42)\r\n\tBarrett.prototype.reduce = function (x) {\r\n\t\tx.drShiftTo(this.m.t - 1, this.r2)\r\n\t\tif (x.t > this.m.t + 1) {\r\n\t\t\tx.t = this.m.t + 1\r\n\t\t\tx.clamp()\r\n\t\t}\r\n\t\tthis.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3)\r\n\t\tthis.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2)\r\n\t\twhile (x.compareTo(this.r2) < 0) {\r\n\t\t\tx.dAddOffset(1, this.m.t + 1)\r\n\t\t}\r\n\t\tx.subTo(this.r2, x)\r\n\t\twhile (x.compareTo(this.m) >= 0) {\r\n\t\t\tx.subTo(this.m, x)\r\n\t\t}\r\n\t}\r\n\t// Barrett.prototype.mulTo = barrettMulTo;\r\n\t// r = x*y mod m; x,y != r\r\n\tBarrett.prototype.mulTo = function (x, y, r) {\r\n\t\tx.multiplyTo(y, r)\r\n\t\tthis.reduce(r)\r\n\t}\r\n\t// Barrett.prototype.sqrTo = barrettSqrTo;\r\n\t// r = x^2 mod m; x != r\r\n\tBarrett.prototype.sqrTo = function (x, r) {\r\n\t\tx.squareTo(r)\r\n\t\tthis.reduce(r)\r\n\t}\r\n\treturn Barrett\r\n})()\r\n//#endregion\r\n//#endregion REDUCERS\r\n// return new, unset BigInteger\r\nexport function nbi() {\r\n\treturn new BigInteger(null)\r\n}\r\nexport function parseBigInt(str, r) {\r\n\treturn new BigInteger(str, r)\r\n}\r\n// am: Compute w_j += (x*this_i), propagate carries,\r\n// c is initial carry, returns final carry.\r\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\r\n// We need to select the fastest one that works in this environment.\r\nvar inBrowser = typeof navigator !== 'undefined'\r\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\r\n\t// am2 avoids a big mult-and-extract completely.\r\n\t// Max digit bits should be <= 30 because we do bitwise ops\r\n\t// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\r\n\tBigInteger.prototype.am = function am2(i, x, w, j, c, n) {\r\n\t\tvar xl = x & 0x7fff\r\n\t\tvar xh = x >> 15\r\n\t\twhile (--n >= 0) {\r\n\t\t\tvar l = this[i] & 0x7fff\r\n\t\t\tvar h = this[i++] >> 15\r\n\t\t\tvar m = xh * l + h * xl\r\n\t\t\tl = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff)\r\n\t\t\tc = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30)\r\n\t\t\tw[j++] = l & 0x3fffffff\r\n\t\t}\r\n\t\treturn c\r\n\t}\r\n\tdbits = 30\r\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\r\n\t// am1: use a single mult and divide to get the high bits,\r\n\t// max digit bits should be 26 because\r\n\t// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\r\n\tBigInteger.prototype.am = function am1(i, x, w, j, c, n) {\r\n\t\twhile (--n >= 0) {\r\n\t\t\tvar v = x * this[i++] + w[j] + c\r\n\t\t\tc = Math.floor(v / 0x4000000)\r\n\t\t\tw[j++] = v & 0x3ffffff\r\n\t\t}\r\n\t\treturn c\r\n\t}\r\n\tdbits = 26\r\n} else {\r\n\t// Mozilla/Netscape seems to prefer am3\r\n\t// Alternately, set max digit bits to 28 since some\r\n\t// browsers slow down when dealing with 32-bit numbers.\r\n\tBigInteger.prototype.am = function am3(i, x, w, j, c, n) {\r\n\t\tvar xl = x & 0x3fff\r\n\t\tvar xh = x >> 14\r\n\t\twhile (--n >= 0) {\r\n\t\t\tvar l = this[i] & 0x3fff\r\n\t\t\tvar h = this[i++] >> 14\r\n\t\t\tvar m = xh * l + h * xl\r\n\t\t\tl = xl * l + ((m & 0x3fff) << 14) + w[j] + c\r\n\t\t\tc = (l >> 28) + (m >> 14) + xh * h\r\n\t\t\tw[j++] = l & 0xfffffff\r\n\t\t}\r\n\t\treturn c\r\n\t}\r\n\tdbits = 28\r\n}\r\nBigInteger.prototype.DB = dbits\r\nBigInteger.prototype.DM = (1 << dbits) - 1\r\nBigInteger.prototype.DV = 1 << dbits\r\nvar BI_FP = 52\r\nBigInteger.prototype.FV = Math.pow(2, BI_FP)\r\nBigInteger.prototype.F1 = BI_FP - dbits\r\nBigInteger.prototype.F2 = 2 * dbits - BI_FP\r\n// Digit conversions\r\nvar BI_RC = []\r\nvar rr\r\nvar vv\r\nrr = '0'.charCodeAt(0)\r\nfor (vv = 0; vv <= 9; ++vv) {\r\n\tBI_RC[rr++] = vv\r\n}\r\nrr = 'a'.charCodeAt(0)\r\nfor (vv = 10; vv < 36; ++vv) {\r\n\tBI_RC[rr++] = vv\r\n}\r\nrr = 'A'.charCodeAt(0)\r\nfor (vv = 10; vv < 36; ++vv) {\r\n\tBI_RC[rr++] = vv\r\n}\r\nexport function intAt(s, i) {\r\n\tvar c = BI_RC[s.charCodeAt(i)]\r\n\treturn c == null ? -1 : c\r\n}\r\n// return bigint initialized to value\r\nexport function nbv(i) {\r\n\tvar r = nbi()\r\n\tr.fromInt(i)\r\n\treturn r\r\n}\r\n// returns bit length of the integer x\r\nexport function nbits(x) {\r\n\tvar r = 1\r\n\tvar t\r\n\tif ((t = x >>> 16) != 0) {\r\n\t\tx = t\r\n\t\tr += 16\r\n\t}\r\n\tif ((t = x >> 8) != 0) {\r\n\t\tx = t\r\n\t\tr += 8\r\n\t}\r\n\tif ((t = x >> 4) != 0) {\r\n\t\tx = t\r\n\t\tr += 4\r\n\t}\r\n\tif ((t = x >> 2) != 0) {\r\n\t\tx = t\r\n\t\tr += 2\r\n\t}\r\n\tif ((t = x >> 1) != 0) {\r\n\t\tx = t\r\n\t\tr += 1\r\n\t}\r\n\treturn r\r\n}\r\n// \"constants\"\r\nBigInteger.ZERO = nbv(0)\r\nBigInteger.ONE = nbv(1)\r\n"],"names":["BigInteger","NullExp","Classic","Montgomery","Barrett"],"mappings":";;AAOA,IAAI,KAAA,CAAA;AAEJ,IAAI,MAAS,GAAA,eAAA,CAAA;AACb,IAAI,IAAA,GAAA,CAAQ,SAAS,QAAa,KAAA,QAAA,CAAA;AAElC,IAAI,SAAY,GAAA;AAAA,EACf,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAC5F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,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"}
|
|
1
|
+
{"version":3,"file":"jsbn.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/jsbn.js"],"sourcesContent":["// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n/* eslint-disable */\nimport { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from './util'\n// Bits per digit\nvar dbits\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe\nvar j_lm = (canary & 0xffffff) == 0xefcafe\n//#region\nvar lowprimes = [\n\t2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,\n\t101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193,\n\t197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307,\n\t311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421,\n\t431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547,\n\t557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,\n\t661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797,\n\t809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929,\n\t937, 941, 947, 953, 967, 971, 977, 983, 991, 997,\n]\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1]\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n\tfunction BigInteger(a, b, c) {\n\t\tif (a != null) {\n\t\t\tif ('number' == typeof a) {\n\t\t\t\tthis.fromNumber(a, b, c)\n\t\t\t} else if (b == null && 'string' != typeof a) {\n\t\t\t\tthis.fromString(a, 256)\n\t\t\t} else {\n\t\t\t\tthis.fromString(a, b)\n\t\t\t}\n\t\t}\n\t}\n\t//#region PUBLIC\n\t// BigInteger.prototype.toString = bnToString;\n\t// (public) return string representation in given radix\n\tBigInteger.prototype.toString = function (b) {\n\t\tif (this.s < 0) {\n\t\t\treturn '-' + this.negate().toString(b)\n\t\t}\n\t\tvar k\n\t\tif (b == 16) {\n\t\t\tk = 4\n\t\t} else if (b == 8) {\n\t\t\tk = 3\n\t\t} else if (b == 2) {\n\t\t\tk = 1\n\t\t} else if (b == 32) {\n\t\t\tk = 5\n\t\t} else if (b == 4) {\n\t\t\tk = 2\n\t\t} else {\n\t\t\treturn this.toRadix(b)\n\t\t}\n\t\tvar km = (1 << k) - 1\n\t\tvar d\n\t\tvar m = false\n\t\tvar r = ''\n\t\tvar i = this.t\n\t\tvar p = this.DB - ((i * this.DB) % k)\n\t\tif (i-- > 0) {\n\t\t\tif (p < this.DB && (d = this[i] >> p) > 0) {\n\t\t\t\tm = true\n\t\t\t\tr = int2char(d)\n\t\t\t}\n\t\t\twhile (i >= 0) {\n\t\t\t\tif (p < k) {\n\t\t\t\t\td = (this[i] & ((1 << p) - 1)) << (k - p)\n\t\t\t\t\td |= this[--i] >> (p += this.DB - k)\n\t\t\t\t} else {\n\t\t\t\t\td = (this[i] >> (p -= k)) & km\n\t\t\t\t\tif (p <= 0) {\n\t\t\t\t\t\tp += this.DB\n\t\t\t\t\t\t--i\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (d > 0) {\n\t\t\t\t\tm = true\n\t\t\t\t}\n\t\t\t\tif (m) {\n\t\t\t\t\tr += int2char(d)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn m ? r : '0'\n\t}\n\t// BigInteger.prototype.negate = bnNegate;\n\t// (public) -this\n\tBigInteger.prototype.negate = function () {\n\t\tvar r = nbi()\n\t\tBigInteger.ZERO.subTo(this, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.abs = bnAbs;\n\t// (public) |this|\n\tBigInteger.prototype.abs = function () {\n\t\treturn this.s < 0 ? this.negate() : this\n\t}\n\t// BigInteger.prototype.compareTo = bnCompareTo;\n\t// (public) return + if this > a, - if this < a, 0 if equal\n\tBigInteger.prototype.compareTo = function (a) {\n\t\tvar r = this.s - a.s\n\t\tif (r != 0) {\n\t\t\treturn r\n\t\t}\n\t\tvar i = this.t\n\t\tr = i - a.t\n\t\tif (r != 0) {\n\t\t\treturn this.s < 0 ? -r : r\n\t\t}\n\t\twhile (--i >= 0) {\n\t\t\tif ((r = this[i] - a[i]) != 0) {\n\t\t\t\treturn r\n\t\t\t}\n\t\t}\n\t\treturn 0\n\t}\n\t// BigInteger.prototype.bitLength = bnBitLength;\n\t// (public) return the number of bits in \"this\"\n\tBigInteger.prototype.bitLength = function () {\n\t\tif (this.t <= 0) {\n\t\t\treturn 0\n\t\t}\n\t\treturn this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM))\n\t}\n\t// BigInteger.prototype.mod = bnMod;\n\t// (public) this mod a\n\tBigInteger.prototype.mod = function (a) {\n\t\tvar r = nbi()\n\t\tthis.abs().divRemTo(a, null, r)\n\t\tif (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n\t\t\ta.subTo(r, r)\n\t\t}\n\t\treturn r\n\t}\n\t// BigInteger.prototype.modPowInt = bnModPowInt;\n\t// (public) this^e % m, 0 <= e < 2^32\n\tBigInteger.prototype.modPowInt = function (e, m) {\n\t\tvar z\n\t\tif (e < 256 || m.isEven()) {\n\t\t\tz = new Classic(m)\n\t\t} else {\n\t\t\tz = new Montgomery(m)\n\t\t}\n\t\treturn this.exp(e, z)\n\t}\n\t// BigInteger.prototype.clone = bnClone;\n\t// (public)\n\tBigInteger.prototype.clone = function () {\n\t\tvar r = nbi()\n\t\tthis.copyTo(r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.intValue = bnIntValue;\n\t// (public) return value as integer\n\tBigInteger.prototype.intValue = function () {\n\t\tif (this.s < 0) {\n\t\t\tif (this.t == 1) {\n\t\t\t\treturn this[0] - this.DV\n\t\t\t} else if (this.t == 0) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t} else if (this.t == 1) {\n\t\t\treturn this[0]\n\t\t} else if (this.t == 0) {\n\t\t\treturn 0\n\t\t}\n\t\t// assumes 16 < DB < 32\n\t\treturn ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]\n\t}\n\t// BigInteger.prototype.byteValue = bnByteValue;\n\t// (public) return value as byte\n\tBigInteger.prototype.byteValue = function () {\n\t\treturn this.t == 0 ? this.s : (this[0] << 24) >> 24\n\t}\n\t// BigInteger.prototype.shortValue = bnShortValue;\n\t// (public) return value as short (assumes DB>=16)\n\tBigInteger.prototype.shortValue = function () {\n\t\treturn this.t == 0 ? this.s : (this[0] << 16) >> 16\n\t}\n\t// BigInteger.prototype.signum = bnSigNum;\n\t// (public) 0 if this == 0, 1 if this > 0\n\tBigInteger.prototype.signum = function () {\n\t\tif (this.s < 0) {\n\t\t\treturn -1\n\t\t} else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\n\t\t\treturn 0\n\t\t} else {\n\t\t\treturn 1\n\t\t}\n\t}\n\t// BigInteger.prototype.toByteArray = bnToByteArray;\n\t// (public) convert to bigendian byte array\n\tBigInteger.prototype.toByteArray = function () {\n\t\tvar i = this.t\n\t\tvar r = []\n\t\tr[0] = this.s\n\t\tvar p = this.DB - ((i * this.DB) % 8)\n\t\tvar d\n\t\tvar k = 0\n\t\tif (i-- > 0) {\n\t\t\tif (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n\t\t\t\tr[k++] = d | (this.s << (this.DB - p))\n\t\t\t}\n\t\t\twhile (i >= 0) {\n\t\t\t\tif (p < 8) {\n\t\t\t\t\td = (this[i] & ((1 << p) - 1)) << (8 - p)\n\t\t\t\t\td |= this[--i] >> (p += this.DB - 8)\n\t\t\t\t} else {\n\t\t\t\t\td = (this[i] >> (p -= 8)) & 0xff\n\t\t\t\t\tif (p <= 0) {\n\t\t\t\t\t\tp += this.DB\n\t\t\t\t\t\t--i\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ((d & 0x80) != 0) {\n\t\t\t\t\td |= -256\n\t\t\t\t}\n\t\t\t\tif (k == 0 && (this.s & 0x80) != (d & 0x80)) {\n\t\t\t\t\t++k\n\t\t\t\t}\n\t\t\t\tif (k > 0 || d != this.s) {\n\t\t\t\t\tr[k++] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn r\n\t}\n\t// BigInteger.prototype.equals = bnEquals;\n\tBigInteger.prototype.equals = function (a) {\n\t\treturn this.compareTo(a) == 0\n\t}\n\t// BigInteger.prototype.min = bnMin;\n\tBigInteger.prototype.min = function (a) {\n\t\treturn this.compareTo(a) < 0 ? this : a\n\t}\n\t// BigInteger.prototype.max = bnMax;\n\tBigInteger.prototype.max = function (a) {\n\t\treturn this.compareTo(a) > 0 ? this : a\n\t}\n\t// BigInteger.prototype.and = bnAnd;\n\tBigInteger.prototype.and = function (a) {\n\t\tvar r = nbi()\n\t\tthis.bitwiseTo(a, op_and, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.or = bnOr;\n\tBigInteger.prototype.or = function (a) {\n\t\tvar r = nbi()\n\t\tthis.bitwiseTo(a, op_or, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.xor = bnXor;\n\tBigInteger.prototype.xor = function (a) {\n\t\tvar r = nbi()\n\t\tthis.bitwiseTo(a, op_xor, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.andNot = bnAndNot;\n\tBigInteger.prototype.andNot = function (a) {\n\t\tvar r = nbi()\n\t\tthis.bitwiseTo(a, op_andnot, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.not = bnNot;\n\t// (public) ~this\n\tBigInteger.prototype.not = function () {\n\t\tvar r = nbi()\n\t\tfor (var i = 0; i < this.t; ++i) {\n\t\t\tr[i] = this.DM & ~this[i]\n\t\t}\n\t\tr.t = this.t\n\t\tr.s = ~this.s\n\t\treturn r\n\t}\n\t// BigInteger.prototype.shiftLeft = bnShiftLeft;\n\t// (public) this << n\n\tBigInteger.prototype.shiftLeft = function (n) {\n\t\tvar r = nbi()\n\t\tif (n < 0) {\n\t\t\tthis.rShiftTo(-n, r)\n\t\t} else {\n\t\t\tthis.lShiftTo(n, r)\n\t\t}\n\t\treturn r\n\t}\n\t// BigInteger.prototype.shiftRight = bnShiftRight;\n\t// (public) this >> n\n\tBigInteger.prototype.shiftRight = function (n) {\n\t\tvar r = nbi()\n\t\tif (n < 0) {\n\t\t\tthis.lShiftTo(-n, r)\n\t\t} else {\n\t\t\tthis.rShiftTo(n, r)\n\t\t}\n\t\treturn r\n\t}\n\t// BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n\t// (public) returns index of lowest 1-bit (or -1 if none)\n\tBigInteger.prototype.getLowestSetBit = function () {\n\t\tfor (var i = 0; i < this.t; ++i) {\n\t\t\tif (this[i] != 0) {\n\t\t\t\treturn i * this.DB + lbit(this[i])\n\t\t\t}\n\t\t}\n\t\tif (this.s < 0) {\n\t\t\treturn this.t * this.DB\n\t\t}\n\t\treturn -1\n\t}\n\t// BigInteger.prototype.bitCount = bnBitCount;\n\t// (public) return number of set bits\n\tBigInteger.prototype.bitCount = function () {\n\t\tvar r = 0\n\t\tvar x = this.s & this.DM\n\t\tfor (var i = 0; i < this.t; ++i) {\n\t\t\tr += cbit(this[i] ^ x)\n\t\t}\n\t\treturn r\n\t}\n\t// BigInteger.prototype.testBit = bnTestBit;\n\t// (public) true iff nth bit is set\n\tBigInteger.prototype.testBit = function (n) {\n\t\tvar j = Math.floor(n / this.DB)\n\t\tif (j >= this.t) {\n\t\t\treturn this.s != 0\n\t\t}\n\t\treturn (this[j] & (1 << n % this.DB)) != 0\n\t}\n\t// BigInteger.prototype.setBit = bnSetBit;\n\t// (public) this | (1<<n)\n\tBigInteger.prototype.setBit = function (n) {\n\t\treturn this.changeBit(n, op_or)\n\t}\n\t// BigInteger.prototype.clearBit = bnClearBit;\n\t// (public) this & ~(1<<n)\n\tBigInteger.prototype.clearBit = function (n) {\n\t\treturn this.changeBit(n, op_andnot)\n\t}\n\t// BigInteger.prototype.flipBit = bnFlipBit;\n\t// (public) this ^ (1<<n)\n\tBigInteger.prototype.flipBit = function (n) {\n\t\treturn this.changeBit(n, op_xor)\n\t}\n\t// BigInteger.prototype.add = bnAdd;\n\t// (public) this + a\n\tBigInteger.prototype.add = function (a) {\n\t\tvar r = nbi()\n\t\tthis.addTo(a, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.subtract = bnSubtract;\n\t// (public) this - a\n\tBigInteger.prototype.subtract = function (a) {\n\t\tvar r = nbi()\n\t\tthis.subTo(a, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.multiply = bnMultiply;\n\t// (public) this * a\n\tBigInteger.prototype.multiply = function (a) {\n\t\tvar r = nbi()\n\t\tthis.multiplyTo(a, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.divide = bnDivide;\n\t// (public) this / a\n\tBigInteger.prototype.divide = function (a) {\n\t\tvar r = nbi()\n\t\tthis.divRemTo(a, r, null)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.remainder = bnRemainder;\n\t// (public) this % a\n\tBigInteger.prototype.remainder = function (a) {\n\t\tvar r = nbi()\n\t\tthis.divRemTo(a, null, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\n\t// (public) [this/a,this%a]\n\tBigInteger.prototype.divideAndRemainder = function (a) {\n\t\tvar q = nbi()\n\t\tvar r = nbi()\n\t\tthis.divRemTo(a, q, r)\n\t\treturn [q, r]\n\t}\n\t// BigInteger.prototype.modPow = bnModPow;\n\t// (public) this^e % m (HAC 14.85)\n\tBigInteger.prototype.modPow = function (e, m) {\n\t\tvar i = e.bitLength()\n\t\tvar k\n\t\tvar r = nbv(1)\n\t\tvar z\n\t\tif (i <= 0) {\n\t\t\treturn r\n\t\t} else if (i < 18) {\n\t\t\tk = 1\n\t\t} else if (i < 48) {\n\t\t\tk = 3\n\t\t} else if (i < 144) {\n\t\t\tk = 4\n\t\t} else if (i < 768) {\n\t\t\tk = 5\n\t\t} else {\n\t\t\tk = 6\n\t\t}\n\t\tif (i < 8) {\n\t\t\tz = new Classic(m)\n\t\t} else if (m.isEven()) {\n\t\t\tz = new Barrett(m)\n\t\t} else {\n\t\t\tz = new Montgomery(m)\n\t\t}\n\t\t// precomputation\n\t\tvar g = []\n\t\tvar n = 3\n\t\tvar k1 = k - 1\n\t\tvar km = (1 << k) - 1\n\t\tg[1] = z.convert(this)\n\t\tif (k > 1) {\n\t\t\tvar g2 = nbi()\n\t\t\tz.sqrTo(g[1], g2)\n\t\t\twhile (n <= km) {\n\t\t\t\tg[n] = nbi()\n\t\t\t\tz.mulTo(g2, g[n - 2], g[n])\n\t\t\t\tn += 2\n\t\t\t}\n\t\t}\n\t\tvar j = e.t - 1\n\t\tvar w\n\t\tvar is1 = true\n\t\tvar r2 = nbi()\n\t\tvar t\n\t\ti = nbits(e[j]) - 1\n\t\twhile (j >= 0) {\n\t\t\tif (i >= k1) {\n\t\t\t\tw = (e[j] >> (i - k1)) & km\n\t\t\t} else {\n\t\t\t\tw = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i)\n\t\t\t\tif (j > 0) {\n\t\t\t\t\tw |= e[j - 1] >> (this.DB + i - k1)\n\t\t\t\t}\n\t\t\t}\n\t\t\tn = k\n\t\t\twhile ((w & 1) == 0) {\n\t\t\t\tw >>= 1\n\t\t\t\t--n\n\t\t\t}\n\t\t\tif ((i -= n) < 0) {\n\t\t\t\ti += this.DB\n\t\t\t\t--j\n\t\t\t}\n\t\t\tif (is1) {\n\t\t\t\t// ret == 1, don't bother squaring or multiplying it\n\t\t\t\tg[w].copyTo(r)\n\t\t\t\tis1 = false\n\t\t\t} else {\n\t\t\t\twhile (n > 1) {\n\t\t\t\t\tz.sqrTo(r, r2)\n\t\t\t\t\tz.sqrTo(r2, r)\n\t\t\t\t\tn -= 2\n\t\t\t\t}\n\t\t\t\tif (n > 0) {\n\t\t\t\t\tz.sqrTo(r, r2)\n\t\t\t\t} else {\n\t\t\t\t\tt = r\n\t\t\t\t\tr = r2\n\t\t\t\t\tr2 = t\n\t\t\t\t}\n\t\t\t\tz.mulTo(r2, g[w], r)\n\t\t\t}\n\t\t\twhile (j >= 0 && (e[j] & (1 << i)) == 0) {\n\t\t\t\tz.sqrTo(r, r2)\n\t\t\t\tt = r\n\t\t\t\tr = r2\n\t\t\t\tr2 = t\n\t\t\t\tif (--i < 0) {\n\t\t\t\t\ti = this.DB - 1\n\t\t\t\t\t--j\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn z.revert(r)\n\t}\n\t// BigInteger.prototype.modInverse = bnModInverse;\n\t// (public) 1/this % m (HAC 14.61)\n\tBigInteger.prototype.modInverse = function (m) {\n\t\tvar ac = m.isEven()\n\t\tif ((this.isEven() && ac) || m.signum() == 0) {\n\t\t\treturn BigInteger.ZERO\n\t\t}\n\t\tvar u = m.clone()\n\t\tvar v = this.clone()\n\t\tvar a = nbv(1)\n\t\tvar b = nbv(0)\n\t\tvar c = nbv(0)\n\t\tvar d = nbv(1)\n\t\twhile (u.signum() != 0) {\n\t\t\twhile (u.isEven()) {\n\t\t\t\tu.rShiftTo(1, u)\n\t\t\t\tif (ac) {\n\t\t\t\t\tif (!a.isEven() || !b.isEven()) {\n\t\t\t\t\t\ta.addTo(this, a)\n\t\t\t\t\t\tb.subTo(m, b)\n\t\t\t\t\t}\n\t\t\t\t\ta.rShiftTo(1, a)\n\t\t\t\t} else if (!b.isEven()) {\n\t\t\t\t\tb.subTo(m, b)\n\t\t\t\t}\n\t\t\t\tb.rShiftTo(1, b)\n\t\t\t}\n\t\t\twhile (v.isEven()) {\n\t\t\t\tv.rShiftTo(1, v)\n\t\t\t\tif (ac) {\n\t\t\t\t\tif (!c.isEven() || !d.isEven()) {\n\t\t\t\t\t\tc.addTo(this, c)\n\t\t\t\t\t\td.subTo(m, d)\n\t\t\t\t\t}\n\t\t\t\t\tc.rShiftTo(1, c)\n\t\t\t\t} else if (!d.isEven()) {\n\t\t\t\t\td.subTo(m, d)\n\t\t\t\t}\n\t\t\t\td.rShiftTo(1, d)\n\t\t\t}\n\t\t\tif (u.compareTo(v) >= 0) {\n\t\t\t\tu.subTo(v, u)\n\t\t\t\tif (ac) {\n\t\t\t\t\ta.subTo(c, a)\n\t\t\t\t}\n\t\t\t\tb.subTo(d, b)\n\t\t\t} else {\n\t\t\t\tv.subTo(u, v)\n\t\t\t\tif (ac) {\n\t\t\t\t\tc.subTo(a, c)\n\t\t\t\t}\n\t\t\t\td.subTo(b, d)\n\t\t\t}\n\t\t}\n\t\tif (v.compareTo(BigInteger.ONE) != 0) {\n\t\t\treturn BigInteger.ZERO\n\t\t}\n\t\tif (d.compareTo(m) >= 0) {\n\t\t\treturn d.subtract(m)\n\t\t}\n\t\tif (d.signum() < 0) {\n\t\t\td.addTo(m, d)\n\t\t} else {\n\t\t\treturn d\n\t\t}\n\t\tif (d.signum() < 0) {\n\t\t\treturn d.add(m)\n\t\t} else {\n\t\t\treturn d\n\t\t}\n\t}\n\t// BigInteger.prototype.pow = bnPow;\n\t// (public) this^e\n\tBigInteger.prototype.pow = function (e) {\n\t\treturn this.exp(e, new NullExp())\n\t}\n\t// BigInteger.prototype.gcd = bnGCD;\n\t// (public) gcd(this,a) (HAC 14.54)\n\tBigInteger.prototype.gcd = function (a) {\n\t\tvar x = this.s < 0 ? this.negate() : this.clone()\n\t\tvar y = a.s < 0 ? a.negate() : a.clone()\n\t\tif (x.compareTo(y) < 0) {\n\t\t\tvar t = x\n\t\t\tx = y\n\t\t\ty = t\n\t\t}\n\t\tvar i = x.getLowestSetBit()\n\t\tvar g = y.getLowestSetBit()\n\t\tif (g < 0) {\n\t\t\treturn x\n\t\t}\n\t\tif (i < g) {\n\t\t\tg = i\n\t\t}\n\t\tif (g > 0) {\n\t\t\tx.rShiftTo(g, x)\n\t\t\ty.rShiftTo(g, y)\n\t\t}\n\t\twhile (x.signum() > 0) {\n\t\t\tif ((i = x.getLowestSetBit()) > 0) {\n\t\t\t\tx.rShiftTo(i, x)\n\t\t\t}\n\t\t\tif ((i = y.getLowestSetBit()) > 0) {\n\t\t\t\ty.rShiftTo(i, y)\n\t\t\t}\n\t\t\tif (x.compareTo(y) >= 0) {\n\t\t\t\tx.subTo(y, x)\n\t\t\t\tx.rShiftTo(1, x)\n\t\t\t} else {\n\t\t\t\ty.subTo(x, y)\n\t\t\t\ty.rShiftTo(1, y)\n\t\t\t}\n\t\t}\n\t\tif (g > 0) {\n\t\t\ty.lShiftTo(g, y)\n\t\t}\n\t\treturn y\n\t}\n\t// BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\t// (public) test primality with certainty >= 1-.5^t\n\tBigInteger.prototype.isProbablePrime = function (t) {\n\t\tvar i\n\t\tvar x = this.abs()\n\t\tif (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n\t\t\tfor (i = 0; i < lowprimes.length; ++i) {\n\t\t\t\tif (x[0] == lowprimes[i]) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\t\tif (x.isEven()) {\n\t\t\treturn false\n\t\t}\n\t\ti = 1\n\t\twhile (i < lowprimes.length) {\n\t\t\tvar m = lowprimes[i]\n\t\t\tvar j = i + 1\n\t\t\twhile (j < lowprimes.length && m < lplim) {\n\t\t\t\tm *= lowprimes[j++]\n\t\t\t}\n\t\t\tm = x.modInt(m)\n\t\t\twhile (i < j) {\n\t\t\t\tif (m % lowprimes[i++] == 0) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn x.millerRabin(t)\n\t}\n\t//#endregion PUBLIC\n\t//#region PROTECTED\n\t// BigInteger.prototype.copyTo = bnpCopyTo;\n\t// (protected) copy this to r\n\tBigInteger.prototype.copyTo = function (r) {\n\t\tfor (var i = this.t - 1; i >= 0; --i) {\n\t\t\tr[i] = this[i]\n\t\t}\n\t\tr.t = this.t\n\t\tr.s = this.s\n\t}\n\t// BigInteger.prototype.fromInt = bnpFromInt;\n\t// (protected) set from integer value x, -DV <= x < DV\n\tBigInteger.prototype.fromInt = function (x) {\n\t\tthis.t = 1\n\t\tthis.s = x < 0 ? -1 : 0\n\t\tif (x > 0) {\n\t\t\tthis[0] = x\n\t\t} else if (x < -1) {\n\t\t\tthis[0] = x + this.DV\n\t\t} else {\n\t\t\tthis.t = 0\n\t\t}\n\t}\n\t// BigInteger.prototype.fromString = bnpFromString;\n\t// (protected) set from string and radix\n\tBigInteger.prototype.fromString = function (s, b) {\n\t\tvar k\n\t\tif (b == 16) {\n\t\t\tk = 4\n\t\t} else if (b == 8) {\n\t\t\tk = 3\n\t\t} else if (b == 256) {\n\t\t\tk = 8\n\t\t\t/* byte array */\n\t\t} else if (b == 2) {\n\t\t\tk = 1\n\t\t} else if (b == 32) {\n\t\t\tk = 5\n\t\t} else if (b == 4) {\n\t\t\tk = 2\n\t\t} else {\n\t\t\tthis.fromRadix(s, b)\n\t\t\treturn\n\t\t}\n\t\tthis.t = 0\n\t\tthis.s = 0\n\t\tvar i = s.length\n\t\tvar mi = false\n\t\tvar sh = 0\n\t\twhile (--i >= 0) {\n\t\t\tvar x = k == 8 ? +s[i] & 0xff : intAt(s, i)\n\t\t\tif (x < 0) {\n\t\t\t\tif (s.charAt(i) == '-') {\n\t\t\t\t\tmi = true\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmi = false\n\t\t\tif (sh == 0) {\n\t\t\t\tthis[this.t++] = x\n\t\t\t} else if (sh + k > this.DB) {\n\t\t\t\tthis[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh\n\t\t\t\tthis[this.t++] = x >> (this.DB - sh)\n\t\t\t} else {\n\t\t\t\tthis[this.t - 1] |= x << sh\n\t\t\t}\n\t\t\tsh += k\n\t\t\tif (sh >= this.DB) {\n\t\t\t\tsh -= this.DB\n\t\t\t}\n\t\t}\n\t\tif (k == 8 && (+s[0] & 0x80) != 0) {\n\t\t\tthis.s = -1\n\t\t\tif (sh > 0) {\n\t\t\t\tthis[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh\n\t\t\t}\n\t\t}\n\t\tthis.clamp()\n\t\tif (mi) {\n\t\t\tBigInteger.ZERO.subTo(this, this)\n\t\t}\n\t}\n\t// BigInteger.prototype.clamp = bnpClamp;\n\t// (protected) clamp off excess high words\n\tBigInteger.prototype.clamp = function () {\n\t\tvar c = this.s & this.DM\n\t\twhile (this.t > 0 && this[this.t - 1] == c) {\n\t\t\t--this.t\n\t\t}\n\t}\n\t// BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n\t// (protected) r = this << n*DB\n\tBigInteger.prototype.dlShiftTo = function (n, r) {\n\t\tvar i\n\t\tfor (i = this.t - 1; i >= 0; --i) {\n\t\t\tr[i + n] = this[i]\n\t\t}\n\t\tfor (i = n - 1; i >= 0; --i) {\n\t\t\tr[i] = 0\n\t\t}\n\t\tr.t = this.t + n\n\t\tr.s = this.s\n\t}\n\t// BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n\t// (protected) r = this >> n*DB\n\tBigInteger.prototype.drShiftTo = function (n, r) {\n\t\tfor (var i = n; i < this.t; ++i) {\n\t\t\tr[i - n] = this[i]\n\t\t}\n\t\tr.t = Math.max(this.t - n, 0)\n\t\tr.s = this.s\n\t}\n\t// BigInteger.prototype.lShiftTo = bnpLShiftTo;\n\t// (protected) r = this << n\n\tBigInteger.prototype.lShiftTo = function (n, r) {\n\t\tvar bs = n % this.DB\n\t\tvar cbs = this.DB - bs\n\t\tvar bm = (1 << cbs) - 1\n\t\tvar ds = Math.floor(n / this.DB)\n\t\tvar c = (this.s << bs) & this.DM\n\t\tfor (var i = this.t - 1; i >= 0; --i) {\n\t\t\tr[i + ds + 1] = (this[i] >> cbs) | c\n\t\t\tc = (this[i] & bm) << bs\n\t\t}\n\t\tfor (var i = ds - 1; i >= 0; --i) {\n\t\t\tr[i] = 0\n\t\t}\n\t\tr[ds] = c\n\t\tr.t = this.t + ds + 1\n\t\tr.s = this.s\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.rShiftTo = bnpRShiftTo;\n\t// (protected) r = this >> n\n\tBigInteger.prototype.rShiftTo = function (n, r) {\n\t\tr.s = this.s\n\t\tvar ds = Math.floor(n / this.DB)\n\t\tif (ds >= this.t) {\n\t\t\tr.t = 0\n\t\t\treturn\n\t\t}\n\t\tvar bs = n % this.DB\n\t\tvar cbs = this.DB - bs\n\t\tvar bm = (1 << bs) - 1\n\t\tr[0] = this[ds] >> bs\n\t\tfor (var i = ds + 1; i < this.t; ++i) {\n\t\t\tr[i - ds - 1] |= (this[i] & bm) << cbs\n\t\t\tr[i - ds] = this[i] >> bs\n\t\t}\n\t\tif (bs > 0) {\n\t\t\tr[this.t - ds - 1] |= (this.s & bm) << cbs\n\t\t}\n\t\tr.t = this.t - ds\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.subTo = bnpSubTo;\n\t// (protected) r = this - a\n\tBigInteger.prototype.subTo = function (a, r) {\n\t\tvar i = 0\n\t\tvar c = 0\n\t\tvar m = Math.min(a.t, this.t)\n\t\twhile (i < m) {\n\t\t\tc += this[i] - a[i]\n\t\t\tr[i++] = c & this.DM\n\t\t\tc >>= this.DB\n\t\t}\n\t\tif (a.t < this.t) {\n\t\t\tc -= a.s\n\t\t\twhile (i < this.t) {\n\t\t\t\tc += this[i]\n\t\t\t\tr[i++] = c & this.DM\n\t\t\t\tc >>= this.DB\n\t\t\t}\n\t\t\tc += this.s\n\t\t} else {\n\t\t\tc += this.s\n\t\t\twhile (i < a.t) {\n\t\t\t\tc -= a[i]\n\t\t\t\tr[i++] = c & this.DM\n\t\t\t\tc >>= this.DB\n\t\t\t}\n\t\t\tc -= a.s\n\t\t}\n\t\tr.s = c < 0 ? -1 : 0\n\t\tif (c < -1) {\n\t\t\tr[i++] = this.DV + c\n\t\t} else if (c > 0) {\n\t\t\tr[i++] = c\n\t\t}\n\t\tr.t = i\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n\t// (protected) r = this * a, r != this,a (HAC 14.12)\n\t// \"this\" should be the larger one if appropriate.\n\tBigInteger.prototype.multiplyTo = function (a, r) {\n\t\tvar x = this.abs()\n\t\tvar y = a.abs()\n\t\tvar i = x.t\n\t\tr.t = i + y.t\n\t\twhile (--i >= 0) {\n\t\t\tr[i] = 0\n\t\t}\n\t\tfor (i = 0; i < y.t; ++i) {\n\t\t\tr[i + x.t] = x.am(0, y[i], r, i, 0, x.t)\n\t\t}\n\t\tr.s = 0\n\t\tr.clamp()\n\t\tif (this.s != a.s) {\n\t\t\tBigInteger.ZERO.subTo(r, r)\n\t\t}\n\t}\n\t// BigInteger.prototype.squareTo = bnpSquareTo;\n\t// (protected) r = this^2, r != this (HAC 14.16)\n\tBigInteger.prototype.squareTo = function (r) {\n\t\tvar x = this.abs()\n\t\tvar i = (r.t = 2 * x.t)\n\t\twhile (--i >= 0) {\n\t\t\tr[i] = 0\n\t\t}\n\t\tfor (i = 0; i < x.t - 1; ++i) {\n\t\t\tvar c = x.am(i, x[i], r, 2 * i, 0, 1)\n\t\t\tif ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n\t\t\t\tr[i + x.t] -= x.DV\n\t\t\t\tr[i + x.t + 1] = 1\n\t\t\t}\n\t\t}\n\t\tif (r.t > 0) {\n\t\t\tr[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1)\n\t\t}\n\t\tr.s = 0\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.divRemTo = bnpDivRemTo;\n\t// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n\t// r != q, this != m. q or r may be null.\n\tBigInteger.prototype.divRemTo = function (m, q, r) {\n\t\tvar pm = m.abs()\n\t\tif (pm.t <= 0) {\n\t\t\treturn\n\t\t}\n\t\tvar pt = this.abs()\n\t\tif (pt.t < pm.t) {\n\t\t\tif (q != null) {\n\t\t\t\tq.fromInt(0)\n\t\t\t}\n\t\t\tif (r != null) {\n\t\t\t\tthis.copyTo(r)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tif (r == null) {\n\t\t\tr = nbi()\n\t\t}\n\t\tvar y = nbi()\n\t\tvar ts = this.s\n\t\tvar ms = m.s\n\t\tvar nsh = this.DB - nbits(pm[pm.t - 1]) // normalize modulus\n\t\tif (nsh > 0) {\n\t\t\tpm.lShiftTo(nsh, y)\n\t\t\tpt.lShiftTo(nsh, r)\n\t\t} else {\n\t\t\tpm.copyTo(y)\n\t\t\tpt.copyTo(r)\n\t\t}\n\t\tvar ys = y.t\n\t\tvar y0 = y[ys - 1]\n\t\tif (y0 == 0) {\n\t\t\treturn\n\t\t}\n\t\tvar yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0)\n\t\tvar d1 = this.FV / yt\n\t\tvar d2 = (1 << this.F1) / yt\n\t\tvar e = 1 << this.F2\n\t\tvar i = r.t\n\t\tvar j = i - ys\n\t\tvar t = q == null ? nbi() : q\n\t\ty.dlShiftTo(j, t)\n\t\tif (r.compareTo(t) >= 0) {\n\t\t\tr[r.t++] = 1\n\t\t\tr.subTo(t, r)\n\t\t}\n\t\tBigInteger.ONE.dlShiftTo(ys, t)\n\t\tt.subTo(y, y) // \"negative\" y so we can replace sub with am later\n\t\twhile (y.t < ys) {\n\t\t\ty[y.t++] = 0\n\t\t}\n\t\twhile (--j >= 0) {\n\t\t\t// Estimate quotient digit\n\t\t\tvar qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2)\n\t\t\tif ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n\t\t\t\t// Try it out\n\t\t\t\ty.dlShiftTo(j, t)\n\t\t\t\tr.subTo(t, r)\n\t\t\t\twhile (r[i] < --qd) {\n\t\t\t\t\tr.subTo(t, r)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (q != null) {\n\t\t\tr.drShiftTo(ys, q)\n\t\t\tif (ts != ms) {\n\t\t\t\tBigInteger.ZERO.subTo(q, q)\n\t\t\t}\n\t\t}\n\t\tr.t = ys\n\t\tr.clamp()\n\t\tif (nsh > 0) {\n\t\t\tr.rShiftTo(nsh, r)\n\t\t} // Denormalize remainder\n\t\tif (ts < 0) {\n\t\t\tBigInteger.ZERO.subTo(r, r)\n\t\t}\n\t}\n\t// BigInteger.prototype.invDigit = bnpInvDigit;\n\t// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n\t// justification:\n\t// xy == 1 (mod m)\n\t// xy = 1+km\n\t// xy(2-xy) = (1+km)(1-km)\n\t// x[y(2-xy)] = 1-k^2m^2\n\t// x[y(2-xy)] == 1 (mod m^2)\n\t// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n\t// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n\t// JS multiply \"overflows\" differently from C/C++, so care is needed here.\n\tBigInteger.prototype.invDigit = function () {\n\t\tif (this.t < 1) {\n\t\t\treturn 0\n\t\t}\n\t\tvar x = this[0]\n\t\tif ((x & 1) == 0) {\n\t\t\treturn 0\n\t\t}\n\t\tvar y = x & 3 // y == 1/x mod 2^2\n\t\ty = (y * (2 - (x & 0xf) * y)) & 0xf // y == 1/x mod 2^4\n\t\ty = (y * (2 - (x & 0xff) * y)) & 0xff // y == 1/x mod 2^8\n\t\ty = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff // y == 1/x mod 2^16\n\t\t// last step - calculate inverse mod DV directly;\n\t\t// assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n\t\ty = (y * (2 - ((x * y) % this.DV))) % this.DV // y == 1/x mod 2^dbits\n\t\t// we really want the negative inverse, and -DV < y < DV\n\t\treturn y > 0 ? this.DV - y : -y\n\t}\n\t// BigInteger.prototype.isEven = bnpIsEven;\n\t// (protected) true iff this is even\n\tBigInteger.prototype.isEven = function () {\n\t\treturn (this.t > 0 ? this[0] & 1 : this.s) == 0\n\t}\n\t// BigInteger.prototype.exp = bnpExp;\n\t// (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n\tBigInteger.prototype.exp = function (e, z) {\n\t\tif (e > 0xffffffff || e < 1) {\n\t\t\treturn BigInteger.ONE\n\t\t}\n\t\tvar r = nbi()\n\t\tvar r2 = nbi()\n\t\tvar g = z.convert(this)\n\t\tvar i = nbits(e) - 1\n\t\tg.copyTo(r)\n\t\twhile (--i >= 0) {\n\t\t\tz.sqrTo(r, r2)\n\t\t\tif ((e & (1 << i)) > 0) {\n\t\t\t\tz.mulTo(r2, g, r)\n\t\t\t} else {\n\t\t\t\tvar t = r\n\t\t\t\tr = r2\n\t\t\t\tr2 = t\n\t\t\t}\n\t\t}\n\t\treturn z.revert(r)\n\t}\n\t// BigInteger.prototype.chunkSize = bnpChunkSize;\n\t// (protected) return x s.t. r^x < DV\n\tBigInteger.prototype.chunkSize = function (r) {\n\t\treturn Math.floor((Math.LN2 * this.DB) / Math.log(r))\n\t}\n\t// BigInteger.prototype.toRadix = bnpToRadix;\n\t// (protected) convert to radix string\n\tBigInteger.prototype.toRadix = function (b) {\n\t\tif (b == null) {\n\t\t\tb = 10\n\t\t}\n\t\tif (this.signum() == 0 || b < 2 || b > 36) {\n\t\t\treturn '0'\n\t\t}\n\t\tvar cs = this.chunkSize(b)\n\t\tvar a = Math.pow(b, cs)\n\t\tvar d = nbv(a)\n\t\tvar y = nbi()\n\t\tvar z = nbi()\n\t\tvar r = ''\n\t\tthis.divRemTo(d, y, z)\n\t\twhile (y.signum() > 0) {\n\t\t\tr = (a + z.intValue()).toString(b).substr(1) + r\n\t\t\ty.divRemTo(d, y, z)\n\t\t}\n\t\treturn z.intValue().toString(b) + r\n\t}\n\t// BigInteger.prototype.fromRadix = bnpFromRadix;\n\t// (protected) convert from radix string\n\tBigInteger.prototype.fromRadix = function (s, b) {\n\t\tthis.fromInt(0)\n\t\tif (b == null) {\n\t\t\tb = 10\n\t\t}\n\t\tvar cs = this.chunkSize(b)\n\t\tvar d = Math.pow(b, cs)\n\t\tvar mi = false\n\t\tvar j = 0\n\t\tvar w = 0\n\t\tfor (var i = 0; i < s.length; ++i) {\n\t\t\tvar x = intAt(s, i)\n\t\t\tif (x < 0) {\n\t\t\t\tif (s.charAt(i) == '-' && this.signum() == 0) {\n\t\t\t\t\tmi = true\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tw = b * w + x\n\t\t\tif (++j >= cs) {\n\t\t\t\tthis.dMultiply(d)\n\t\t\t\tthis.dAddOffset(w, 0)\n\t\t\t\tj = 0\n\t\t\t\tw = 0\n\t\t\t}\n\t\t}\n\t\tif (j > 0) {\n\t\t\tthis.dMultiply(Math.pow(b, j))\n\t\t\tthis.dAddOffset(w, 0)\n\t\t}\n\t\tif (mi) {\n\t\t\tBigInteger.ZERO.subTo(this, this)\n\t\t}\n\t}\n\t// BigInteger.prototype.fromNumber = bnpFromNumber;\n\t// (protected) alternate constructor\n\tBigInteger.prototype.fromNumber = function (a, b, c) {\n\t\tif ('number' == typeof b) {\n\t\t\t// new BigInteger(int,int,RNG)\n\t\t\tif (a < 2) {\n\t\t\t\tthis.fromInt(1)\n\t\t\t} else {\n\t\t\t\tthis.fromNumber(a, c)\n\t\t\t\tif (!this.testBit(a - 1)) {\n\t\t\t\t\t// force MSB set\n\t\t\t\t\tthis.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this)\n\t\t\t\t}\n\t\t\t\tif (this.isEven()) {\n\t\t\t\t\tthis.dAddOffset(1, 0)\n\t\t\t\t} // force odd\n\t\t\t\twhile (!this.isProbablePrime(b)) {\n\t\t\t\t\tthis.dAddOffset(2, 0)\n\t\t\t\t\tif (this.bitLength() > a) {\n\t\t\t\t\t\tthis.subTo(BigInteger.ONE.shiftLeft(a - 1), this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// new BigInteger(int,RNG)\n\t\t\tvar x = []\n\t\t\tvar t = a & 7\n\t\t\tx.length = (a >> 3) + 1\n\t\t\tb.nextBytes(x)\n\t\t\tif (t > 0) {\n\t\t\t\tx[0] &= (1 << t) - 1\n\t\t\t} else {\n\t\t\t\tx[0] = 0\n\t\t\t}\n\t\t\tthis.fromString(x, 256)\n\t\t}\n\t}\n\t// BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n\t// (protected) r = this op a (bitwise)\n\tBigInteger.prototype.bitwiseTo = function (a, op, r) {\n\t\tvar i\n\t\tvar f\n\t\tvar m = Math.min(a.t, this.t)\n\t\tfor (i = 0; i < m; ++i) {\n\t\t\tr[i] = op(this[i], a[i])\n\t\t}\n\t\tif (a.t < this.t) {\n\t\t\tf = a.s & this.DM\n\t\t\tfor (i = m; i < this.t; ++i) {\n\t\t\t\tr[i] = op(this[i], f)\n\t\t\t}\n\t\t\tr.t = this.t\n\t\t} else {\n\t\t\tf = this.s & this.DM\n\t\t\tfor (i = m; i < a.t; ++i) {\n\t\t\t\tr[i] = op(f, a[i])\n\t\t\t}\n\t\t\tr.t = a.t\n\t\t}\n\t\tr.s = op(this.s, a.s)\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.changeBit = bnpChangeBit;\n\t// (protected) this op (1<<n)\n\tBigInteger.prototype.changeBit = function (n, op) {\n\t\tvar r = BigInteger.ONE.shiftLeft(n)\n\t\tthis.bitwiseTo(r, op, r)\n\t\treturn r\n\t}\n\t// BigInteger.prototype.addTo = bnpAddTo;\n\t// (protected) r = this + a\n\tBigInteger.prototype.addTo = function (a, r) {\n\t\tvar i = 0\n\t\tvar c = 0\n\t\tvar m = Math.min(a.t, this.t)\n\t\twhile (i < m) {\n\t\t\tc += this[i] + a[i]\n\t\t\tr[i++] = c & this.DM\n\t\t\tc >>= this.DB\n\t\t}\n\t\tif (a.t < this.t) {\n\t\t\tc += a.s\n\t\t\twhile (i < this.t) {\n\t\t\t\tc += this[i]\n\t\t\t\tr[i++] = c & this.DM\n\t\t\t\tc >>= this.DB\n\t\t\t}\n\t\t\tc += this.s\n\t\t} else {\n\t\t\tc += this.s\n\t\t\twhile (i < a.t) {\n\t\t\t\tc += a[i]\n\t\t\t\tr[i++] = c & this.DM\n\t\t\t\tc >>= this.DB\n\t\t\t}\n\t\t\tc += a.s\n\t\t}\n\t\tr.s = c < 0 ? -1 : 0\n\t\tif (c > 0) {\n\t\t\tr[i++] = c\n\t\t} else if (c < -1) {\n\t\t\tr[i++] = this.DV + c\n\t\t}\n\t\tr.t = i\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.dMultiply = bnpDMultiply;\n\t// (protected) this *= n, this >= 0, 1 < n < DV\n\tBigInteger.prototype.dMultiply = function (n) {\n\t\tthis[this.t] = this.am(0, n - 1, this, 0, 0, this.t)\n\t\t++this.t\n\t\tthis.clamp()\n\t}\n\t// BigInteger.prototype.dAddOffset = bnpDAddOffset;\n\t// (protected) this += n << w words, this >= 0\n\tBigInteger.prototype.dAddOffset = function (n, w) {\n\t\tif (n == 0) {\n\t\t\treturn\n\t\t}\n\t\twhile (this.t <= w) {\n\t\t\tthis[this.t++] = 0\n\t\t}\n\t\tthis[w] += n\n\t\twhile (this[w] >= this.DV) {\n\t\t\tthis[w] -= this.DV\n\t\t\tif (++w >= this.t) {\n\t\t\t\tthis[this.t++] = 0\n\t\t\t}\n\t\t\t++this[w]\n\t\t}\n\t}\n\t// BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n\t// (protected) r = lower n words of \"this * a\", a.t <= n\n\t// \"this\" should be the larger one if appropriate.\n\tBigInteger.prototype.multiplyLowerTo = function (a, n, r) {\n\t\tvar i = Math.min(this.t + a.t, n)\n\t\tr.s = 0 // assumes a,this >= 0\n\t\tr.t = i\n\t\twhile (i > 0) {\n\t\t\tr[--i] = 0\n\t\t}\n\t\tfor (var j = r.t - this.t; i < j; ++i) {\n\t\t\tr[i + this.t] = this.am(0, a[i], r, i, 0, this.t)\n\t\t}\n\t\tfor (var j = Math.min(a.t, n); i < j; ++i) {\n\t\t\tthis.am(0, a[i], r, i, 0, n - i)\n\t\t}\n\t\tr.clamp()\n\t}\n\t// BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n\t// (protected) r = \"this * a\" without lower n words, n > 0\n\t// \"this\" should be the larger one if appropriate.\n\tBigInteger.prototype.multiplyUpperTo = function (a, n, r) {\n\t\t--n\n\t\tvar i = (r.t = this.t + a.t - n)\n\t\tr.s = 0 // assumes a,this >= 0\n\t\twhile (--i >= 0) {\n\t\t\tr[i] = 0\n\t\t}\n\t\tfor (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n\t\t\tr[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n)\n\t\t}\n\t\tr.clamp()\n\t\tr.drShiftTo(1, r)\n\t}\n\t// BigInteger.prototype.modInt = bnpModInt;\n\t// (protected) this % n, n < 2^26\n\tBigInteger.prototype.modInt = function (n) {\n\t\tif (n <= 0) {\n\t\t\treturn 0\n\t\t}\n\t\tvar d = this.DV % n\n\t\tvar r = this.s < 0 ? n - 1 : 0\n\t\tif (this.t > 0) {\n\t\t\tif (d == 0) {\n\t\t\t\tr = this[0] % n\n\t\t\t} else {\n\t\t\t\tfor (var i = this.t - 1; i >= 0; --i) {\n\t\t\t\t\tr = (d * r + this[i]) % n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn r\n\t}\n\t// BigInteger.prototype.millerRabin = bnpMillerRabin;\n\t// (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n\tBigInteger.prototype.millerRabin = function (t) {\n\t\tvar n1 = this.subtract(BigInteger.ONE)\n\t\tvar k = n1.getLowestSetBit()\n\t\tif (k <= 0) {\n\t\t\treturn false\n\t\t}\n\t\tvar r = n1.shiftRight(k)\n\t\tt = (t + 1) >> 1\n\t\tif (t > lowprimes.length) {\n\t\t\tt = lowprimes.length\n\t\t}\n\t\tvar a = nbi()\n\t\tfor (var i = 0; i < t; ++i) {\n\t\t\t// Pick bases at random, instead of starting at 2\n\t\t\ta.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)])\n\t\t\tvar y = a.modPow(r, this)\n\t\t\tif (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n\t\t\t\tvar j = 1\n\t\t\t\twhile (j++ < k && y.compareTo(n1) != 0) {\n\t\t\t\t\ty = y.modPowInt(2, this)\n\t\t\t\t\tif (y.compareTo(BigInteger.ONE) == 0) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (y.compareTo(n1) != 0) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\t// BigInteger.prototype.square = bnSquare;\n\t// (public) this^2\n\tBigInteger.prototype.square = function () {\n\t\tvar r = nbi()\n\t\tthis.squareTo(r)\n\t\treturn r\n\t}\n\t//#region ASYNC\n\t// Public API method\n\tBigInteger.prototype.gcda = function (a, callback) {\n\t\tvar x = this.s < 0 ? this.negate() : this.clone()\n\t\tvar y = a.s < 0 ? a.negate() : a.clone()\n\t\tif (x.compareTo(y) < 0) {\n\t\t\tvar t = x\n\t\t\tx = y\n\t\t\ty = t\n\t\t}\n\t\tvar i = x.getLowestSetBit()\n\t\tvar g = y.getLowestSetBit()\n\t\tif (g < 0) {\n\t\t\tcallback(x)\n\t\t\treturn\n\t\t}\n\t\tif (i < g) {\n\t\t\tg = i\n\t\t}\n\t\tif (g > 0) {\n\t\t\tx.rShiftTo(g, x)\n\t\t\ty.rShiftTo(g, y)\n\t\t}\n\t\t// Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\n\t\tvar gcda1 = function () {\n\t\t\tif ((i = x.getLowestSetBit()) > 0) {\n\t\t\t\tx.rShiftTo(i, x)\n\t\t\t}\n\t\t\tif ((i = y.getLowestSetBit()) > 0) {\n\t\t\t\ty.rShiftTo(i, y)\n\t\t\t}\n\t\t\tif (x.compareTo(y) >= 0) {\n\t\t\t\tx.subTo(y, x)\n\t\t\t\tx.rShiftTo(1, x)\n\t\t\t} else {\n\t\t\t\ty.subTo(x, y)\n\t\t\t\ty.rShiftTo(1, y)\n\t\t\t}\n\t\t\tif (!(x.signum() > 0)) {\n\t\t\t\tif (g > 0) {\n\t\t\t\t\ty.lShiftTo(g, y)\n\t\t\t\t}\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tcallback(y)\n\t\t\t\t}, 0) // escape\n\t\t\t} else {\n\t\t\t\tsetTimeout(gcda1, 0)\n\t\t\t}\n\t\t}\n\t\tsetTimeout(gcda1, 10)\n\t}\n\t// (protected) alternate constructor\n\tBigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\n\t\tif ('number' == typeof b) {\n\t\t\tif (a < 2) {\n\t\t\t\tthis.fromInt(1)\n\t\t\t} else {\n\t\t\t\tthis.fromNumber(a, c)\n\t\t\t\tif (!this.testBit(a - 1)) {\n\t\t\t\t\tthis.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this)\n\t\t\t\t}\n\t\t\t\tif (this.isEven()) {\n\t\t\t\t\tthis.dAddOffset(1, 0)\n\t\t\t\t}\n\t\t\t\tvar bnp_1 = this\n\t\t\t\tvar bnpfn1_1 = function () {\n\t\t\t\t\tbnp_1.dAddOffset(2, 0)\n\t\t\t\t\tif (bnp_1.bitLength() > a) {\n\t\t\t\t\t\tbnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1)\n\t\t\t\t\t}\n\t\t\t\t\tif (bnp_1.isProbablePrime(b)) {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tcallback()\n\t\t\t\t\t\t}, 0) // escape\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetTimeout(bnpfn1_1, 0)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetTimeout(bnpfn1_1, 0)\n\t\t\t}\n\t\t} else {\n\t\t\tvar x = []\n\t\t\tvar t = a & 7\n\t\t\tx.length = (a >> 3) + 1\n\t\t\tb.nextBytes(x)\n\t\t\tif (t > 0) {\n\t\t\t\tx[0] &= (1 << t) - 1\n\t\t\t} else {\n\t\t\t\tx[0] = 0\n\t\t\t}\n\t\t\tthis.fromString(x, 256)\n\t\t}\n\t}\n\treturn BigInteger\n})()\nexport { BigInteger }\n//#region REDUCERS\n//#region NullExp\nvar NullExp = /** @class */ (function () {\n\tfunction NullExp() {}\n\t// NullExp.prototype.convert = nNop;\n\tNullExp.prototype.convert = function (x) {\n\t\treturn x\n\t}\n\t// NullExp.prototype.revert = nNop;\n\tNullExp.prototype.revert = function (x) {\n\t\treturn x\n\t}\n\t// NullExp.prototype.mulTo = nMulTo;\n\tNullExp.prototype.mulTo = function (x, y, r) {\n\t\tx.multiplyTo(y, r)\n\t}\n\t// NullExp.prototype.sqrTo = nSqrTo;\n\tNullExp.prototype.sqrTo = function (x, r) {\n\t\tx.squareTo(r)\n\t}\n\treturn NullExp\n})()\n// Modular reduction using \"classic\" algorithm\nvar Classic = /** @class */ (function () {\n\tfunction Classic(m) {\n\t\tthis.m = m\n\t}\n\t// Classic.prototype.convert = cConvert;\n\tClassic.prototype.convert = function (x) {\n\t\tif (x.s < 0 || x.compareTo(this.m) >= 0) {\n\t\t\treturn x.mod(this.m)\n\t\t} else {\n\t\t\treturn x\n\t\t}\n\t}\n\t// Classic.prototype.revert = cRevert;\n\tClassic.prototype.revert = function (x) {\n\t\treturn x\n\t}\n\t// Classic.prototype.reduce = cReduce;\n\tClassic.prototype.reduce = function (x) {\n\t\tx.divRemTo(this.m, null, x)\n\t}\n\t// Classic.prototype.mulTo = cMulTo;\n\tClassic.prototype.mulTo = function (x, y, r) {\n\t\tx.multiplyTo(y, r)\n\t\tthis.reduce(r)\n\t}\n\t// Classic.prototype.sqrTo = cSqrTo;\n\tClassic.prototype.sqrTo = function (x, r) {\n\t\tx.squareTo(r)\n\t\tthis.reduce(r)\n\t}\n\treturn Classic\n})()\n//#endregion\n//#region Montgomery\n// Montgomery reduction\nvar Montgomery = /** @class */ (function () {\n\tfunction Montgomery(m) {\n\t\tthis.m = m\n\t\tthis.mp = m.invDigit()\n\t\tthis.mpl = this.mp & 0x7fff\n\t\tthis.mph = this.mp >> 15\n\t\tthis.um = (1 << (m.DB - 15)) - 1\n\t\tthis.mt2 = 2 * m.t\n\t}\n\t// Montgomery.prototype.convert = montConvert;\n\t// xR mod m\n\tMontgomery.prototype.convert = function (x) {\n\t\tvar r = nbi()\n\t\tx.abs().dlShiftTo(this.m.t, r)\n\t\tr.divRemTo(this.m, null, r)\n\t\tif (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n\t\t\tthis.m.subTo(r, r)\n\t\t}\n\t\treturn r\n\t}\n\t// Montgomery.prototype.revert = montRevert;\n\t// x/R mod m\n\tMontgomery.prototype.revert = function (x) {\n\t\tvar r = nbi()\n\t\tx.copyTo(r)\n\t\tthis.reduce(r)\n\t\treturn r\n\t}\n\t// Montgomery.prototype.reduce = montReduce;\n\t// x = x/R mod m (HAC 14.32)\n\tMontgomery.prototype.reduce = function (x) {\n\t\twhile (x.t <= this.mt2) {\n\t\t\t// pad x so am has enough room later\n\t\t\tx[x.t++] = 0\n\t\t}\n\t\tfor (var i = 0; i < this.m.t; ++i) {\n\t\t\t// faster way of calculating u0 = x[i]*mp mod DV\n\t\t\tvar j = x[i] & 0x7fff\n\t\t\tvar u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM\n\t\t\t// use am to combine the multiply-shift-add into one call\n\t\t\tj = i + this.m.t\n\t\t\tx[j] += this.m.am(0, u0, x, i, 0, this.m.t)\n\t\t\t// propagate carry\n\t\t\twhile (x[j] >= x.DV) {\n\t\t\t\tx[j] -= x.DV\n\t\t\t\tx[++j]++\n\t\t\t}\n\t\t}\n\t\tx.clamp()\n\t\tx.drShiftTo(this.m.t, x)\n\t\tif (x.compareTo(this.m) >= 0) {\n\t\t\tx.subTo(this.m, x)\n\t\t}\n\t}\n\t// Montgomery.prototype.mulTo = montMulTo;\n\t// r = \"xy/R mod m\"; x,y != r\n\tMontgomery.prototype.mulTo = function (x, y, r) {\n\t\tx.multiplyTo(y, r)\n\t\tthis.reduce(r)\n\t}\n\t// Montgomery.prototype.sqrTo = montSqrTo;\n\t// r = \"x^2/R mod m\"; x != r\n\tMontgomery.prototype.sqrTo = function (x, r) {\n\t\tx.squareTo(r)\n\t\tthis.reduce(r)\n\t}\n\treturn Montgomery\n})()\n//#endregion Montgomery\n//#region Barrett\n// Barrett modular reduction\nvar Barrett = /** @class */ (function () {\n\tfunction Barrett(m) {\n\t\tthis.m = m\n\t\t// setup Barrett\n\t\tthis.r2 = nbi()\n\t\tthis.q3 = nbi()\n\t\tBigInteger.ONE.dlShiftTo(2 * m.t, this.r2)\n\t\tthis.mu = this.r2.divide(m)\n\t}\n\t// Barrett.prototype.convert = barrettConvert;\n\tBarrett.prototype.convert = function (x) {\n\t\tif (x.s < 0 || x.t > 2 * this.m.t) {\n\t\t\treturn x.mod(this.m)\n\t\t} else if (x.compareTo(this.m) < 0) {\n\t\t\treturn x\n\t\t} else {\n\t\t\tvar r = nbi()\n\t\t\tx.copyTo(r)\n\t\t\tthis.reduce(r)\n\t\t\treturn r\n\t\t}\n\t}\n\t// Barrett.prototype.revert = barrettRevert;\n\tBarrett.prototype.revert = function (x) {\n\t\treturn x\n\t}\n\t// Barrett.prototype.reduce = barrettReduce;\n\t// x = x mod m (HAC 14.42)\n\tBarrett.prototype.reduce = function (x) {\n\t\tx.drShiftTo(this.m.t - 1, this.r2)\n\t\tif (x.t > this.m.t + 1) {\n\t\t\tx.t = this.m.t + 1\n\t\t\tx.clamp()\n\t\t}\n\t\tthis.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3)\n\t\tthis.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2)\n\t\twhile (x.compareTo(this.r2) < 0) {\n\t\t\tx.dAddOffset(1, this.m.t + 1)\n\t\t}\n\t\tx.subTo(this.r2, x)\n\t\twhile (x.compareTo(this.m) >= 0) {\n\t\t\tx.subTo(this.m, x)\n\t\t}\n\t}\n\t// Barrett.prototype.mulTo = barrettMulTo;\n\t// r = x*y mod m; x,y != r\n\tBarrett.prototype.mulTo = function (x, y, r) {\n\t\tx.multiplyTo(y, r)\n\t\tthis.reduce(r)\n\t}\n\t// Barrett.prototype.sqrTo = barrettSqrTo;\n\t// r = x^2 mod m; x != r\n\tBarrett.prototype.sqrTo = function (x, r) {\n\t\tx.squareTo(r)\n\t\tthis.reduce(r)\n\t}\n\treturn Barrett\n})()\n//#endregion\n//#endregion REDUCERS\n// return new, unset BigInteger\nexport function nbi() {\n\treturn new BigInteger(null)\n}\nexport function parseBigInt(str, r) {\n\treturn new BigInteger(str, r)\n}\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\nvar inBrowser = typeof navigator !== 'undefined'\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\n\t// am2 avoids a big mult-and-extract completely.\n\t// Max digit bits should be <= 30 because we do bitwise ops\n\t// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n\tBigInteger.prototype.am = function am2(i, x, w, j, c, n) {\n\t\tvar xl = x & 0x7fff\n\t\tvar xh = x >> 15\n\t\twhile (--n >= 0) {\n\t\t\tvar l = this[i] & 0x7fff\n\t\t\tvar h = this[i++] >> 15\n\t\t\tvar m = xh * l + h * xl\n\t\t\tl = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff)\n\t\t\tc = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30)\n\t\t\tw[j++] = l & 0x3fffffff\n\t\t}\n\t\treturn c\n\t}\n\tdbits = 30\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\n\t// am1: use a single mult and divide to get the high bits,\n\t// max digit bits should be 26 because\n\t// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n\tBigInteger.prototype.am = function am1(i, x, w, j, c, n) {\n\t\twhile (--n >= 0) {\n\t\t\tvar v = x * this[i++] + w[j] + c\n\t\t\tc = Math.floor(v / 0x4000000)\n\t\t\tw[j++] = v & 0x3ffffff\n\t\t}\n\t\treturn c\n\t}\n\tdbits = 26\n} else {\n\t// Mozilla/Netscape seems to prefer am3\n\t// Alternately, set max digit bits to 28 since some\n\t// browsers slow down when dealing with 32-bit numbers.\n\tBigInteger.prototype.am = function am3(i, x, w, j, c, n) {\n\t\tvar xl = x & 0x3fff\n\t\tvar xh = x >> 14\n\t\twhile (--n >= 0) {\n\t\t\tvar l = this[i] & 0x3fff\n\t\t\tvar h = this[i++] >> 14\n\t\t\tvar m = xh * l + h * xl\n\t\t\tl = xl * l + ((m & 0x3fff) << 14) + w[j] + c\n\t\t\tc = (l >> 28) + (m >> 14) + xh * h\n\t\t\tw[j++] = l & 0xfffffff\n\t\t}\n\t\treturn c\n\t}\n\tdbits = 28\n}\nBigInteger.prototype.DB = dbits\nBigInteger.prototype.DM = (1 << dbits) - 1\nBigInteger.prototype.DV = 1 << dbits\nvar BI_FP = 52\nBigInteger.prototype.FV = Math.pow(2, BI_FP)\nBigInteger.prototype.F1 = BI_FP - dbits\nBigInteger.prototype.F2 = 2 * dbits - BI_FP\n// Digit conversions\nvar BI_RC = []\nvar rr\nvar vv\nrr = '0'.charCodeAt(0)\nfor (vv = 0; vv <= 9; ++vv) {\n\tBI_RC[rr++] = vv\n}\nrr = 'a'.charCodeAt(0)\nfor (vv = 10; vv < 36; ++vv) {\n\tBI_RC[rr++] = vv\n}\nrr = 'A'.charCodeAt(0)\nfor (vv = 10; vv < 36; ++vv) {\n\tBI_RC[rr++] = vv\n}\nexport function intAt(s, i) {\n\tvar c = BI_RC[s.charCodeAt(i)]\n\treturn c == null ? -1 : c\n}\n// return bigint initialized to value\nexport function nbv(i) {\n\tvar r = nbi()\n\tr.fromInt(i)\n\treturn r\n}\n// returns bit length of the integer x\nexport function nbits(x) {\n\tvar r = 1\n\tvar t\n\tif ((t = x >>> 16) != 0) {\n\t\tx = t\n\t\tr += 16\n\t}\n\tif ((t = x >> 8) != 0) {\n\t\tx = t\n\t\tr += 8\n\t}\n\tif ((t = x >> 4) != 0) {\n\t\tx = t\n\t\tr += 4\n\t}\n\tif ((t = x >> 2) != 0) {\n\t\tx = t\n\t\tr += 2\n\t}\n\tif ((t = x >> 1) != 0) {\n\t\tx = t\n\t\tr += 1\n\t}\n\treturn r\n}\n// \"constants\"\nBigInteger.ZERO = nbv(0)\nBigInteger.ONE = nbv(1)\n"],"names":["BigInteger","NullExp","Classic","Montgomery","Barrett"],"mappings":";;AAOA,IAAI,KAAA,CAAA;AAEJ,IAAI,MAAS,GAAA,eAAA,CAAA;AACb,IAAI,IAAA,GAAA,CAAQ,SAAS,QAAa,KAAA,QAAA,CAAA;AAElC,IAAI,SAAY,GAAA;AAAA,EACf,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,CAAA;AAAA,EAAG,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAAI,EAAA;AAAA,EAC5F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAC1F,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prng4.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/prng4.js"],"sourcesContent":["// prng4.js - uses Arcfour as a PRNG\
|
|
1
|
+
{"version":3,"file":"prng4.mjs","sources":["../../../../../../../packages/utils/jsencrypt/jselib/jsbn/prng4.js"],"sourcesContent":["// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n\tfunction Arcfour() {\n\t\tthis.i = 0\n\t\tthis.j = 0\n\t\tthis.S = []\n\t}\n\t// Arcfour.prototype.init = ARC4init;\n\t// Initialize arcfour context from key, an array of ints, each from [0..255]\n\tArcfour.prototype.init = function (key) {\n\t\tvar i\n\t\tvar j\n\t\tvar t\n\t\tfor (i = 0; i < 256; ++i) {\n\t\t\tthis.S[i] = i\n\t\t}\n\t\tj = 0\n\t\tfor (i = 0; i < 256; ++i) {\n\t\t\tj = (j + this.S[i] + key[i % key.length]) & 255\n\t\t\tt = this.S[i]\n\t\t\tthis.S[i] = this.S[j]\n\t\t\tthis.S[j] = t\n\t\t}\n\t\tthis.i = 0\n\t\tthis.j = 0\n\t}\n\t// Arcfour.prototype.next = ARC4next;\n\tArcfour.prototype.next = function () {\n\t\tvar t\n\t\tthis.i = (this.i + 1) & 255\n\t\tthis.j = (this.j + this.S[this.i]) & 255\n\t\tt = this.S[this.i]\n\t\tthis.S[this.i] = this.S[this.j]\n\t\tthis.S[this.j] = t\n\t\treturn this.S[(t + this.S[this.i]) & 255]\n\t}\n\treturn Arcfour\n})()\nexport { Arcfour }\n// Plug in your RNG constructor here\nexport function prng_newstate() {\n\treturn new Arcfour()\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nexport var rng_psize = 256\n"],"names":["Arcfour"],"mappings":"AACI,IAAA,OAAA;AAAA;AAAA,EAAyB,WAAY;AACxC,IAAA,SAASA,QAAU,GAAA;AAClB,MAAA,IAAA,CAAK,CAAI,GAAA,CAAA,CAAA;AACT,MAAA,IAAA,CAAK,CAAI,GAAA,CAAA,CAAA;AACT,MAAA,IAAA,CAAK,IAAI,EAAC,CAAA;AAAA,KACX;AAGA,IAAAA,QAAQ,CAAA,SAAA,CAAU,IAAO,GAAA,SAAU,GAAK,EAAA;AACvC,MAAI,IAAA,CAAA,CAAA;AACJ,MAAI,IAAA,CAAA,CAAA;AACJ,MAAI,IAAA,CAAA,CAAA;AACJ,MAAA,KAAK,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,EAAE,CAAG,EAAA;AACzB,QAAK,IAAA,CAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,CAAA;AAAA,OACb;AACA,MAAI,CAAA,GAAA,CAAA,CAAA;AACJ,MAAA,KAAK,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,EAAE,CAAG,EAAA;AACzB,QAAK,CAAA,GAAA,CAAA,GAAI,KAAK,CAAE,CAAA,CAAC,IAAI,GAAI,CAAA,CAAA,GAAI,GAAI,CAAA,MAAM,CAAK,GAAA,GAAA,CAAA;AAC5C,QAAI,CAAA,GAAA,IAAA,CAAK,EAAE,CAAC,CAAA,CAAA;AACZ,QAAA,IAAA,CAAK,CAAE,CAAA,CAAC,CAAI,GAAA,IAAA,CAAK,EAAE,CAAC,CAAA,CAAA;AACpB,QAAK,IAAA,CAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,CAAA;AAAA,OACb;AACA,MAAA,IAAA,CAAK,CAAI,GAAA,CAAA,CAAA;AACT,MAAA,IAAA,CAAK,CAAI,GAAA,CAAA,CAAA;AAAA,KACV,CAAA;AAEA,IAAAA,QAAAA,CAAQ,SAAU,CAAA,IAAA,GAAO,WAAY;AACpC,MAAI,IAAA,CAAA,CAAA;AACJ,MAAK,IAAA,CAAA,CAAA,GAAK,IAAK,CAAA,CAAA,GAAI,CAAK,GAAA,GAAA,CAAA;AACxB,MAAA,IAAA,CAAK,IAAK,IAAK,CAAA,CAAA,GAAI,KAAK,CAAE,CAAA,IAAA,CAAK,CAAC,CAAK,GAAA,GAAA,CAAA;AACrC,MAAI,CAAA,GAAA,IAAA,CAAK,CAAE,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AACjB,MAAA,IAAA,CAAK,EAAE,IAAK,CAAA,CAAC,IAAI,IAAK,CAAA,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA;AAC9B,MAAK,IAAA,CAAA,CAAA,CAAE,IAAK,CAAA,CAAC,CAAI,GAAA,CAAA,CAAA;AACjB,MAAO,OAAA,IAAA,CAAK,EAAG,CAAI,GAAA,IAAA,CAAK,EAAE,IAAK,CAAA,CAAC,IAAK,GAAG,CAAA,CAAA;AAAA,KACzC,CAAA;AACA,IAAOA,OAAAA,QAAAA,CAAAA;AAAA,GACL,EAAA;AAAA,EAAA;AAGI,SAAS,aAAgB,GAAA;AAC/B,EAAA,OAAO,IAAI,OAAQ,EAAA,CAAA;AACpB,CAAA;AAGO,IAAI,SAAY,GAAA;;;;"}
|