From 4f559c2d0446637c825dfb1e28a6b278bf772187 Mon Sep 17 00:00:00 2001 From: Kirigaya <1193466151@qq.com> Date: Tue, 20 Feb 2024 23:40:20 +0800 Subject: [PATCH] update --- package-lock.json | 75 +- package.json | 7 +- public/cpu.vcd | 8007 +++++++++++++++++++++++++++++++++ public/icon.png | Bin 0 -> 20789 bytes public/index.html | 24 +- public/vcd.css | 29 + public/vcd.js | 12 + public/vcd.wasm | Bin 0 -> 126822 bytes public/vscode.css | 149 + src/App.vue | 63 +- src/assets/logo.png | Bin 6849 -> 0 bytes src/components/HelloWorld.vue | 58 - src/hook/utils.js | 34 + vue.config.js | 12 +- 14 files changed, 8369 insertions(+), 101 deletions(-) create mode 100644 public/cpu.vcd create mode 100644 public/icon.png create mode 100644 public/vcd.css create mode 100644 public/vcd.js create mode 100644 public/vcd.wasm create mode 100644 public/vscode.css delete mode 100644 src/assets/logo.png delete mode 100644 src/components/HelloWorld.vue create mode 100644 src/hook/utils.js diff --git a/package-lock.json b/package-lock.json index cf097bb..cfab156 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "core-js": "^3.8.3", + "stream": "^0.0.2", "vue": "^3.2.13" }, "devDependencies": { @@ -5040,6 +5041,11 @@ "integrity": "sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==", "dev": true }, + "node_modules/emitter-component": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/emitter-component/-/emitter-component-1.1.2.tgz", + "integrity": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -9755,6 +9761,14 @@ "node": ">= 0.8" } }, + "node_modules/stream": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stream/-/stream-0.0.2.tgz", + "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "dependencies": { + "emitter-component": "^1.1.1" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", @@ -11571,7 +11585,8 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true + "dev": true, + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -13168,7 +13183,8 @@ "version": "5.0.8", "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", - "dev": true + "dev": true, + "requires": {} }, "@vue/cli-service": { "version": "5.0.8", @@ -13677,13 +13693,15 @@ "version": "1.9.0", "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true + "dev": true, + "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.3.2", @@ -13742,7 +13760,8 @@ "version": "3.5.2", "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "4.1.3", @@ -14551,7 +14570,8 @@ "version": "6.4.1", "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true + "dev": true, + "requires": {} }, "css-loader": { "version": "6.10.0", @@ -14737,7 +14757,8 @@ "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true + "dev": true, + "requires": {} }, "csso": { "version": "4.2.0", @@ -15052,6 +15073,11 @@ "integrity": "sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==", "dev": true }, + "emitter-component": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/emitter-component/-/emitter-component-1.1.2.tgz", + "integrity": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -16290,7 +16316,8 @@ "version": "5.1.0", "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -17678,25 +17705,29 @@ "version": "5.1.2", "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-loader": { "version": "6.2.1", @@ -17801,7 +17832,8 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.4", @@ -17836,7 +17868,8 @@ "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -18750,6 +18783,14 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "stream": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stream/-/stream-0.0.2.tgz", + "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "requires": { + "emitter-component": "^1.1.1" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", @@ -19621,7 +19662,8 @@ "version": "8.16.0", "resolved": "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz", "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -19743,7 +19785,8 @@ "version": "7.5.9", "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true + "dev": true, + "requires": {} }, "y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index 5414d33..b71ffba 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "core-js": "^3.8.3", + "stream": "^0.0.2", "vue": "^3.2.13" }, "devDependencies": { @@ -32,7 +33,11 @@ "parserOptions": { "parser": "@babel/eslint-parser" }, - "rules": {} + "rules": { + "no-unused-vars": "off", + "no-undef": "off", + "no-redeclare": "off" + } }, "browserslist": [ "> 1%", diff --git a/public/cpu.vcd b/public/cpu.vcd new file mode 100644 index 0000000..753bedd --- /dev/null +++ b/public/cpu.vcd @@ -0,0 +1,8007 @@ +$date + Mon Jan 4 17:57:07 2021 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module ID_EX $end +$var wire 2 ! AluOp [1:0] $end +$var wire 1 " AluSrc $end +$var wire 1 # MemRead $end +$var wire 1 $ MemWrite $end +$var wire 1 % MemtoReg $end +$var wire 1 & RegWrite $end +$var wire 1 ' clk_i $end +$var wire 3 ( func3 [2:0] $end +$var wire 7 ) func7 [6:0] $end +$var wire 32 * imm_o [31:0] $end +$var wire 32 + rd_addr [31:0] $end +$var wire 32 , rs1_addr [31:0] $end +$var wire 32 - rs1_data [31:0] $end +$var wire 32 . rs2_addr [31:0] $end +$var wire 32 / rs2_data [31:0] $end +$var reg 2 0 ID_EX_AluOp [1:0] $end +$var reg 1 1 ID_EX_AluSrc $end +$var reg 32 2 ID_EX_IMM [31:0] $end +$var reg 1 3 ID_EX_MemRead $end +$var reg 1 4 ID_EX_MemWrite $end +$var reg 1 5 ID_EX_MemtoReg $end +$var reg 5 6 ID_EX_RD [4:0] $end +$var reg 5 7 ID_EX_RS1 [4:0] $end +$var reg 32 8 ID_EX_RS1data [31:0] $end +$var reg 5 9 ID_EX_RS2 [4:0] $end +$var reg 32 : ID_EX_RS2data [31:0] $end +$var reg 1 ; ID_EX_RegWrite $end +$var reg 3 < ID_EX_func3 [2:0] $end +$var reg 7 = ID_EX_func7 [6:0] $end +$upscope $end +$scope module testbench $end +$var wire 256 > mem_cpu_data [255:0] $end +$var wire 1 ? mem_cpu_ack $end +$var wire 1 @ cpu_mem_write $end +$var wire 1 A cpu_mem_enable $end +$var wire 256 B cpu_mem_data [255:0] $end +$var wire 32 C cpu_mem_addr [31:0] $end +$var reg 1 D Clk $end +$var reg 1 E Reset $end +$var reg 1 F Start $end +$var reg 27 G address [26:0] $end +$var reg 1 H flag $end +$var reg 4 I index [3:0] $end +$var reg 25 J tag [24:0] $end +$var integer 32 K counter [31:0] $end +$var integer 32 L i [31:0] $end +$var integer 32 M j [31:0] $end +$var integer 32 N outfile [31:0] $end +$var integer 32 O outfile2 [31:0] $end +$scope module CPU $end +$var wire 1 D clk_i $end +$var wire 1 E rst_i $end +$var wire 1 F start_i $end +$var wire 32 P wb_data [31:0] $end +$var wire 32 Q rs2_data [31:0] $end +$var wire 2 R rs2_ctrl [1:0] $end +$var wire 5 S rs2_addr [4:0] $end +$var wire 32 T rs1_data [31:0] $end +$var wire 2 U rs1_ctrl [1:0] $end +$var wire 5 V rs1_addr [4:0] $end +$var wire 5 W rd_addr [4:0] $end +$var wire 32 X pc_o [31:0] $end +$var wire 32 Y pc_i [31:0] $end +$var wire 32 Z pc_add4 [31:0] $end +$var wire 7 [ opcode [6:0] $end +$var wire 32 \ mux_o [31:0] $end +$var wire 1 @ mem_write_o $end +$var wire 1 A mem_enable_o $end +$var wire 256 ] mem_data_o [255:0] $end +$var wire 256 ^ mem_data_i [255:0] $end +$var wire 32 _ mem_addr_o [31:0] $end +$var wire 1 ? mem_ack_i $end +$var wire 32 ` instr [31:0] $end +$var wire 32 a imm_o [31:0] $end +$var wire 12 b imm_i [11:0] $end +$var wire 7 c func7 [6:0] $end +$var wire 3 d func3 [2:0] $end +$var wire 1 e cpu_stall_o $end +$var wire 1 f Stall $end +$var wire 1 g RegWrite $end +$var wire 1 h PcWrite $end +$var wire 32 i PC_Branch [31:0] $end +$var wire 1 j NoOp $end +$var wire 1 k MemtoReg $end +$var wire 1 l MemWrite $end +$var wire 1 m MemRead $end +$var wire 32 n MemData_o [31:0] $end +$var wire 32 o IF_ID_PC [31:0] $end +$var wire 32 p IF_ID_IR [31:0] $end +$var wire 1 q Flush $end +$var wire 1 r Branch $end +$var wire 1 s AluSrc $end +$var wire 2 t AluOp [1:0] $end +$var wire 3 u AluControl_o [2:0] $end +$var wire 32 v ALU_o [31:0] $end +$var wire 32 w ALU_RS2 [31:0] $end +$var wire 32 x ALU_RS1 [31:0] $end +$var reg 32 y EX_MEM_ALUout [31:0] $end +$var reg 1 z EX_MEM_MemRead $end +$var reg 1 { EX_MEM_MemWrite $end +$var reg 1 | EX_MEM_MemtoReg $end +$var reg 5 } EX_MEM_RD [4:0] $end +$var reg 1 ~ EX_MEM_RegWrite $end +$var reg 32 !" EX_MEM_WriteData [31:0] $end +$var reg 2 "" ID_EX_AluOp [1:0] $end +$var reg 1 #" ID_EX_AluSrc $end +$var reg 32 $" ID_EX_IMM [31:0] $end +$var reg 1 %" ID_EX_MemRead $end +$var reg 1 &" ID_EX_MemWrite $end +$var reg 1 '" ID_EX_MemtoReg $end +$var reg 5 (" ID_EX_RD [4:0] $end +$var reg 5 )" ID_EX_RS1 [4:0] $end +$var reg 32 *" ID_EX_RS1data [31:0] $end +$var reg 5 +" ID_EX_RS2 [4:0] $end +$var reg 32 ," ID_EX_RS2data [31:0] $end +$var reg 1 -" ID_EX_RegWrite $end +$var reg 3 ." ID_EX_func3 [2:0] $end +$var reg 7 /" ID_EX_func7 [6:0] $end +$var reg 32 0" MEM_WB_ALUout [31:0] $end +$var reg 32 1" MEM_WB_MEMout [31:0] $end +$var reg 1 2" MEM_WB_MemtoReg $end +$var reg 5 3" MEM_WB_RD [4:0] $end +$var reg 1 4" MEM_WB_RegWrite $end +$scope module ALU $end +$var wire 32 5" rs1_data [31:0] $end +$var wire 32 6" mux_o [31:0] $end +$var wire 3 7" AluControl [2:0] $end +$var reg 32 8" ALU_o [31:0] $end +$upscope $end +$scope module ALU_Control $end +$var wire 2 9" AluOp [1:0] $end +$var wire 3 :" func3 [2:0] $end +$var wire 7 ;" func7 [6:0] $end +$var reg 3 <" AluControl_o [2:0] $end +$upscope $end +$scope module ALU_Src_Mux $end +$var wire 1 #" ctrl_signal $end +$var wire 32 =" input1 [31:0] $end +$var wire 32 >" out [31:0] $end +$var wire 32 ?" input0 [31:0] $end +$upscope $end +$scope module Add4 $end +$var wire 32 @" pc_o [31:0] $end +$var wire 32 A" pc_i [31:0] $end +$upscope $end +$scope module Adder $end +$var wire 32 B" PC_Branch [31:0] $end +$var wire 32 C" IF_ID_PC [31:0] $end +$var wire 32 D" IF_ID_Imm [31:0] $end +$upscope $end +$scope module Control $end +$var wire 7 E" opcode [6:0] $end +$var wire 1 g RegWrite $end +$var wire 1 j NoOp $end +$var wire 1 k MemtoReg $end +$var wire 1 l MemWrite $end +$var wire 1 m MemRead $end +$var wire 1 r Branch $end +$var wire 1 s AluSrc $end +$var wire 2 F" AluOp [1:0] $end +$upscope $end +$scope module Forwarding_Unit $end +$var wire 5 G" EX_MEM_RD [4:0] $end +$var wire 1 ~ EX_MEM_RegWrite $end +$var wire 5 H" ID_EX_RS1 [4:0] $end +$var wire 5 I" ID_EX_RS2 [4:0] $end +$var wire 5 J" MEM_WB_RD [4:0] $end +$var wire 1 4" MEM_WB_RegWrite $end +$var wire 2 K" Forward_Control2 [1:0] $end +$var wire 2 L" Forward_Control1 [1:0] $end +$upscope $end +$scope module Hazard_Detection $end +$var wire 1 %" ID_EX_MemRead $end +$var wire 5 M" ID_EX_RD [4:0] $end +$var wire 5 N" rs1_addr [4:0] $end +$var wire 5 O" rs2_addr [4:0] $end +$var wire 1 f Stall_o $end +$var wire 1 h PcWrite_o $end +$var wire 1 j NoOp_o $end +$upscope $end +$scope module IF_ID $end +$var wire 1 q Flush $end +$var wire 1 f Stall $end +$var wire 1 D clk_i $end +$var wire 32 P" pc_o [31:0] $end +$var wire 32 Q" instr [31:0] $end +$var wire 1 e cpu_stall_o $end +$var reg 32 R" IF_ID_IR [31:0] $end +$var reg 32 S" IF_ID_PC [31:0] $end +$upscope $end +$scope module Instruction_Memory $end +$var wire 32 T" instr_o [31:0] $end +$var wire 32 U" addr_i [31:0] $end +$upscope $end +$scope module PC $end +$var wire 1 h PCWrite_i $end +$var wire 1 D clk_i $end +$var wire 1 E rst_i $end +$var wire 1 F start_i $end +$var wire 1 e stall_i $end +$var wire 32 V" pc_i [31:0] $end +$var reg 32 W" pc_o [31:0] $end +$upscope $end +$scope module PC_Mux $end +$var wire 1 q ctrl_signal $end +$var wire 32 X" input0 [31:0] $end +$var wire 32 Y" input1 [31:0] $end +$var wire 32 Z" out [31:0] $end +$upscope $end +$scope module RS1_Forwarding $end +$var wire 32 [" EX_MEM_ALUout [31:0] $end +$var wire 32 \" ID_EX_RS [31:0] $end +$var wire 2 ]" ctrl [1:0] $end +$var wire 32 ^" forword_out [31:0] $end +$var wire 32 _" WB_WBdata [31:0] $end +$upscope $end +$scope module RS2_Forwarding $end +$var wire 32 `" EX_MEM_ALUout [31:0] $end +$var wire 32 a" ID_EX_RS [31:0] $end +$var wire 2 b" ctrl [1:0] $end +$var wire 32 c" forword_out [31:0] $end +$var wire 32 d" WB_WBdata [31:0] $end +$upscope $end +$scope module Registers $end +$var wire 5 e" RDaddr_i [4:0] $end +$var wire 5 f" RS1addr_i [4:0] $end +$var wire 5 g" RS2addr_i [4:0] $end +$var wire 1 4" RegWrite_i $end +$var wire 1 D clk_i $end +$var wire 32 h" RS2data_o [31:0] $end +$var wire 32 i" RS1data_o [31:0] $end +$var wire 32 j" RDdata_i [31:0] $end +$upscope $end +$scope module Sign_Extend $end +$var wire 12 k" imm_i [11:0] $end +$var wire 32 l" imm_o [31:0] $end +$upscope $end +$scope module WB_Mux $end +$var wire 1 2" ctrl_signal $end +$var wire 32 m" input0 [31:0] $end +$var wire 32 n" input1 [31:0] $end +$var wire 32 o" out [31:0] $end +$upscope $end +$scope module dcache $end +$var wire 1 p" cache_dirty $end +$var wire 1 q" cache_sram_enable $end +$var wire 4 r" cache_sram_index [3:0] $end +$var wire 1 s" cache_sram_write $end +$var wire 1 D clk_i $end +$var wire 1 z cpu_MemRead_i $end +$var wire 1 { cpu_MemWrite_i $end +$var wire 32 t" cpu_addr_i [31:0] $end +$var wire 32 u" cpu_data_i [31:0] $end +$var wire 32 v" cpu_data_o [31:0] $end +$var wire 1 w" cpu_req $end +$var wire 1 e cpu_stall_o $end +$var wire 256 x" mem_data_o [255:0] $end +$var wire 1 A mem_enable_o $end +$var wire 1 @ mem_write_o $end +$var wire 256 y" r_hit_data [255:0] $end +$var wire 1 E rst_i $end +$var wire 1 z" write_hit $end +$var wire 1 {" sram_valid $end +$var wire 22 |" sram_tag [21:0] $end +$var wire 1 }" sram_dirty $end +$var wire 25 ~" sram_cache_tag [24:0] $end +$var wire 256 !# sram_cache_data [255:0] $end +$var wire 256 "# mem_data_i [255:0] $end +$var wire 32 ## mem_addr_o [31:0] $end +$var wire 1 ? mem_ack_i $end +$var wire 1 $# hit $end +$var wire 23 %# cpu_tag [22:0] $end +$var wire 5 &# cpu_offset [4:0] $end +$var wire 4 '# cpu_index [3:0] $end +$var wire 25 (# cache_sram_tag [24:0] $end +$var wire 256 )# cache_sram_data [255:0] $end +$var reg 1 *# cache_write $end +$var reg 32 +# cpu_data [31:0] $end +$var reg 1 ,# mem_enable $end +$var reg 1 -# mem_write $end +$var reg 3 .# state [2:0] $end +$var reg 256 /# w_hit_data [255:0] $end +$var reg 1 0# write_back $end +$scope module dcache_sram $end +$var wire 4 1# addr_i [3:0] $end +$var wire 1 D clk_i $end +$var wire 256 2# data_i [255:0] $end +$var wire 1 q" enable_i $end +$var wire 1 E rst_i $end +$var wire 25 3# tag_i [24:0] $end +$var wire 1 s" write_i $end +$var wire 25 4# tag_o [24:0] $end +$var wire 1 $# hit_o $end +$var wire 256 5# data_o [255:0] $end +$var wire 2 6# ctrl [1:0] $end +$var integer 32 7# i [31:0] $end +$var integer 32 8# j [31:0] $end +$scope module Hit $end +$var wire 25 9# cpu_tag [24:0] $end +$var wire 25 :# sram_tag1 [24:0] $end +$var wire 25 ;# sram_tag2 [24:0] $end +$var wire 2 <# ctrl [1:0] $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope module Data_Memory $end +$var wire 1 ? ack_o $end +$var wire 32 =# addr_i [31:0] $end +$var wire 1 D clk_i $end +$var wire 256 ># data_i [255:0] $end +$var wire 256 ?# data_o [255:0] $end +$var wire 1 A enable_i $end +$var wire 1 E rst_i $end +$var wire 1 @ write_i $end +$var wire 27 @# addr [26:0] $end +$var reg 4 A# count [3:0] $end +$var reg 256 B# data [255:0] $end +$var reg 2 C# state [1:0] $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +b0 C# +bx B# +b0 A# +bx @# +bx ?# +bx ># +bx00000 =# +bx <# +bx ;# +bx :# +b1xxxxxxxxxxxxxxxxxxxxxxxx 9# +b10 8# +b10000 7# +bx 6# +bx 5# +bx 4# +b1xxxxxxxxxxxxxxxxxxxxxxxx 3# +bx 2# +bx 1# +00# +bx /# +b0 .# +0-# +0,# +bx +# +0*# +bx )# +b1xxxxxxxxxxxxxxxxxxxxxxxx (# +bx '# +bx &# +bx %# +x$# +bx00000 ## +bx "# +bx !# +bx ~" +x}" +bx |" +x{" +xz" +bx y" +bx x" +xw" +bx v" +bx u" +bx t" +xs" +bx r" +xq" +xp" +bx o" +bx n" +bx m" +bx l" +bx k" +bx j" +bx i" +bx h" +bx g" +bx f" +bx e" +bx d" +bx c" +b0 b" +bx a" +bx `" +bx _" +bx ^" +b0 ]" +bx \" +bx [" +bx Z" +bx Y" +b100 X" +b0 W" +bx V" +b0 U" +bx T" +bx S" +bx R" +bx Q" +b0 P" +bx O" +bx N" +bx M" +b0 L" +b0 K" +bx J" +bx I" +bx H" +bx G" +bx F" +bx E" +bx D" +bx C" +bx B" +b0 A" +b100 @" +bx ?" +bx >" +bx =" +bx <" +bx ;" +bx :" +bx 9" +bx 8" +bx 7" +bx 6" +bx 5" +x4" +bx 3" +x2" +bx 1" +bx 0" +bx /" +bx ." +x-" +bx ," +bx +" +bx *" +bx )" +bx (" +x'" +x&" +x%" +bx $" +x#" +bx "" +bx !" +x~ +bx } +x| +x{ +xz +bx y +bx x +bx w +bx v +bx u +bx t +xs +xr +xq +bx p +bx o +bx n +xm +xl +xk +xj +bx i +xh +xg +xf +xe +bx d +bx c +bx b +bx a +bx ` +bx00000 _ +bx ^ +bx ] +bx \ +bx [ +b100 Z +bx Y +b0 X +bx W +bx V +b0 U +bx T +bx S +b0 R +bx Q +bx P +bx O +bx N +bx M +bx L +b0 K +bx J +bx I +xH +bx G +0F +1E +0D +bx00000 C +bx B +0A +0@ +0? +bx > +bx = +bx < +x; +bx : +bx 9 +bx 8 +bx 7 +bx 6 +x5 +x4 +x3 +bx 2 +x1 +bx 0 +bz / +bz . +bz - +bz , +bz + +bz * +bz ) +bz ( +z' +z& +z% +z$ +z# +z" +bz ! +$end +#12 +b0 n +b0 v" +b0 +# +b100 Y +b100 V" +b100 Z" +b0 |" +b0 i +b0 B" +b0 Y" +0q +0}" +0{" +0$# +0g +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b0 ~" +b0 4# +b0 a +b0 D" +b0 l" +b0 b +b0 k" +b0 @# +b10 6# +b10 <# +1s +0r +0m +0l +0k +b0 t +b0 F" +b0 Q +b0 h" +0s" +0e +b0 C +b0 _ +b0 ## +b0 =# +1h +0f +0j +b0 v +b0 8" +b0 S +b0 O" +b0 g" +b0 T +b0 i" +b0 W +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +0p" +0z" +0q" +0w" +b0 /# +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 :# +b0 ;# +b0 r" +b0 1# +b0 '# +b0 &# +b0 u +b0 7" +b0 <" +b0 \ +b0 6" +b0 >" +b0 w +b0 ?" +b0 c" +b0 x +b0 5" +b0 ^" +b0 c +b0 V +b0 N" +b0 f" +b0 d +b100 [ +b100 E" +02" +04" +b0 3" +b0 J" +b0 e" +b0 0" +b0 m" +b0 1" +b0 n" +0{ +0z +0| +0~ +b0 } +b0 G" +b0 !" +b0 u" +b0 y +b0 [" +b0 `" +b0 t" +0&" +0%" +0'" +0-" +0#" +b0 "" +b0 9" +b0 ." +b0 :" +b0 /" +b0 ;" +b0 $" +b0 =" +b0 ," +b0 a" +b0 *" +b0 \" +b0 +" +b0 I" +b0 )" +b0 H" +b0 (" +b0 M" +b0 o +b0 C" +b0 S" +b100 p +b100 R" +b101 O +b11 N +b10 M +b10010000000011 ` +b10010000000011 Q" +b10010000000011 T" +b1000000000 L +1F +0E +#25 +1g +1m +1k +b1000 W +b10 d +b11 [ +b11 E" +b10000000010010010000011 ` +b10000000010010010000011 Q" +b10000000010010010000011 T" +b1000 Y +b1000 V" +b1000 Z" +b10010000000011 p +b10010000000011 R" +1#" +b1000 Z +b1000 @" +b1000 X" +b100 X +b100 A" +b100 P" +b100 U" +b100 W" +b1 K +0H +1D +#50 +0D +#75 +1s +1g +1k +1m +1h +0f +0j +b100 a +b100 D" +b100 l" +b100 b +b100 k" +b1001 W +b100000000010010100000011 ` +b100000000010010100000011 Q" +b100000000010010100000011 T" +b1100 Y +b1100 V" +b1100 Z" +1%" +1'" +1-" +b10 ." +b10 :" +b1000 (" +b1000 M" +b1100 i +b1100 B" +b1100 Y" +b100 o +b100 C" +b100 S" +b10000000010010010000011 p +b10000000010010010000011 R" +b1100 Z +b1100 @" +b1100 X" +b1000 X +b1000 A" +b1000 P" +b1000 U" +b1000 W" +b10 K +1D +#100 +0D +#125 +b1000 a +b1000 D" +b1000 l" +b1000 b +b1000 k" +b1010 W +b100 v +b100 8" +1e +b100 \ +b100 6" +b100 >" +1q" +1w" +b110000000010010110000011 ` +b110000000010010110000011 Q" +b110000000010010110000011 T" +b10000 Y +b10000 V" +b10000 Z" +b11000 i +b11000 B" +b11000 Y" +b1000 o +b1000 C" +b1000 S" +b100000000010010100000011 p +b100000000010010100000011 R" +b100 $" +b100 =" +b1001 (" +b1001 M" +1z +1| +1~ +b1000 } +b1000 G" +b10000 Z +b10000 @" +b10000 X" +b1100 X +b1100 A" +b1100 P" +b1100 U" +b1100 W" +b11 K +1D +#150 +0D +#175 +b100 .# +b100 K +1H +1D +#200 +0D +#225 +b1 .# +1A +1,# +b101 K +1D +#250 +0D +#275 +b1 A# +b1 C# +b110 K +1D +#300 +0D +#325 +b10 A# +b111 K +1D +#350 +0D +#375 +b11 A# +b1000 K +1D +#400 +0D +#425 +b100 A# +b1001 K +1D +#450 +0D +#475 +b101 A# +b1010 K +1D +#500 +0D +#525 +b110 A# +b1011 K +1D +#550 +0D +#575 +b111 A# +b1100 K +1D +#600 +0D +#625 +b1000 A# +b1101 K +1D +#650 +0D +#675 +1? +b1001 A# +b1110 K +1D +#700 +0D +#725 +0? +1s" +b0 A# +b0 C# +b10 .# +0A +0,# +1*# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 > +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ^ +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 "# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ?# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B# +b1111 K +1D +#750 +0D +#775 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +0e +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110100000000000000000000000000000000 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110100000000000000000000000000000000 2# +1$# +b0 6# +b0 <# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110100000000000000000000000000000000 /# +1{" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +0s" +b1000000000000000000000000 :# +b0 .# +0*# +b10000 K +1D +#800 +0D +#825 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110110000000000000000000000000000000011101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110110000000000000000000000000000000011101110111011101111111111111111 2# +b1100 a +b1100 D" +b1100 l" +b1100 b +b1100 k" +b1011 W +b1000 v +b1000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110110000000000000000000000000000000011101110111011101111111111111111 /# +b1000 \ +b1000 6" +b1000 >" +b100 &# +b11101110111011101111111111111111 P +b11101110111011101111111111111111 _" +b11101110111011101111111111111111 d" +b11101110111011101111111111111111 j" +b11101110111011101111111111111111 o" +b1000000000010011000000011 ` +b1000000000010011000000011 Q" +b1000000000010011000000011 T" +b10100 Y +b10100 V" +b10100 Z" +b100100 i +b100100 B" +b100100 Y" +b1100 o +b1100 C" +b1100 S" +b110000000010010110000011 p +b110000000010010110000011 R" +b1000 $" +b1000 =" +b1010 (" +b1010 M" +b1001 } +b1001 G" +b100 y +b100 [" +b100 `" +b100 t" +12" +14" +b1000 3" +b1000 J" +b1000 e" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b10100 Z +b10100 @" +b10100 X" +b10000 X +b10000 A" +b10000 P" +b10000 U" +b10000 W" +b10001 K +0H +1D +#850 +0D +#875 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001000000000000000000000000000000001100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001000000000000000000000000000000001100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001000000000000000000000000000000001100110011001100110111011101110111101110111011101111111111111111 /# +b1100 v +b1100 8" +b10000 a +b10000 D" +b10000 l" +b10000 b +b10000 k" +b1100 W +b11001100110011001101110111011101 P +b11001100110011001101110111011101 _" +b11001100110011001101110111011101 d" +b11001100110011001101110111011101 j" +b11001100110011001101110111011101 o" +b1000 &# +b1100 \ +b1100 6" +b1100 >" +b1010000000010011010000011 ` +b1010000000010011010000011 Q" +b1010000000010011010000011 T" +b11000 Y +b11000 V" +b11000 Z" +b1001 3" +b1001 J" +b1001 e" +b100 0" +b100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b1010 } +b1010 G" +b1000 y +b1000 [" +b1000 `" +b1000 t" +b1100 $" +b1100 =" +b1011 (" +b1011 M" +b110000 i +b110000 B" +b110000 Y" +b10000 o +b10000 C" +b10000 S" +b1000000000010011000000011 p +b1000000000010011000000011 R" +b11000 Z +b11000 @" +b11000 X" +b10100 X +b10100 A" +b10100 P" +b10100 U" +b10100 W" +b10010 K +1D +#900 +0D +#925 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011100000000000000000000000000000000101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011100000000000000000000000000000000101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b10100 a +b10100 D" +b10100 l" +b10100 b +b10100 k" +b1101 W +b10000 v +b10000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011100000000000000000000000000000000101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b10000 \ +b10000 6" +b10000 >" +b1100 &# +b10101010101010101011101110111011 P +b10101010101010101011101110111011 _" +b10101010101010101011101110111011 d" +b10101010101010101011101110111011 j" +b10101010101010101011101110111011 o" +b1100000000010011100000011 ` +b1100000000010011100000011 Q" +b1100000000010011100000011 T" +b11100 Y +b11100 V" +b11100 Z" +b111100 i +b111100 B" +b111100 Y" +b10100 o +b10100 C" +b10100 S" +b1010000000010011010000011 p +b1010000000010011010000011 R" +b10000 $" +b10000 =" +b1100 (" +b1100 M" +b1011 } +b1011 G" +b1100 y +b1100 [" +b1100 `" +b1100 t" +b1010 3" +b1010 J" +b1010 e" +b1000 0" +b1000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b11100 Z +b11100 @" +b11100 X" +b11000 X +b11000 A" +b11000 P" +b11000 U" +b11000 W" +b10011 K +1D +#950 +0D +#975 +b1100110011001100111011101110111 n +b1100110011001100111011101110111 v" +b1100110011001100111011101110111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b10100 v +b10100 8" +b11000 a +b11000 D" +b11000 l" +b11000 b +b11000 k" +b1110 W +b10001000100010001001100110011001 P +b10001000100010001001100110011001 _" +b10001000100010001001100110011001 d" +b10001000100010001001100110011001 j" +b10001000100010001001100110011001 o" +b10000 &# +b10100 \ +b10100 6" +b10100 >" +b1110000000010011110000011 ` +b1110000000010011110000011 Q" +b1110000000010011110000011 T" +b100000 Y +b100000 V" +b100000 Z" +b1011 3" +b1011 J" +b1011 e" +b1100 0" +b1100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +b1100 } +b1100 G" +b10000 y +b10000 [" +b10000 `" +b10000 t" +b10100 $" +b10100 =" +b1101 (" +b1101 M" +b1001000 i +b1001000 B" +b1001000 Y" +b11000 o +b11000 C" +b11000 S" +b1100000000010011100000011 p +b1100000000010011100000011 R" +b100000 Z +b100000 @" +b100000 X" +b11100 X +b11100 A" +b11100 P" +b11100 U" +b11100 W" +b10100 K +1D +#1000 +0D +#1025 +b1000100010001000101010101010101 n +b1000100010001000101010101010101 v" +b1000100010001000101010101010101 +# +b100010001000100100010001000100011001100110011000000000000000000000000000000000110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011000000000000000000000000000000000110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b11100 a +b11100 D" +b11100 l" +b11100 b +b11100 k" +b1111 W +b11000 v +b11000 8" +b100010001000100100010001000100011001100110011000000000000000000000000000000000110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b11000 \ +b11000 6" +b11000 >" +b10100 &# +b1100110011001100111011101110111 P +b1100110011001100111011101110111 _" +b1100110011001100111011101110111 d" +b1100110011001100111011101110111 j" +b1100110011001100111011101110111 o" +b10000000000010100000000011 ` +b10000000000010100000000011 Q" +b10000000000010100000000011 T" +b100100 Y +b100100 V" +b100100 Z" +b1010100 i +b1010100 B" +b1010100 Y" +b11100 o +b11100 C" +b11100 S" +b1110000000010011110000011 p +b1110000000010011110000011 R" +b11000 $" +b11000 =" +b1110 (" +b1110 M" +b1101 } +b1101 G" +b10100 y +b10100 [" +b10100 `" +b10100 t" +b1100 3" +b1100 J" +b1100 e" +b10000 0" +b10000 m" +b1100110011001100111011101110111 1" +b1100110011001100111011101110111 n" +b100100 Z +b100100 @" +b100100 X" +b100000 X +b100000 A" +b100000 P" +b100000 U" +b100000 W" +b10101 K +1D +#1050 +0D +#1075 +b100010001000100011001100110011 n +b100010001000100011001100110011 v" +b100010001000100011001100110011 +# +b100010001000100000000000000000000000000000000010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100000000000000000000000000000000010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100000000000000000000000000000000010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b11100 v +b11100 8" +b100000 a +b100000 D" +b100000 l" +b100000 b +b100000 k" +b10000 W +b1000100010001000101010101010101 P +b1000100010001000101010101010101 _" +b1000100010001000101010101010101 d" +b1000100010001000101010101010101 j" +b1000100010001000101010101010101 o" +b11000 &# +b11100 \ +b11100 6" +b11100 >" +b1 c +b10010000000010100010000011 ` +b10010000000010100010000011 Q" +b10010000000010100010000011 T" +b101000 Y +b101000 V" +b101000 Z" +b1101 3" +b1101 J" +b1101 e" +b10100 0" +b10100 m" +b1000100010001000101010101010101 1" +b1000100010001000101010101010101 n" +b1110 } +b1110 G" +b11000 y +b11000 [" +b11000 `" +b11000 t" +b11100 $" +b11100 =" +b1111 (" +b1111 M" +b1100000 i +b1100000 B" +b1100000 Y" +b100000 o +b100000 C" +b100000 S" +b10000000000010100000000011 p +b10000000000010100000000011 R" +b101000 Z +b101000 @" +b101000 X" +b100100 X +b100100 A" +b100100 P" +b100100 U" +b100100 W" +b10110 K +1D +#1100 +0D +#1125 +b1000100010001 n +b1000100010001 v" +b1000100010001 +# +b100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100100 a +b100100 D" +b100100 l" +b100100 b +b100100 k" +b10001 W +b100000 v +b100000 8" +b100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b100000 \ +b100000 6" +b100000 >" +b11100 &# +b100010001000100011001100110011 P +b100010001000100011001100110011 _" +b100010001000100011001100110011 d" +b100010001000100011001100110011 j" +b100010001000100011001100110011 o" +b10100000000010100100000011 ` +b10100000000010100100000011 Q" +b10100000000010100100000011 T" +b101100 Y +b101100 V" +b101100 Z" +b1101100 i +b1101100 B" +b1101100 Y" +b100100 o +b100100 C" +b100100 S" +b10010000000010100010000011 p +b10010000000010100010000011 R" +b1 /" +b1 ;" +b100000 $" +b100000 =" +b10000 (" +b10000 M" +b1111 } +b1111 G" +b11100 y +b11100 [" +b11100 `" +b11100 t" +b1110 3" +b1110 J" +b1110 e" +b11000 0" +b11000 m" +b100010001000100011001100110011 1" +b100010001000100011001100110011 n" +b101100 Z +b101100 @" +b101100 X" +b101000 X +b101000 A" +b101000 P" +b101000 U" +b101000 W" +b10111 K +1D +#1150 +0D +#1175 +b0 n +b0 v" +b0 +# +1e +0$# +b1 @# +b10 6# +b10 <# +0{" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100000 C +b100000 _ +b100000 ## +b100000 =# +b0 ~" +b0 4# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b0 /# +b100100 v +b100100 8" +b101000 a +b101000 D" +b101000 l" +b101000 b +b101000 k" +b10010 W +b1000100010001 P +b1000100010001 _" +b1000100010001 d" +b1000100010001 j" +b1000100010001 o" +b0 :# +b1 r" +b1 1# +b1 '# +b0 &# +b100100 \ +b100100 6" +b100100 >" +b10110000000010100110000011 ` +b10110000000010100110000011 Q" +b10110000000010100110000011 T" +b110000 Y +b110000 V" +b110000 Z" +b1111 3" +b1111 J" +b1111 e" +b11100 0" +b11100 m" +b1000100010001 1" +b1000100010001 n" +b10000 } +b10000 G" +b100000 y +b100000 [" +b100000 `" +b100000 t" +b100100 $" +b100100 =" +b10001 (" +b10001 M" +b1111000 i +b1111000 B" +b1111000 Y" +b101000 o +b101000 C" +b101000 S" +b10100000000010100100000011 p +b10100000000010100100000011 R" +b110000 Z +b110000 @" +b110000 X" +b101100 X +b101100 A" +b101100 P" +b101100 U" +b101100 W" +b11000 K +1D +#1200 +0D +#1225 +b100 .# +b11001 K +1H +1D +#1250 +0D +#1275 +b1 .# +1A +1,# +b11010 K +1D +#1300 +0D +#1325 +b1 A# +b1 C# +b11011 K +1D +#1350 +0D +#1375 +b10 A# +b11100 K +1D +#1400 +0D +#1425 +b11 A# +b11101 K +1D +#1450 +0D +#1475 +b100 A# +b11110 K +1D +#1500 +0D +#1525 +b101 A# +b11111 K +1D +#1550 +0D +#1575 +b110 A# +b100000 K +1D +#1600 +0D +#1625 +b111 A# +b100001 K +1D +#1650 +0D +#1675 +b1000 A# +b100010 K +1D +#1700 +0D +#1725 +1? +b1001 A# +b100011 K +1D +#1750 +0D +#1775 +1s" +0? +b10 .# +0A +0,# +1*# +b0 A# +b0 C# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b100100 K +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 > +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ^ +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 "# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ?# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 B# +1D +#1800 +0D +#1825 +b10001000100010000000000000000 n +b10001000100010000000000000000 v" +b10001000100010000000000000000 +# +0e +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 2# +1$# +b0 6# +b0 <# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 /# +1{" +0s" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 .# +0*# +b1000000000000000000000000 :# +b100101 K +1D +#1850 +0D +#1875 +b110011001100110010001000100010 n +b110011001100110010001000100010 v" +b110011001100110010001000100010 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000000000000000000000000000000000000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000000000000000000000000000000000000010001000100010000000000000000 2# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000000000000000000000000000000000000010001000100010000000000000000 /# +b101000 v +b101000 8" +b101100 a +b101100 D" +b101100 l" +b101100 b +b101100 k" +b10011 W +b10001000100010000000000000000 P +b10001000100010000000000000000 _" +b10001000100010000000000000000 d" +b10001000100010000000000000000 j" +b10001000100010000000000000000 o" +b100 &# +b101000 \ +b101000 6" +b101000 >" +b11000000000010101000000011 ` +b11000000000010101000000011 Q" +b11000000000010101000000011 T" +b110100 Y +b110100 V" +b110100 Z" +b10000 3" +b10000 J" +b10000 e" +b100000 0" +b100000 m" +b10001000100010000000000000000 1" +b10001000100010000000000000000 n" +b10001 } +b10001 G" +b100100 y +b100100 [" +b100100 `" +b100100 t" +b101000 $" +b101000 =" +b10010 (" +b10010 M" +b10000100 i +b10000100 B" +b10000100 Y" +b101100 o +b101100 C" +b101100 S" +b10110000000010100110000011 p +b10110000000010100110000011 R" +b110100 Z +b110100 @" +b110100 X" +b110000 X +b110000 A" +b110000 P" +b110000 U" +b110000 W" +b100110 K +0H +1D +#1900 +0D +#1925 +b1010101010101010100010001000100 n +b1010101010101010100010001000100 v" +b1010101010101010100010001000100 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000011001100110011001000100010001000010001000100010000000000000000 2# +b110000 a +b110000 D" +b110000 l" +b110000 b +b110000 k" +b10100 W +b101100 v +b101100 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000011001100110011001000100010001000010001000100010000000000000000 /# +b101100 \ +b101100 6" +b101100 >" +b1000 &# +b110011001100110010001000100010 P +b110011001100110010001000100010 _" +b110011001100110010001000100010 d" +b110011001100110010001000100010 j" +b110011001100110010001000100010 o" +b11010000000010101010000011 ` +b11010000000010101010000011 Q" +b11010000000010101010000011 T" +b111000 Y +b111000 V" +b111000 Z" +b10010000 i +b10010000 B" +b10010000 Y" +b110000 o +b110000 C" +b110000 S" +b11000000000010101000000011 p +b11000000000010101000000011 R" +b101100 $" +b101100 =" +b10011 (" +b10011 M" +b10010 } +b10010 G" +b101000 y +b101000 [" +b101000 `" +b101000 t" +b10001 3" +b10001 J" +b10001 e" +b100100 0" +b100100 m" +b110011001100110010001000100010 1" +b110011001100110010001000100010 n" +b111000 Z +b111000 @" +b111000 X" +b110100 X +b110100 A" +b110100 P" +b110100 U" +b110100 W" +b100111 K +1D +#1950 +0D +#1975 +b1110111011101110110011001100110 n +b1110111011101110110011001100110 v" +b1110111011101110110011001100110 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100000000000000000000000000000000010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100000000000000000000000000000000010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100000000000000000000000000000000010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b110000 v +b110000 8" +b110100 a +b110100 D" +b110100 l" +b110100 b +b110100 k" +b10101 W +b1010101010101010100010001000100 P +b1010101010101010100010001000100 _" +b1010101010101010100010001000100 d" +b1010101010101010100010001000100 j" +b1010101010101010100010001000100 o" +b1100 &# +b110000 \ +b110000 6" +b110000 >" +b11100000000010101100000011 ` +b11100000000010101100000011 Q" +b11100000000010101100000011 T" +b111100 Y +b111100 V" +b111100 Z" +b10010 3" +b10010 J" +b10010 e" +b101000 0" +b101000 m" +b1010101010101010100010001000100 1" +b1010101010101010100010001000100 n" +b10011 } +b10011 G" +b101100 y +b101100 [" +b101100 `" +b101100 t" +b110000 $" +b110000 =" +b10100 (" +b10100 M" +b10011100 i +b10011100 B" +b10011100 Y" +b110100 o +b110100 C" +b110100 S" +b11010000000010101010000011 p +b11010000000010101010000011 R" +b111100 Z +b111100 @" +b111100 X" +b111000 X +b111000 A" +b111000 P" +b111000 U" +b111000 W" +b101000 K +1D +#2000 +0D +#2025 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111010000000000000000000000000000000001110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111010000000000000000000000000000000001110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b111000 a +b111000 D" +b111000 l" +b111000 b +b111000 k" +b10110 W +b110100 v +b110100 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111010000000000000000000000000000000001110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b110100 \ +b110100 6" +b110100 >" +b10000 &# +b1110111011101110110011001100110 P +b1110111011101110110011001100110 _" +b1110111011101110110011001100110 d" +b1110111011101110110011001100110 j" +b1110111011101110110011001100110 o" +b11110000000010101110000011 ` +b11110000000010101110000011 Q" +b11110000000010101110000011 T" +b1000000 Y +b1000000 V" +b1000000 Z" +b10101000 i +b10101000 B" +b10101000 Y" +b111000 o +b111000 C" +b111000 S" +b11100000000010101100000011 p +b11100000000010101100000011 R" +b110100 $" +b110100 =" +b10101 (" +b10101 M" +b10100 } +b10100 G" +b110000 y +b110000 [" +b110000 `" +b110000 t" +b10011 3" +b10011 J" +b10011 e" +b101100 0" +b101100 m" +b1110111011101110110011001100110 1" +b1110111011101110110011001100110 n" +b1000000 Z +b1000000 @" +b1000000 X" +b111100 X +b111100 A" +b111100 P" +b111100 U" +b111100 W" +b101001 K +1D +#2050 +0D +#2075 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b1000100010001000100110011001100110101010101010101011101110111011000000000000000000000000000000001110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011000000000000000000000000000000001110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1000100010001000100110011001100110101010101010101011101110111011000000000000000000000000000000001110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b111000 v +b111000 8" +b111100 a +b111100 D" +b111100 l" +b111100 b +b111100 k" +b10111 W +b11101110111011101111111111111111 P +b11101110111011101111111111111111 _" +b11101110111011101111111111111111 d" +b11101110111011101111111111111111 j" +b11101110111011101111111111111111 o" +b10100 &# +b111000 \ +b111000 6" +b111000 >" +b100000000000010110000000011 ` +b100000000000010110000000011 Q" +b100000000000010110000000011 T" +b1000100 Y +b1000100 V" +b1000100 Z" +b10100 3" +b10100 J" +b10100 e" +b110000 0" +b110000 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b10101 } +b10101 G" +b110100 y +b110100 [" +b110100 `" +b110100 t" +b111000 $" +b111000 =" +b10110 (" +b10110 M" +b10110100 i +b10110100 B" +b10110100 Y" +b111100 o +b111100 C" +b111100 S" +b11110000000010101110000011 p +b11110000000010101110000011 R" +b1000100 Z +b1000100 @" +b1000100 X" +b1000000 X +b1000000 A" +b1000000 P" +b1000000 U" +b1000000 W" +b101010 K +1D +#2100 +0D +#2125 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +b1000100010001000100110011001100100000000000000000000000000000000110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100100000000000000000000000000000000110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1000000 a +b1000000 D" +b1000000 l" +b1000000 b +b1000000 k" +b11000 W +b111100 v +b111100 8" +b1000100010001000100110011001100100000000000000000000000000000000110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b10 c +b111100 \ +b111100 6" +b111100 >" +b11000 &# +b11001100110011001101110111011101 P +b11001100110011001101110111011101 _" +b11001100110011001101110111011101 d" +b11001100110011001101110111011101 j" +b11001100110011001101110111011101 o" +b100010000000010110010000011 ` +b100010000000010110010000011 Q" +b100010000000010110010000011 T" +b1001000 Y +b1001000 V" +b1001000 Z" +b11000000 i +b11000000 B" +b11000000 Y" +b1000000 o +b1000000 C" +b1000000 S" +b100000000000010110000000011 p +b100000000000010110000000011 R" +b111100 $" +b111100 =" +b10111 (" +b10111 M" +b10110 } +b10110 G" +b111000 y +b111000 [" +b111000 `" +b111000 t" +b10101 3" +b10101 J" +b10101 e" +b110100 0" +b110100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b1001000 Z +b1001000 @" +b1001000 X" +b1000100 X +b1000100 A" +b1000100 P" +b1000100 U" +b1000100 W" +b101011 K +1D +#2150 +0D +#2175 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b10101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b10101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b10101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b1000000 v +b1000000 8" +b1000100 a +b1000100 D" +b1000100 l" +b1000100 b +b1000100 k" +b11001 W +b10101010101010101011101110111011 P +b10101010101010101011101110111011 _" +b10101010101010101011101110111011 d" +b10101010101010101011101110111011 j" +b10101010101010101011101110111011 o" +b11100 &# +b1000000 \ +b1000000 6" +b1000000 >" +b100100000000010110100000011 ` +b100100000000010110100000011 Q" +b100100000000010110100000011 T" +b1001100 Y +b1001100 V" +b1001100 Z" +b10110 3" +b10110 J" +b10110 e" +b111000 0" +b111000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b10111 } +b10111 G" +b111100 y +b111100 [" +b111100 `" +b111100 t" +b10 /" +b10 ;" +b1000000 $" +b1000000 =" +b11000 (" +b11000 M" +b11001100 i +b11001100 B" +b11001100 Y" +b1000100 o +b1000100 C" +b1000100 S" +b100010000000010110010000011 p +b100010000000010110010000011 R" +b1001100 Z +b1001100 @" +b1001100 X" +b1001000 X +b1001000 A" +b1001000 P" +b1001000 U" +b1001000 W" +b101100 K +1D +#2200 +0D +#2225 +b0 n +b0 v" +b0 +# +1e +0$# +b10 @# +b10 6# +b10 <# +0{" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1001000 a +b1001000 D" +b1001000 l" +b1001000 b +b1001000 k" +b11010 W +b1000100 v +b1000100 8" +b1000000 C +b1000000 _ +b1000000 ## +b1000000 =# +b0 ~" +b0 4# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b0 /# +b1000100 \ +b1000100 6" +b1000100 >" +b0 :# +b10 r" +b10 1# +b10 '# +b0 &# +b10001000100010001001100110011001 P +b10001000100010001001100110011001 _" +b10001000100010001001100110011001 d" +b10001000100010001001100110011001 j" +b10001000100010001001100110011001 o" +b100110000000010110110000011 ` +b100110000000010110110000011 Q" +b100110000000010110110000011 T" +b1010000 Y +b1010000 V" +b1010000 Z" +b11011000 i +b11011000 B" +b11011000 Y" +b1001000 o +b1001000 C" +b1001000 S" +b100100000000010110100000011 p +b100100000000010110100000011 R" +b1000100 $" +b1000100 =" +b11001 (" +b11001 M" +b11000 } +b11000 G" +b1000000 y +b1000000 [" +b1000000 `" +b1000000 t" +b10111 3" +b10111 J" +b10111 e" +b111100 0" +b111100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +b1010000 Z +b1010000 @" +b1010000 X" +b1001100 X +b1001100 A" +b1001100 P" +b1001100 U" +b1001100 W" +b101101 K +1D +#2250 +0D +#2275 +b100 .# +b101110 K +1H +1D +#2300 +0D +#2325 +b1 .# +1A +1,# +b101111 K +1D +#2350 +0D +#2375 +b1 A# +b1 C# +b110000 K +1D +#2400 +0D +#2425 +b10 A# +b110001 K +1D +#2450 +0D +#2475 +b11 A# +b110010 K +1D +#2500 +0D +#2525 +b100 A# +b110011 K +1D +#2550 +0D +#2575 +b101 A# +b110100 K +1D +#2600 +0D +#2625 +b110 A# +b110101 K +1D +#2650 +0D +#2675 +b111 A# +b110110 K +1D +#2700 +0D +#2725 +b1000 A# +b110111 K +1D +#2750 +0D +#2775 +1? +b1001 A# +b111000 K +1D +#2800 +0D +#2825 +0? +1s" +b0 A# +b0 C# +b10 .# +0A +0,# +1*# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 > +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ^ +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 "# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ?# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 B# +b111001 K +1D +#2850 +0D +#2875 +b11101100111110101110110011111010 n +b11101100111110101110110011111010 v" +b11101100111110101110110011111010 +# +0e +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000 2# +1$# +b0 6# +b0 <# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000 /# +1{" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 y" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 B +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ] +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 x" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ># +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 !# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +0s" +b1000000000000000000000000 :# +b0 .# +0*# +b111010 K +1D +#2900 +0D +#2925 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010 2# +b1001100 a +b1001100 D" +b1001100 l" +b1001100 b +b1001100 k" +b11011 W +b1001000 v +b1001000 8" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010 /# +b1001000 \ +b1001000 6" +b1001000 >" +b100 &# +b11101100111110101110110011111010 P +b11101100111110101110110011111010 _" +b11101100111110101110110011111010 d" +b11101100111110101110110011111010 j" +b11101100111110101110110011111010 o" +b101000000000010111000000011 ` +b101000000000010111000000011 Q" +b101000000000010111000000011 T" +b1010100 Y +b1010100 V" +b1010100 Z" +b11100100 i +b11100100 B" +b11100100 Y" +b1001100 o +b1001100 C" +b1001100 S" +b100110000000010110110000011 p +b100110000000010110110000011 R" +b1001000 $" +b1001000 =" +b11010 (" +b11010 M" +b11001 } +b11001 G" +b1000100 y +b1000100 [" +b1000100 `" +b1000100 t" +b11000 3" +b11000 J" +b11000 e" +b1000000 0" +b1000000 m" +b11101100111110101110110011111010 1" +b11101100111110101110110011111010 n" +b1010100 Z +b1010100 @" +b1010100 X" +b1010000 X +b1010000 A" +b1010000 P" +b1010000 U" +b1010000 W" +b111011 K +0H +1D +#2950 +0D +#2975 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010 /# +b1001100 v +b1001100 8" +b1010000 a +b1010000 D" +b1010000 l" +b1010000 b +b1010000 k" +b11100 W +b1000 &# +b1001100 \ +b1001100 6" +b1001100 >" +b101010000000010111010000011 ` +b101010000000010111010000011 Q" +b101010000000010111010000011 T" +b1011000 Y +b1011000 V" +b1011000 Z" +b11001 3" +b11001 J" +b11001 e" +b1000100 0" +b1000100 m" +b11010 } +b11010 G" +b1001000 y +b1001000 [" +b1001000 `" +b1001000 t" +b1001100 $" +b1001100 =" +b11011 (" +b11011 M" +b11110000 i +b11110000 B" +b11110000 Y" +b1010000 o +b1010000 C" +b1010000 S" +b101000000000010111000000011 p +b101000000000010111000000011 R" +b1011000 Z +b1011000 @" +b1011000 X" +b1010100 X +b1010100 A" +b1010100 P" +b1010100 U" +b1010100 W" +b111100 K +1D +#3000 +0D +#3025 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1010100 a +b1010100 D" +b1010100 l" +b1010100 b +b1010100 k" +b11101 W +b1010000 v +b1010000 8" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1010000 \ +b1010000 6" +b1010000 >" +b1100 &# +b101100000000010111100000011 ` +b101100000000010111100000011 Q" +b101100000000010111100000011 T" +b1011100 Y +b1011100 V" +b1011100 Z" +b11111100 i +b11111100 B" +b11111100 Y" +b1010100 o +b1010100 C" +b1010100 S" +b101010000000010111010000011 p +b101010000000010111010000011 R" +b1010000 $" +b1010000 =" +b11100 (" +b11100 M" +b11011 } +b11011 G" +b1001100 y +b1001100 [" +b1001100 `" +b1001100 t" +b11010 3" +b11010 J" +b11010 e" +b1001000 0" +b1001000 m" +b1011100 Z +b1011100 @" +b1011100 X" +b1011000 X +b1011000 A" +b1011000 P" +b1011000 U" +b1011000 W" +b111101 K +1D +#3050 +0D +#3075 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1010100 v +b1010100 8" +b1011000 a +b1011000 D" +b1011000 l" +b1011000 b +b1011000 k" +b11110 W +b10000 &# +b1010100 \ +b1010100 6" +b1010100 >" +b101110000000010111110000011 ` +b101110000000010111110000011 Q" +b101110000000010111110000011 T" +b1100000 Y +b1100000 V" +b1100000 Z" +b11011 3" +b11011 J" +b11011 e" +b1001100 0" +b1001100 m" +b11100 } +b11100 G" +b1010000 y +b1010000 [" +b1010000 `" +b1010000 t" +b1010100 $" +b1010100 =" +b11101 (" +b11101 M" +b100001000 i +b100001000 B" +b100001000 Y" +b1011000 o +b1011000 C" +b1011000 S" +b101100000000010111100000011 p +b101100000000010111100000011 R" +b1100000 Z +b1100000 @" +b1100000 X" +b1011100 X +b1011100 A" +b1011100 P" +b1011100 U" +b1011100 W" +b111110 K +1D +#3100 +0D +#3125 +b1110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1011100 a +b1011100 D" +b1011100 l" +b1011100 b +b1011100 k" +b11111 W +b1011000 v +b1011000 8" +b1110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1011000 \ +b1011000 6" +b1011000 >" +b10100 &# +b1000000000000111010010011 ` +b1000000000000111010010011 Q" +b1000000000000111010010011 T" +b1100100 Y +b1100100 V" +b1100100 Z" +b100010100 i +b100010100 B" +b100010100 Y" +b1011100 o +b1011100 C" +b1011100 S" +b101110000000010111110000011 p +b101110000000010111110000011 R" +b1011000 $" +b1011000 =" +b11110 (" +b11110 M" +b11101 } +b11101 G" +b1010100 y +b1010100 [" +b1010100 `" +b1010100 t" +b11100 3" +b11100 J" +b11100 e" +b1010000 0" +b1010000 m" +b1100100 Z +b1100100 @" +b1100100 X" +b1100000 X +b1100000 A" +b1100000 P" +b1100000 U" +b1100000 W" +b111111 K +1D +#3150 +0D +#3175 +0m +0k +b1110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1011100 v +b1011100 8" +b11101 W +b10000 a +b10000 D" +b10000 l" +b10000 b +b10000 k" +b11000 &# +b1011100 \ +b1011100 6" +b1011100 >" +b0 c +b0 d +b10011 [ +b10011 E" +b11110111101000111100110011 ` +b11110111101000111100110011 Q" +b11110111101000111100110011 T" +b1101000 Y +b1101000 V" +b1101000 Z" +b11101 3" +b11101 J" +b11101 e" +b1010100 0" +b1010100 m" +b11110 } +b11110 G" +b1011000 y +b1011000 [" +b1011000 `" +b1011000 t" +b1011100 $" +b1011100 =" +b11111 (" +b11111 M" +b10000000 i +b10000000 B" +b10000000 Y" +b1100000 o +b1100000 C" +b1100000 S" +b1000000000000111010010011 p +b1000000000000111010010011 R" +b1101000 Z +b1101000 @" +b1101000 X" +b1100100 X +b1100100 A" +b1100100 P" +b1100100 U" +b1100100 W" +b1000000 K +1D +#3200 +0D +#3225 +b111101 a +b111101 D" +b111101 l" +b111101 b +b111101 k" +1g +0s +b11101100111110101110110011111010 Q +b11101100111110101110110011111010 h" +b10 t +b10 F" +b11101 S +b11101 O" +b11101 g" +b11101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b11101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b11101100111110101110110011111010 T +b11101100111110101110110011111010 i" +b11110 W +b10000 v +b10000 8" +b11101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1 c +b11101 V +b11101 N" +b11101 f" +b110011 [ +b110011 E" +b10000 \ +b10000 6" +b10000 >" +b11100 &# +b11110111110000111010110011 ` +b11110111110000111010110011 Q" +b11110111110000111010110011 T" +b1101100 Y +b1101100 V" +b1101100 Z" +b11011110 i +b11011110 B" +b11011110 Y" +b1100100 o +b1100100 C" +b1100100 S" +b11110111101000111100110011 p +b11110111101000111100110011 R" +0%" +0'" +b0 ." +b0 :" +b0 /" +b0 ;" +b10000 $" +b10000 =" +b11101 (" +b11101 M" +b11111 } +b11111 G" +b1011100 y +b1011100 [" +b1011100 `" +b1011100 t" +b11110 3" +b11110 J" +b11110 e" +b1011000 0" +b1011000 m" +b1101100 Z +b1101100 @" +b1101100 X" +b1101000 X +b1101000 A" +b1101000 P" +b1101000 U" +b1101000 W" +b1000001 K +1D +#3250 +0D +#3275 +b1100110011001100111011101110111 n +b1100110011001100111011101110111 v" +b1100110011001100111011101110111 +# +b0 @# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b10 U +b10 L" +b10 ]" +b10 R +b10 K" +b10 b" +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b100000000 v +b100000000 8" +b11101 W +0q" +0w" +b0 r" +b0 1# +b0 '# +b10000 &# +b10 u +b10 7" +b10 <" +b10000 \ +b10000 6" +b10000 >" +b10000 w +b10000 ?" +b10000 c" +b10000 x +b10000 5" +b10000 ^" +b11110 V +b11110 N" +b11110 f" +b1010101000000000111110010011 ` +b1010101000000000111110010011 Q" +b1010101000000000111110010011 T" +b1110000 Y +b1110000 V" +b1110000 Z" +b11111 3" +b11111 J" +b11111 e" +b1011100 0" +b1011100 m" +0z +0| +b11101 } +b11101 G" +b10000 y +b10000 [" +b10000 `" +b10000 t" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111101 $" +b111101 =" +b11101100111110101110110011111010 ," +b11101100111110101110110011111010 a" +b11101100111110101110110011111010 *" +b11101100111110101110110011111010 \" +b11101 +" +b11101 I" +b11101 )" +b11101 H" +b11110 (" +b11110 M" +b11100010 i +b11100010 B" +b11100010 Y" +b1101000 o +b1101000 C" +b1101000 S" +b11110111110000111010110011 p +b11110111110000111010110011 R" +b1110000 Z +b1110000 @" +b1110000 X" +b1101100 X +b1101100 A" +b1101100 P" +b1101100 U" +b1101100 W" +b1000010 K +1D +#3300 +0D +#3325 +b0 n +b0 v" +b0 +# +0$# +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b1000 @# +b10 6# +b10 <# +b1000000000000 v +b1000000000000 8" +b10000 \ +b10000 6" +b10000 >" +0{" +b0 Q +b0 h" +b0 S +b0 O" +b0 g" +b0 T +b0 i" +b11111 W +b1 R +b1 K" +b1 b" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b100000000 x +b100000000 5" +b100000000 ^" +b10000 w +b10000 ?" +b10000 c" +b100000000 C +b100000000 _ +b100000000 ## +b100000000 =# +b0 ~" +b0 4# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101 c +b0 V +b0 N" +b0 f" +b10011 [ +b10011 E" +b10000 /# +b0 :# +b1000 r" +b1000 1# +b1000 '# +b0 &# +b10000 P +b10000 _" +b10000 d" +b10000 j" +b10000 o" +b11111011111000111110110011 ` +b11111011111000111110110011 Q" +b11111011111000111110110011 T" +b1110100 Y +b1110100 V" +b1110100 Z" +b111000000 i +b111000000 B" +b111000000 Y" +b1101100 o +b1101100 C" +b1101100 S" +b1010101000000000111110010011 p +b1010101000000000111110010011 R" +b11110 )" +b11110 H" +b11101 (" +b11101 M" +b11110 } +b11110 G" +b10000 !" +b10000 u" +b100000000 y +b100000000 [" +b100000000 `" +b100000000 t" +02" +b11101 3" +b11101 J" +b11101 e" +b10000 0" +b10000 m" +b1100110011001100111011101110111 1" +b1100110011001100111011101110111 n" +b1110100 Z +b1110100 @" +b1110100 X" +b1110000 X +b1110000 A" +b1110000 P" +b1110000 U" +b1110000 W" +b1000011 K +1D +#3350 +0D +#3375 +b111110 a +b111110 D" +b111110 l" +b111110 b +b111110 k" +1g +0s +b10000000 @# +b100000000 Q +b100000000 h" +b10 t +b10 F" +b0 w +b0 ?" +b0 c" +b0 R +b0 K" +b0 b" +b11110 S +b11110 O" +b11110 g" +b0 x +b0 5" +b0 ^" +b1000000000000 C +b1000000000000 _ +b1000000000000 ## +b1000000000000 =# +b10101010 v +b10101010 8" +b0 U +b0 L" +b0 ]" +b11101100111110101110110011111010 T +b11101100111110101110110011111010 i" +b100000000 P +b100000000 _" +b100000000 d" +b100000000 j" +b100000000 o" +b1000000000000000000001000 (# +b1000000000000000000001000 3# +b1000000000000000000001000 9# +b1000 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b1 c +b11111 V +b11111 N" +b11111 f" +b110011 [ +b110011 E" +b1010101011111000111110010011 ` +b1010101011111000111110010011 Q" +b1010101011111000111110010011 T" +b1111000 Y +b1111000 V" +b1111000 Z" +b11110 3" +b11110 J" +b11110 e" +b100000000 0" +b100000000 m" +b0 1" +b0 n" +b11101 } +b11101 G" +b1000000000000 y +b1000000000000 [" +b1000000000000 `" +b1000000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b0 *" +b0 \" +b0 +" +b0 I" +b0 )" +b0 H" +b11111 (" +b11111 M" +b11101100 i +b11101100 B" +b11101100 Y" +b1110000 o +b1110000 C" +b1110000 S" +b11111011111000111110110011 p +b11111011111000111110110011 R" +b1111000 Z +b1111000 @" +b1111000 X" +b1110100 X +b1110100 A" +b1110100 P" +b1110100 U" +b1110100 W" +b1000100 K +1D +#3400 +0D +#3425 +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b101 @# +b0 S +b0 O" +b0 g" +b1010101000000000 v +b1010101000000000 8" +b10 U +b10 L" +b10 ]" +b10100000 C +b10100000 _ +b10100000 ## +b10100000 =# +b0 Q +b0 h" +b101 c +b10011 [ +b10011 E" +b10 u +b10 7" +b10 <" +b100000000 \ +b100000000 6" +b100000000 >" +b100000000 w +b100000000 ?" +b100000000 c" +b10101010 x +b10101010 5" +b10101010 ^" +b0 /# +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b1000000000000 P +b1000000000000 _" +b1000000000000 d" +b1000000000000 j" +b1000000000000 o" +b11111011111000111110110011 ` +b11111011111000111110110011 Q" +b11111011111000111110110011 T" +b1111100 Y +b1111100 V" +b1111100 Z" +b111001000 i +b111001000 B" +b111001000 Y" +b1110100 o +b1110100 C" +b1110100 S" +b1010101011111000111110010011 p +b1010101011111000111110010011 R" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111110 $" +b111110 =" +b100000000 ," +b100000000 a" +b11101100111110101110110011111010 *" +b11101100111110101110110011111010 \" +b11110 +" +b11110 I" +b11111 )" +b11111 H" +b11111 } +b11111 G" +b0 !" +b0 u" +b10101010 y +b10101010 [" +b10101010 `" +b10101010 t" +b11101 3" +b11101 J" +b11101 e" +b1000000000000 0" +b1000000000000 m" +b1111100 Z +b1111100 @" +b1111100 X" +b1111000 X +b1111000 A" +b1111000 P" +b1111000 U" +b1111000 W" +b1000101 K +1D +#3450 +0D +#3475 +b111110 a +b111110 D" +b111110 l" +b111110 b +b111110 k" +1g +0s +b10101010000 @# +b100000000 Q +b100000000 h" +b10 t +b10 F" +b10101010 T +b10101010 i" +b11110 S +b11110 O" +b11110 g" +b1010101000000000 x +b1010101000000000 5" +b1010101000000000 ^" +b1010101000000000 C +b1010101000000000 _ +b1010101000000000 ## +b1010101000000000 =# +b1010101010101010 v +b1010101010101010 8" +b10101010 P +b10101010 _" +b10101010 d" +b10101010 j" +b10101010 o" +b100000000 /# +b1000000000000000001010101 (# +b1000000000000000001010101 3# +b1000000000000000001010101 9# +b1010101 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b0 w +b0 ?" +b0 c" +b1 c +b110011 [ +b110011 E" +b1010101011111000111110010011 ` +b1010101011111000111110010011 Q" +b1010101011111000111110010011 T" +b10000000 Y +b10000000 V" +b10000000 Z" +b11111 3" +b11111 J" +b11111 e" +b10101010 0" +b10101010 m" +b100000000 !" +b100000000 u" +b1010101000000000 y +b1010101000000000 [" +b1010101000000000 `" +b1010101000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b0 +" +b0 I" +b11110100 i +b11110100 B" +b11110100 Y" +b1111000 o +b1111000 C" +b1111000 S" +b11111011111000111110110011 p +b11111011111000111110110011 R" +b10000000 Z +b10000000 @" +b10000000 X" +b1111100 X +b1111100 A" +b1111100 P" +b1111100 U" +b1111100 W" +b1000110 K +1D +#3500 +0D +#3525 +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b10101010101 @# +b0 Q +b0 h" +b0 S +b0 O" +b0 g" +b101010101010101000000000 v +b101010101010101000000000 8" +b1010101010101010 x +b1010101010101010 5" +b1010101010101010 ^" +b1010101010100000 C +b1010101010100000 _ +b1010101010100000 ## +b1010101010100000 =# +b1010101000000000 T +b1010101000000000 i" +b101 c +b10011 [ +b10011 E" +b10 u +b10 7" +b10 <" +b100000000 \ +b100000000 6" +b100000000 >" +b100000000 w +b100000000 ?" +b100000000 c" +b0 /# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b1010101000000000 P +b1010101000000000 _" +b1010101000000000 d" +b1010101000000000 j" +b1010101000000000 o" +b11111011111000111110110011 ` +b11111011111000111110110011 Q" +b11111011111000111110110011 T" +b10000100 Y +b10000100 V" +b10000100 Z" +b111010000 i +b111010000 B" +b111010000 Y" +b1111100 o +b1111100 C" +b1111100 S" +b1010101011111000111110010011 p +b1010101011111000111110010011 R" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111110 $" +b111110 =" +b100000000 ," +b100000000 a" +b10101010 *" +b10101010 \" +b11110 +" +b11110 I" +b0 !" +b0 u" +b1010101010101010 y +b1010101010101010 [" +b1010101010101010 `" +b1010101010101010 t" +b1010101000000000 0" +b1010101000000000 m" +b10000100 Z +b10000100 @" +b10000100 X" +b10000000 X +b10000000 A" +b10000000 P" +b10000000 U" +b10000000 W" +b1000111 K +1D +#3550 +0D +#3575 +b111110 a +b111110 D" +b111110 l" +b111110 b +b111110 k" +1g +0s +b1010101010101010000 @# +b100000000 Q +b100000000 h" +b10 t +b10 F" +b11110 S +b11110 O" +b11110 g" +b1010101010101010 T +b1010101010101010 i" +b101010101010101000000000 x +b101010101010101000000000 5" +b101010101010101000000000 ^" +b101010101010101000000000 C +b101010101010101000000000 _ +b101010101010101000000000 ## +b101010101010101000000000 =# +b101010101010101010101010 v +b101010101010101010101010 8" +b1010101010101010 P +b1010101010101010 _" +b1010101010101010 d" +b1010101010101010 j" +b1010101010101010 o" +b100000000 /# +b1000000000101010101010101 (# +b1000000000101010101010101 3# +b1000000000101010101010101 9# +b101010101010101 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b0 w +b0 ?" +b0 c" +b1 c +b110011 [ +b110011 E" +b1010101011111000111110010011 ` +b1010101011111000111110010011 Q" +b1010101011111000111110010011 T" +b10001000 Y +b10001000 V" +b10001000 Z" +b1010101010101010 0" +b1010101010101010 m" +b100000000 !" +b100000000 u" +b101010101010101000000000 y +b101010101010101000000000 [" +b101010101010101000000000 `" +b101010101010101000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b1010101000000000 *" +b1010101000000000 \" +b0 +" +b0 I" +b11111100 i +b11111100 B" +b11111100 Y" +b10000000 o +b10000000 C" +b10000000 S" +b11111011111000111110110011 p +b11111011111000111110110011 R" +b10001000 Z +b10001000 @" +b10001000 X" +b10000100 X +b10000100 A" +b10000100 P" +b10000100 U" +b10000100 W" +b1001000 K +1D +#3600 +0D +#3625 +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b1010101010101010101 @# +b0 Q +b0 h" +b0 S +b0 O" +b0 g" +b10101010101010101010101000000000 v +b10101010101010101010101000000000 8" +b101010101010101010101010 x +b101010101010101010101010 5" +b101010101010101010101010 ^" +b101010101010101010100000 C +b101010101010101010100000 _ +b101010101010101010100000 ## +b101010101010101010100000 =# +b101010101010101000000000 T +b101010101010101000000000 i" +b101 c +b10011 [ +b10011 E" +b10 u +b10 7" +b10 <" +b100000000 \ +b100000000 6" +b100000000 >" +b100000000 w +b100000000 ?" +b100000000 c" +b0 /# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b101010101010101000000000 P +b101010101010101000000000 _" +b101010101010101000000000 d" +b101010101010101000000000 j" +b101010101010101000000000 o" +b1111101000111010000110011 ` +b1111101000111010000110011 Q" +b1111101000111010000110011 T" +b10001100 Y +b10001100 V" +b10001100 Z" +b111011000 i +b111011000 B" +b111011000 Y" +b10000100 o +b10000100 C" +b10000100 S" +b1010101011111000111110010011 p +b1010101011111000111110010011 R" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111110 $" +b111110 =" +b100000000 ," +b100000000 a" +b1010101010101010 *" +b1010101010101010 \" +b11110 +" +b11110 I" +b0 !" +b0 u" +b101010101010101010101010 y +b101010101010101010101010 [" +b101010101010101010101010 `" +b101010101010101010101010 t" +b101010101010101000000000 0" +b101010101010101000000000 m" +b10001100 Z +b10001100 @" +b10001100 X" +b10001000 X +b10001000 A" +b10001000 P" +b10001000 U" +b10001000 W" +b1001001 K +1D +#3650 +0D +#3675 +b11111 a +b11111 D" +b11111 l" +b11111 b +b11111 k" +1g +0s +b101010101010101010101010000 @# +b101010101010101010101010 Q +b101010101010101010101010 h" +b10 t +b10 F" +b11111 S +b11111 O" +b11111 g" +b11101110111011101111111111111111 T +b11101110111011101111111111111111 i" +b10101010101010101010101000000000 x +b10101010101010101010101000000000 5" +b10101010101010101010101000000000 ^" +b10101010101010101010101000000000 C +b10101010101010101010101000000000 _ +b10101010101010101010101000000000 ## +b10101010101010101010101000000000 =# +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b1000 W +b101010101010101010101010 P +b101010101010101010101010 _" +b101010101010101010101010 d" +b101010101010101010101010 j" +b101010101010101010101010 o" +b100000000 /# +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b0 w +b0 ?" +b0 c" +b0 c +b1000 V +b1000 N" +b1000 f" +b111 d +b110011 [ +b110011 E" +b1111101001111010010110011 ` +b1111101001111010010110011 Q" +b1111101001111010010110011 T" +b10010000 Y +b10010000 V" +b10010000 Z" +b101010101010101010101010 0" +b101010101010101010101010 m" +b100000000 !" +b100000000 u" +b10101010101010101010101000000000 y +b10101010101010101010101000000000 [" +b10101010101010101010101000000000 `" +b10101010101010101010101000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b101010101010101000000000 *" +b101010101010101000000000 \" +b0 +" +b0 I" +b11000110 i +b11000110 B" +b11000110 Y" +b10001000 o +b10001000 C" +b10001000 S" +b1111101000111010000110011 p +b1111101000111010000110011 R" +b10010000 Z +b10010000 @" +b10010000 X" +b10001100 X +b10001100 A" +b10001100 P" +b10001100 U" +b10001100 W" +b1001010 K +1D +#3700 +0D +#3725 +b101010101010101010101010101 @# +b11001100110011001101110111011101 T +b11001100110011001101110111011101 i" +b1001 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b10 R +b10 K" +b10 b" +b0 U +b0 L" +b0 ]" +b11101110111011101111111111111111 x +b11101110111011101111111111111111 5" +b11101110111011101111111111111111 ^" +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b10101010101010101010101000000000 Q +b10101010101010101010101000000000 h" +b1001 V +b1001 N" +b1001 f" +b11 u +b11 7" +b11 <" +b10101010101010101010101010101010 \ +b10101010101010101010101010101010 6" +b10101010101010101010101010101010 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b0 /# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b10101010101010101010101000000000 P +b10101010101010101010101000000000 _" +b10101010101010101010101000000000 d" +b10101010101010101010101000000000 j" +b10101010101010101010101000000000 o" +b1111101010111010100110011 ` +b1111101010111010100110011 Q" +b1111101010111010100110011 T" +b10010100 Y +b10010100 V" +b10010100 Z" +b11001010 i +b11001010 B" +b11001010 Y" +b10001100 o +b10001100 C" +b10001100 S" +b1111101001111010010110011 p +b1111101001111010010110011 R" +0#" +b10 "" +b10 9" +b111 ." +b111 :" +b0 /" +b0 ;" +b11111 $" +b11111 =" +b101010101010101010101010 ," +b101010101010101010101010 a" +b11101110111011101111111111111111 *" +b11101110111011101111111111111111 \" +b11111 +" +b11111 I" +b1000 )" +b1000 H" +b1000 (" +b1000 M" +b0 !" +b0 u" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b10101010101010101010101000000000 0" +b10101010101010101010101000000000 m" +b10010100 Z +b10010100 @" +b10010100 X" +b10010000 X +b10010000 A" +b10010000 P" +b10010000 U" +b10010000 W" +b1001011 K +1D +#3750 +0D +#3775 +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +b1 R +b1 K" +b1 b" +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b10101010101010101011101110111011 T +b10101010101010101011101110111011 i" +b1010 W +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b11001100110011001101110111011101 x +b11001100110011001101110111011101 5" +b11001100110011001101110111011101 ^" +b1010 V +b1010 N" +b1010 f" +b1111101011111010110110011 ` +b1111101011111010110110011 Q" +b1111101011111010110110011 T" +b10011000 Y +b10011000 V" +b10011000 Z" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b1000 } +b1000 G" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b10101010101010101010101000000000 ," +b10101010101010101010101000000000 a" +b11001100110011001101110111011101 *" +b11001100110011001101110111011101 \" +b1001 )" +b1001 H" +b1001 (" +b1001 M" +b11001110 i +b11001110 B" +b11001110 Y" +b10010000 o +b10010000 C" +b10010000 S" +b1111101010111010100110011 p +b1111101010111010100110011 R" +b10011000 Z +b10011000 @" +b10011000 X" +b10010100 X +b10010100 A" +b10010100 P" +b10010100 U" +b10010100 W" +b1001100 K +1D +#3800 +0D +#3825 +b100010001000100010001000100 @# +b0 R +b0 K" +b0 b" +b10001000100010001001100110011001 T +b10001000100010001001100110011001 i" +b1011 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b1011 V +b1011 N" +b1011 f" +b10101010101010101011101110111011 x +b10101010101010101011101110111011 5" +b10101010101010101011101110111011 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b1111101100111011000110011 ` +b1111101100111011000110011 Q" +b1111101100111011000110011 T" +b10011100 Y +b10011100 V" +b10011100 Z" +b11010010 i +b11010010 B" +b11010010 Y" +b10010100 o +b10010100 C" +b10010100 S" +b1111101011111010110110011 p +b1111101011111010110110011 R" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b10101010101010101011101110111011 *" +b10101010101010101011101110111011 \" +b1010 )" +b1010 H" +b1010 (" +b1010 M" +b1001 } +b1001 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b1000 3" +b1000 J" +b1000 e" +b10011100 Z +b10011100 @" +b10011100 X" +b10011000 X +b10011000 A" +b10011000 P" +b10011000 U" +b10011000 W" +b1001101 K +1D +#3850 +0D +#3875 +b101010101010101010101010101 @# +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b1100110011001100111011101110111 T +b1100110011001100111011101110111 i" +b1100 W +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b101 r" +b101 1# +b101 '# +b1010 &# +b10001000100010001001100110011001 x +b10001000100010001001100110011001 5" +b10001000100010001001100110011001 ^" +b1100 V +b1100 N" +b1100 f" +b1111101101111011010110011 ` +b1111101101111011010110011 Q" +b1111101101111011010110011 T" +b10100000 Y +b10100000 V" +b10100000 Z" +b1001 3" +b1001 J" +b1001 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +b1010 } +b1010 G" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b10001000100010001001100110011001 *" +b10001000100010001001100110011001 \" +b1011 )" +b1011 H" +b1011 (" +b1011 M" +b11010110 i +b11010110 B" +b11010110 Y" +b10011000 o +b10011000 C" +b10011000 S" +b1111101100111011000110011 p +b1111101100111011000110011 R" +b10100000 Z +b10100000 @" +b10100000 X" +b10011100 X +b10011100 A" +b10011100 P" +b10011100 U" +b10011100 W" +b1001110 K +1D +#3900 +0D +#3925 +b100010001000100010001000100 @# +b1000100010001000101010101010101 T +b1000100010001000101010101010101 i" +b1101 W +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b1101 V +b1101 N" +b1101 f" +b1100110011001100111011101110111 x +b1100110011001100111011101110111 5" +b1100110011001100111011101110111 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b1111101110111011100110011 ` +b1111101110111011100110011 Q" +b1111101110111011100110011 T" +b10100100 Y +b10100100 V" +b10100100 Z" +b11011010 i +b11011010 B" +b11011010 Y" +b10011100 o +b10011100 C" +b10011100 S" +b1111101101111011010110011 p +b1111101101111011010110011 R" +b1100110011001100111011101110111 *" +b1100110011001100111011101110111 \" +b1100 )" +b1100 H" +b1100 (" +b1100 M" +b1011 } +b1011 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b1010 3" +b1010 J" +b1010 e" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b10100100 Z +b10100100 @" +b10100100 X" +b10100000 X +b10100000 A" +b10100000 P" +b10100000 U" +b10100000 W" +b1001111 K +1D +#3950 +0D +#3975 +b1000100010001000100010001 @# +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b101010101010101010101010101010100000000000000000 /# +b0 v +b0 8" +b100010001000100011001100110011 T +b100010001000100011001100110011 i" +b1110 W +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1000000000000000000000000 :# +b1 r" +b1 1# +b1 '# +b10 &# +b1000100010001000101010101010101 x +b1000100010001000101010101010101 5" +b1000100010001000101010101010101 ^" +b1110 V +b1110 N" +b1110 f" +b1111101111111011110110011 ` +b1111101111111011110110011 Q" +b1111101111111011110110011 T" +b10101000 Y +b10101000 V" +b10101000 Z" +b1011 3" +b1011 J" +b1011 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +b1100 } +b1100 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b1000100010001000101010101010101 *" +b1000100010001000101010101010101 \" +b1101 )" +b1101 H" +b1101 (" +b1101 M" +b11011110 i +b11011110 B" +b11011110 Y" +b10100000 o +b10100000 C" +b10100000 S" +b1111101110111011100110011 p +b1111101110111011100110011 R" +b10101000 Z +b10101000 @" +b10101000 X" +b10100100 X +b10100100 A" +b10100100 P" +b10100100 U" +b10100100 W" +b1010000 K +1D +#4000 +0D +#4025 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 6# +b0 <# +b0 @# +b1000100010001 T +b1000100010001 i" +b1111 W +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b1111 V +b1111 N" +b1111 f" +b100010001000100011001100110011 x +b100010001000100011001100110011 5" +b100010001000100011001100110011 ^" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 r" +b0 1# +b0 '# +b0 &# +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1111110000111100000110011 ` +b1111110000111100000110011 Q" +b1111110000111100000110011 T" +b10101100 Y +b10101100 V" +b10101100 Z" +b11100010 i +b11100010 B" +b11100010 Y" +b10100100 o +b10100100 C" +b10100100 S" +b1111101111111011110110011 p +b1111101111111011110110011 R" +b100010001000100011001100110011 *" +b100010001000100011001100110011 \" +b1110 )" +b1110 H" +b1110 (" +b1110 M" +b1101 } +b1101 G" +b0 y +b0 [" +b0 `" +b0 t" +b1100 3" +b1100 J" +b1100 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b10101100 Z +b10101100 @" +b10101100 X" +b10101000 X +b10101000 A" +b10101000 P" +b10101000 U" +b10101000 W" +b1010001 K +1D +#4050 +0D +#4075 +b0 n +b0 v" +b0 +# +0{" +0$# +b0 ~" +b0 4# +b10 6# +b10 <# +b1000100010001000100010001 @# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101010101010101010101010101010100000000000000000 /# +b0 v +b0 8" +b10001000100010000000000000000 T +b10001000100010000000000000000 i" +b10000 W +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1 r" +b1 1# +b1 '# +b10 &# +b1000100010001 x +b1000100010001 5" +b1000100010001 ^" +b10000 V +b10000 N" +b10000 f" +b1111110001111100010110011 ` +b1111110001111100010110011 Q" +b1111110001111100010110011 T" +b10110000 Y +b10110000 V" +b10110000 Z" +b1101 3" +b1101 J" +b1101 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b1110 } +b1110 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b1000100010001 *" +b1000100010001 \" +b1111 )" +b1111 H" +b1111 (" +b1111 M" +b11100110 i +b11100110 B" +b11100110 Y" +b10101000 o +b10101000 C" +b10101000 S" +b1111110000111100000110011 p +b1111110000111100000110011 R" +b10110000 Z +b10110000 @" +b10110000 X" +b10101100 X +b10101100 A" +b10101100 P" +b10101100 U" +b10101100 W" +b1010010 K +1D +#4100 +0D +#4125 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 6# +b0 <# +b0 @# +b110011001100110010001000100010 T +b110011001100110010001000100010 i" +b10001 W +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b10001 V +b10001 N" +b10001 f" +b10001000100010000000000000000 x +b10001000100010000000000000000 5" +b10001000100010000000000000000 ^" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 r" +b0 1# +b0 '# +b0 &# +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1111110010111100100110011 ` +b1111110010111100100110011 Q" +b1111110010111100100110011 T" +b10110100 Y +b10110100 V" +b10110100 Z" +b11101010 i +b11101010 B" +b11101010 Y" +b10101100 o +b10101100 C" +b10101100 S" +b1111110001111100010110011 p +b1111110001111100010110011 R" +b10001000100010000000000000000 *" +b10001000100010000000000000000 \" +b10000 )" +b10000 H" +b10000 (" +b10000 M" +b1111 } +b1111 G" +b0 y +b0 [" +b0 `" +b0 t" +b1110 3" +b1110 J" +b1110 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b0 1" +b0 n" +b10110100 Z +b10110100 @" +b10110100 X" +b10110000 X +b10110000 A" +b10110000 P" +b10110000 U" +b10110000 W" +b1010011 K +1D +#4150 +0D +#4175 +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b1010101010101010100010001000100 T +b1010101010101010100010001000100 i" +b10010 W +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b110011001100110010001000100010 x +b110011001100110010001000100010 5" +b110011001100110010001000100010 ^" +b10010 V +b10010 N" +b10010 f" +b1111110011111100110110011 ` +b1111110011111100110110011 Q" +b1111110011111100110110011 T" +b10111000 Y +b10111000 V" +b10111000 Z" +b1111 3" +b1111 J" +b1111 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b10000 } +b10000 G" +b110011001100110010001000100010 *" +b110011001100110010001000100010 \" +b10001 )" +b10001 H" +b10001 (" +b10001 M" +b11101110 i +b11101110 B" +b11101110 Y" +b10110000 o +b10110000 C" +b10110000 S" +b1111110010111100100110011 p +b1111110010111100100110011 R" +b10111000 Z +b10111000 @" +b10111000 X" +b10110100 X +b10110100 A" +b10110100 P" +b10110100 U" +b10110100 W" +b1010100 K +1D +#4200 +0D +#4225 +b0 n +b0 v" +b0 +# +0{" +0$# +b0 ~" +b0 4# +b10 6# +b10 <# +b1000100010001000100010001 @# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110111011101110110011001100110 T +b1110111011101110110011001100110 i" +b10011 W +b0 v +b0 8" +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101010101010101010101010101010100000000000000000 /# +b10011 V +b10011 N" +b10011 f" +b1010101010101010100010001000100 x +b1010101010101010100010001000100 5" +b1010101010101010100010001000100 ^" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1 r" +b1 1# +b1 '# +b10 &# +b1111110100111101000110011 ` +b1111110100111101000110011 Q" +b1111110100111101000110011 T" +b10111100 Y +b10111100 V" +b10111100 Z" +b11110010 i +b11110010 B" +b11110010 Y" +b10110100 o +b10110100 C" +b10110100 S" +b1111110011111100110110011 p +b1111110011111100110110011 R" +b1010101010101010100010001000100 *" +b1010101010101010100010001000100 \" +b10010 )" +b10010 H" +b10010 (" +b10010 M" +b10001 } +b10001 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b10000 3" +b10000 J" +b10000 e" +b10111100 Z +b10111100 @" +b10111100 X" +b10111000 X +b10111000 A" +b10111000 P" +b10111000 U" +b10111000 W" +b1010101 K +1D +#4250 +0D +#4275 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 6# +b0 <# +b0 @# +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b11101110111011101111111111111111 T +b11101110111011101111111111111111 i" +b10100 W +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 r" +b0 1# +b0 '# +b0 &# +b1110111011101110110011001100110 x +b1110111011101110110011001100110 5" +b1110111011101110110011001100110 ^" +b10100 V +b10100 N" +b10100 f" +b1111110101111101010110011 ` +b1111110101111101010110011 Q" +b1111110101111101010110011 T" +b11000000 Y +b11000000 V" +b11000000 Z" +b10001 3" +b10001 J" +b10001 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b0 1" +b0 n" +b10010 } +b10010 G" +b0 y +b0 [" +b0 `" +b0 t" +b1110111011101110110011001100110 *" +b1110111011101110110011001100110 \" +b10011 )" +b10011 H" +b10011 (" +b10011 M" +b11110110 i +b11110110 B" +b11110110 Y" +b10111000 o +b10111000 C" +b10111000 S" +b1111110100111101000110011 p +b1111110100111101000110011 R" +b11000000 Z +b11000000 @" +b11000000 X" +b10111100 X +b10111100 A" +b10111100 P" +b10111100 U" +b10111100 W" +b1010110 K +1D +#4300 +0D +#4325 +b0 n +b0 v" +b0 +# +0{" +0$# +b0 ~" +b0 4# +b10 6# +b10 <# +b1000100010001000100010001 @# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b11001100110011001101110111011101 T +b11001100110011001101110111011101 i" +b10101 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101010101010101010101010101010100000000000000000 /# +b10101 V +b10101 N" +b10101 f" +b11101110111011101111111111111111 x +b11101110111011101111111111111111 5" +b11101110111011101111111111111111 ^" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1 r" +b1 1# +b1 '# +b10 &# +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b1111110110111101100110011 ` +b1111110110111101100110011 Q" +b1111110110111101100110011 T" +b11000100 Y +b11000100 V" +b11000100 Z" +b11111010 i +b11111010 B" +b11111010 Y" +b10111100 o +b10111100 C" +b10111100 S" +b1111110101111101010110011 p +b1111110101111101010110011 R" +b11101110111011101111111111111111 *" +b11101110111011101111111111111111 \" +b10100 )" +b10100 H" +b10100 (" +b10100 M" +b10011 } +b10011 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b10010 3" +b10010 J" +b10010 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b11000100 Z +b11000100 @" +b11000100 X" +b11000000 X +b11000000 A" +b11000000 P" +b11000000 U" +b11000000 W" +b1010111 K +1D +#4350 +0D +#4375 +b101010101010101010101010101 @# +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b10101010101010101011101110111011 T +b10101010101010101011101110111011 i" +b10110 W +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b11001100110011001101110111011101 x +b11001100110011001101110111011101 5" +b11001100110011001101110111011101 ^" +b10110 V +b10110 N" +b10110 f" +b1111110111111101110110011 ` +b1111110111111101110110011 Q" +b1111110111111101110110011 T" +b11001000 Y +b11001000 V" +b11001000 Z" +b10011 3" +b10011 J" +b10011 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b0 1" +b0 n" +b10100 } +b10100 G" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b11001100110011001101110111011101 *" +b11001100110011001101110111011101 \" +b10101 )" +b10101 H" +b10101 (" +b10101 M" +b11111110 i +b11111110 B" +b11111110 Y" +b11000000 o +b11000000 C" +b11000000 S" +b1111110110111101100110011 p +b1111110110111101100110011 R" +b11001000 Z +b11001000 @" +b11001000 X" +b11000100 X +b11000100 A" +b11000100 P" +b11000100 U" +b11000100 W" +b1011000 K +1D +#4400 +0D +#4425 +b100010001000100010001000100 @# +b10001000100010001001100110011001 T +b10001000100010001001100110011001 i" +b10111 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b10111 V +b10111 N" +b10111 f" +b10101010101010101011101110111011 x +b10101010101010101011101110111011 5" +b10101010101010101011101110111011 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b100000000010000000100011 ` +b100000000010000000100011 Q" +b100000000010000000100011 T" +b11001100 Y +b11001100 V" +b11001100 Z" +b100000010 i +b100000010 B" +b100000010 Y" +b11000100 o +b11000100 C" +b11000100 S" +b1111110111111101110110011 p +b1111110111111101110110011 R" +b10101010101010101011101110111011 *" +b10101010101010101011101110111011 \" +b10110 )" +b10110 H" +b10110 (" +b10110 M" +b10101 } +b10101 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b10100 3" +b10100 J" +b10100 e" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b11001100 Z +b11001100 @" +b11001100 X" +b11001000 X +b11001000 A" +b11001000 P" +b11001000 U" +b11001000 W" +b1011001 K +1D +#4450 +0D +#4475 +0g +1s +b101010101010101010101010101 @# +1l +b0 t +b0 F" +b0 a +b0 D" +b0 l" +b0 b +b0 k" +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b1000 S +b1000 O" +b1000 g" +b0 T +b0 i" +b0 W +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b101 r" +b101 1# +b101 '# +b1010 &# +b10001000100010001001100110011001 x +b10001000100010001001100110011001 5" +b10001000100010001001100110011001 ^" +b0 V +b0 N" +b0 f" +b10 d +b100011 [ +b100011 E" +b100100000010001000100011 ` +b100100000010001000100011 Q" +b100100000010001000100011 T" +b11010000 Y +b11010000 V" +b11010000 Z" +b10101 3" +b10101 J" +b10101 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +b10110 } +b10110 G" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b10001000100010001001100110011001 *" +b10001000100010001001100110011001 \" +b10111 )" +b10111 H" +b10111 (" +b10111 M" +b11001000 i +b11001000 B" +b11001000 Y" +b11001000 o +b11001000 C" +b11001000 S" +b100000000010000000100011 p +b100000000010000000100011 R" +b11010000 Z +b11010000 @" +b11010000 X" +b11001100 X +b11001100 A" +b11001100 P" +b11001100 U" +b11001100 W" +b1011010 K +1D +#4500 +0D +#4525 +b100010001000100010001000100 @# +b100 a +b100 D" +b100 l" +b100 b +b100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b1001 S +b1001 O" +b1001 g" +b0 v +b0 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b0 \ +b0 6" +b0 >" +b0 u +b0 7" +b0 <" +b0 x +b0 5" +b0 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b101000000010010000100011 ` +b101000000010010000100011 Q" +b101000000010010000100011 T" +b11010100 Y +b11010100 V" +b11010100 Z" +b11010100 i +b11010100 B" +b11010100 Y" +b11001100 o +b11001100 C" +b11001100 S" +b100100000010001000100011 p +b100100000010001000100011 R" +1&" +0-" +1#" +b0 "" +b0 9" +b10 ." +b10 :" +b0 $" +b0 =" +b0 *" +b0 \" +b1000 +" +b1000 I" +b0 )" +b0 H" +b0 (" +b0 M" +b10111 } +b10111 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b10110 3" +b10110 J" +b10110 e" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b11010100 Z +b11010100 @" +b11010100 X" +b11010000 X +b11010000 A" +b11010000 P" +b11010000 U" +b11010000 W" +b1011011 K +1D +#4550 +0D +#4575 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +1s" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1p" +1z" +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 @# +b0 6# +b0 <# +b1000 a +b1000 D" +b1000 l" +b1000 b +b1000 k" +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +0e +b0 U +b0 L" +b0 ]" +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b100 v +b100 8" +b1010 S +b1010 O" +b1010 g" +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +1q" +1w" +b1100000000000000000000000 (# +b1100000000000000000000000 3# +b1100000000000000000000000 9# +b0 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b100 \ +b100 6" +b100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b101100000010011000100011 ` +b101100000010011000100011 Q" +b101100000010011000100011 T" +b11011000 Y +b11011000 V" +b11011000 Z" +b10111 3" +b10111 J" +b10111 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +1{ +0~ +b0 } +b0 G" +b0 y +b0 [" +b0 `" +b0 t" +b100 $" +b100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b1001 +" +b1001 I" +b11100000 i +b11100000 B" +b11100000 Y" +b11010000 o +b11010000 C" +b11010000 S" +b101000000010010000100011 p +b101000000010010000100011 R" +b11011000 Z +b11011000 @" +b11011000 X" +b11010100 X +b11010100 A" +b11010100 P" +b11010100 U" +b11010100 W" +b1011100 K +1D +#4600 +0D +#4625 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b1100 a +b1100 D" +b1100 l" +b1100 b +b1100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b0 U +b0 L" +b0 ]" +b1011 S +b1011 O" +b1011 g" +b1000 v +b1000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 2# +1}" +b1000 \ +b1000 6" +b1000 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 /# +b100 &# +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 5# +b1100000000000000000000000 ~" +b1100000000000000000000000 4# +b110000000010100000100011 ` +b110000000010100000100011 Q" +b110000000010100000100011 T" +b11011100 Y +b11011100 V" +b11011100 Z" +b11101100 i +b11101100 B" +b11101100 Y" +b11010100 o +b11010100 C" +b11010100 S" +b101100000010011000100011 p +b101100000010011000100011 R" +b1000 $" +b1000 =" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b1010 +" +b1010 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b100 y +b100 [" +b100 `" +b100 t" +04" +b0 3" +b0 J" +b0 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b1100000000000000000000000 :# +b11011100 Z +b11011100 @" +b11011100 X" +b11011000 X +b11011000 A" +b11011000 P" +b11011000 U" +b11011000 W" +b1011101 K +1D +#4650 +0D +#4675 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +b10000 a +b10000 D" +b10000 l" +b10000 b +b10000 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b1100 v +b1100 8" +b1100 S +b1100 O" +b1100 g" +b100 P +b100 _" +b100 d" +b100 j" +b100 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b1000 &# +b1100 \ +b1100 6" +b1100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b110100000010101000100011 ` +b110100000010101000100011 Q" +b110100000010101000100011 T" +b11100000 Y +b11100000 V" +b11100000 Z" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 5# +b100 0" +b100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b1000 y +b1000 [" +b1000 `" +b1000 t" +b1100 $" +b1100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b1011 +" +b1011 I" +b11111000 i +b11111000 B" +b11111000 Y" +b11011000 o +b11011000 C" +b11011000 S" +b110000000010100000100011 p +b110000000010100000100011 R" +b11100000 Z +b11100000 @" +b11100000 X" +b11011100 X +b11011100 A" +b11011100 P" +b11011100 U" +b11011100 W" +b1011110 K +1D +#4700 +0D +#4725 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b10100 a +b10100 D" +b10100 l" +b10100 b +b10100 k" +b0 Q +b0 h" +b1101 S +b1101 O" +b1101 g" +b10000 v +b10000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b10000 \ +b10000 6" +b10000 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b1100 &# +b1000 P +b1000 _" +b1000 d" +b1000 j" +b1000 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b111000000010110000100011 ` +b111000000010110000100011 Q" +b111000000010110000100011 T" +b11100100 Y +b11100100 V" +b11100100 Z" +b100000100 i +b100000100 B" +b100000100 Y" +b11011100 o +b11011100 C" +b11011100 S" +b110100000010101000100011 p +b110100000010101000100011 R" +b10000 $" +b10000 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b1100 +" +b1100 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b1100 y +b1100 [" +b1100 `" +b1100 t" +b1000 0" +b1000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b11100100 Z +b11100100 @" +b11100100 X" +b11100000 X +b11100000 A" +b11100000 P" +b11100000 U" +b11100000 W" +b1011111 K +1D +#4750 +0D +#4775 +b1100110011001100111011101110111 n +b1100110011001100111011101110111 v" +b1100110011001100111011101110111 +# +b11000 a +b11000 D" +b11000 l" +b11000 b +b11000 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b10100 v +b10100 8" +b1110 S +b1110 O" +b1110 g" +b1100 P +b1100 _" +b1100 d" +b1100 j" +b1100 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b10000 &# +b10100 \ +b10100 6" +b10100 >" +b0 w +b0 ?" +b0 c" +b111100000010111000100011 ` +b111100000010111000100011 Q" +b111100000010111000100011 T" +b11101000 Y +b11101000 V" +b11101000 Z" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b1100 0" +b1100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b10000 y +b10000 [" +b10000 `" +b10000 t" +b10100 $" +b10100 =" +b0 ," +b0 a" +b1101 +" +b1101 I" +b100010000 i +b100010000 B" +b100010000 Y" +b11100000 o +b11100000 C" +b11100000 S" +b111000000010110000100011 p +b111000000010110000100011 R" +b11101000 Z +b11101000 @" +b11101000 X" +b11100100 X +b11100100 A" +b11100100 P" +b11100100 U" +b11100100 W" +b1100000 K +1D +#4800 +0D +#4825 +b1000100010001000101010101010101 n +b1000100010001000101010101010101 v" +b1000100010001000101010101010101 +# +b11100 a +b11100 D" +b11100 l" +b11100 b +b11100 k" +b0 Q +b0 h" +b1111 S +b1111 O" +b1111 g" +b11000 v +b11000 8" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b11000 \ +b11000 6" +b11000 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b10100 &# +b10000 P +b10000 _" +b10000 d" +b10000 j" +b10000 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b11000000000010000000100011 ` +b11000000000010000000100011 Q" +b11000000000010000000100011 T" +b11101100 Y +b11101100 V" +b11101100 Z" +b100011100 i +b100011100 B" +b100011100 Y" +b11100100 o +b11100100 C" +b11100100 S" +b111100000010111000100011 p +b111100000010111000100011 R" +b11000 $" +b11000 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b1110 +" +b1110 I" +b0 !" +b0 u" +b10100 y +b10100 [" +b10100 `" +b10100 t" +b10000 0" +b10000 m" +b1100110011001100111011101110111 1" +b1100110011001100111011101110111 n" +b11101100 Z +b11101100 @" +b11101100 X" +b11101000 X +b11101000 A" +b11101000 P" +b11101000 U" +b11101000 W" +b1100001 K +1D +#4850 +0D +#4875 +b100010001000100011001100110011 n +b100010001000100011001100110011 v" +b100010001000100011001100110011 +# +b100000 a +b100000 D" +b100000 l" +b100000 b +b100000 k" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b11100 v +b11100 8" +b10000 S +b10000 O" +b10000 g" +b10100 P +b10100 _" +b10100 d" +b10100 j" +b10100 o" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b11000 &# +b11100 \ +b11100 6" +b11100 >" +b0 w +b0 ?" +b0 c" +b1 c +b11000100000010001000100011 ` +b11000100000010001000100011 Q" +b11000100000010001000100011 T" +b11110000 Y +b11110000 V" +b11110000 Z" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b10100 0" +b10100 m" +b1000100010001000101010101010101 1" +b1000100010001000101010101010101 n" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b11000 y +b11000 [" +b11000 `" +b11000 t" +b11100 $" +b11100 =" +b0 ," +b0 a" +b1111 +" +b1111 I" +b100101000 i +b100101000 B" +b100101000 Y" +b11101000 o +b11101000 C" +b11101000 S" +b11000000000010000000100011 p +b11000000000010000000100011 R" +b11110000 Z +b11110000 @" +b11110000 X" +b11101100 X +b11101100 A" +b11101100 P" +b11101100 U" +b11101100 W" +b1100010 K +1D +#4900 +0D +#4925 +b1000100010001 n +b1000100010001 v" +b1000100010001 +# +b100100 a +b100100 D" +b100100 l" +b100100 b +b100100 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b10001 S +b10001 O" +b10001 g" +b100000 v +b100000 8" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b100000 \ +b100000 6" +b100000 >" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b11100 &# +b11000 P +b11000 _" +b11000 d" +b11000 j" +b11000 o" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b11001000000010010000100011 ` +b11001000000010010000100011 Q" +b11001000000010010000100011 T" +b11110100 Y +b11110100 V" +b11110100 Z" +b100110100 i +b100110100 B" +b100110100 Y" +b11101100 o +b11101100 C" +b11101100 S" +b11000100000010001000100011 p +b11000100000010001000100011 R" +b1 /" +b1 ;" +b100000 $" +b100000 =" +b10000 +" +b10000 I" +b0 !" +b0 u" +b11100 y +b11100 [" +b11100 `" +b11100 t" +b11000 0" +b11000 m" +b100010001000100011001100110011 1" +b100010001000100011001100110011 n" +b11110100 Z +b11110100 @" +b11110100 X" +b11110000 X +b11110000 A" +b11110000 P" +b11110000 U" +b11110000 W" +b1100011 K +1D +#4950 +0D +#4975 +b10001000100010000000000000000 n +b10001000100010000000000000000 v" +b10001000100010000000000000000 +# +b1 @# +0}" +b101000 a +b101000 D" +b101000 l" +b101000 b +b101000 k" +b0 Q +b0 h" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 2# +b100000 C +b100000 _ +b100000 ## +b100000 =# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b100100 v +b100100 8" +b10010 S +b10010 O" +b10010 g" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 /# +b11100 P +b11100 _" +b11100 d" +b11100 j" +b11100 o" +b1000000000000000000000000 :# +b1 r" +b1 1# +b1 '# +b0 &# +b100100 \ +b100100 6" +b100100 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b11001100000010011000100011 ` +b11001100000010011000100011 Q" +b11001100000010011000100011 T" +b11111000 Y +b11111000 V" +b11111000 Z" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 5# +b11100 0" +b11100 m" +b1000100010001 1" +b1000100010001 n" +b100000 y +b100000 [" +b100000 `" +b100000 t" +b100100 $" +b100100 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b10001 +" +b10001 I" +b101000000 i +b101000000 B" +b101000000 Y" +b11110000 o +b11110000 C" +b11110000 S" +b11001000000010010000100011 p +b11001000000010010000100011 R" +b11111000 Z +b11111000 @" +b11111000 X" +b11110100 X +b11110100 A" +b11110100 P" +b11110100 U" +b11110100 W" +b1100100 K +1D +#5000 +0D +#5025 +b110011001100110010001000100010 n +b110011001100110010001000100010 v" +b110011001100110010001000100010 +# +b101100 a +b101100 D" +b101100 l" +b101100 b +b101100 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b10011 S +b10011 O" +b10011 g" +b101000 v +b101000 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 2# +1}" +b101000 \ +b101000 6" +b101000 >" +b0 w +b0 ?" +b0 c" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 /# +b100 &# +b100000 P +b100000 _" +b100000 d" +b100000 j" +b100000 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 5# +b1100000000000000000000000 ~" +b1100000000000000000000000 4# +b11010000000010100000100011 ` +b11010000000010100000100011 Q" +b11010000000010100000100011 T" +b11111100 Y +b11111100 V" +b11111100 Z" +b101001100 i +b101001100 B" +b101001100 Y" +b11110100 o +b11110100 C" +b11110100 S" +b11001100000010011000100011 p +b11001100000010011000100011 R" +b101000 $" +b101000 =" +b0 ," +b0 a" +b10010 +" +b10010 I" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b100100 y +b100100 [" +b100100 `" +b100100 t" +b100000 0" +b100000 m" +b10001000100010000000000000000 1" +b10001000100010000000000000000 n" +b1100000000000000000000000 :# +b11111100 Z +b11111100 @" +b11111100 X" +b11111000 X +b11111000 A" +b11111000 P" +b11111000 U" +b11111000 W" +b1100101 K +1D +#5050 +0D +#5075 +b1010101010101010100010001000100 n +b1010101010101010100010001000100 v" +b1010101010101010100010001000100 +# +b110000 a +b110000 D" +b110000 l" +b110000 b +b110000 k" +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b101100 v +b101100 8" +b10100 S +b10100 O" +b10100 g" +b100100 P +b100100 _" +b100100 d" +b100100 j" +b100100 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b1000 &# +b101100 \ +b101100 6" +b101100 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b11010100000010101000100011 ` +b11010100000010101000100011 Q" +b11010100000010101000100011 T" +b100000000 Y +b100000000 V" +b100000000 Z" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 5# +b100100 0" +b100100 m" +b110011001100110010001000100010 1" +b110011001100110010001000100010 n" +b0 !" +b0 u" +b101000 y +b101000 [" +b101000 `" +b101000 t" +b101100 $" +b101100 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b10011 +" +b10011 I" +b101011000 i +b101011000 B" +b101011000 Y" +b11111000 o +b11111000 C" +b11111000 S" +b11010000000010100000100011 p +b11010000000010100000100011 R" +b100000000 Z +b100000000 @" +b100000000 X" +b11111100 X +b11111100 A" +b11111100 P" +b11111100 U" +b11111100 W" +b1100110 K +1D +#5100 +0D +#5125 +b1110111011101110110011001100110 n +b1110111011101110110011001100110 v" +b1110111011101110110011001100110 +# +b110100 a +b110100 D" +b110100 l" +b110100 b +b110100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b10101 S +b10101 O" +b10101 g" +b110000 v +b110000 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b110000 \ +b110000 6" +b110000 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b1100 &# +b101000 P +b101000 _" +b101000 d" +b101000 j" +b101000 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b11011000000010110000100011 ` +b11011000000010110000100011 Q" +b11011000000010110000100011 T" +b100000100 Y +b100000100 V" +b100000100 Z" +b101100100 i +b101100100 B" +b101100100 Y" +b11111100 o +b11111100 C" +b11111100 S" +b11010100000010101000100011 p +b11010100000010101000100011 R" +b110000 $" +b110000 =" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b10100 +" +b10100 I" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b101100 y +b101100 [" +b101100 `" +b101100 t" +b101000 0" +b101000 m" +b1010101010101010100010001000100 1" +b1010101010101010100010001000100 n" +b100000100 Z +b100000100 @" +b100000100 X" +b100000000 X +b100000000 A" +b100000000 P" +b100000000 U" +b100000000 W" +b1100111 K +1D +#5150 +0D +#5175 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b111000 a +b111000 D" +b111000 l" +b111000 b +b111000 k" +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b110100 v +b110100 8" +b10110 S +b10110 O" +b10110 g" +b101100 P +b101100 _" +b101100 d" +b101100 j" +b101100 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b10000 &# +b110100 \ +b110100 6" +b110100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b11011100000010111000100011 ` +b11011100000010111000100011 Q" +b11011100000010111000100011 T" +b100001000 Y +b100001000 V" +b100001000 Z" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b101100 0" +b101100 m" +b1110111011101110110011001100110 1" +b1110111011101110110011001100110 n" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b110000 y +b110000 [" +b110000 `" +b110000 t" +b110100 $" +b110100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b10101 +" +b10101 I" +b101110000 i +b101110000 B" +b101110000 Y" +b100000000 o +b100000000 C" +b100000000 S" +b11011000000010110000100011 p +b11011000000010110000100011 R" +b100001000 Z +b100001000 @" +b100001000 X" +b100000100 X +b100000100 A" +b100000100 P" +b100000100 U" +b100000100 W" +b1101000 K +1D +#5200 +0D +#5225 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b111100 a +b111100 D" +b111100 l" +b111100 b +b111100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b10111 S +b10111 O" +b10111 g" +b111000 v +b111000 8" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b111000 \ +b111000 6" +b111000 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b10100 &# +b110000 P +b110000 _" +b110000 d" +b110000 j" +b110000 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b0 ` +b0 Q" +b0 T" +b100001100 Y +b100001100 V" +b100001100 Z" +b101111100 i +b101111100 B" +b101111100 Y" +b100000100 o +b100000100 C" +b100000100 S" +b11011100000010111000100011 p +b11011100000010111000100011 R" +b111000 $" +b111000 =" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b10110 +" +b10110 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b110100 y +b110100 [" +b110100 `" +b110100 t" +b110000 0" +b110000 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b100001100 Z +b100001100 @" +b100001100 X" +b100001000 X +b100001000 A" +b100001000 P" +b100001000 U" +b100001000 W" +b1101001 K +1D +#5250 +0D +#5275 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +0l +b0 Q +b0 h" +b0 a +b0 D" +b0 l" +b0 b +b0 k" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b111100 v +b111100 8" +b0 S +b0 O" +b0 g" +b110100 P +b110100 _" +b110100 d" +b110100 j" +b110100 o" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b11000 &# +b111100 \ +b111100 6" +b111100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b0 c +b0 d +b0 [ +b0 E" +b100010000 Y +b100010000 V" +b100010000 Z" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b110100 0" +b110100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b111000 y +b111000 [" +b111000 `" +b111000 t" +b111100 $" +b111100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b10111 +" +b10111 I" +b0 i +b0 B" +b0 Y" +b0 o +b0 C" +b0 S" +b0 p +b0 R" +b100010000 Z +b100010000 @" +b100010000 X" +b100001100 X +b100001100 A" +b100001100 P" +b100001100 U" +b100001100 W" +b1101010 K +1D +#5300 +0D +#5325 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b0 v +b0 8" +b1000100010001000100010001000100010101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100010001000100010101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b0 \ +b0 6" +b0 >" +b0 w +b0 ?" +b0 c" +b1000100010001000100010001000100010101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b11100 &# +b111000 P +b111000 _" +b111000 d" +b111000 j" +b111000 o" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b100010100 Y +b100010100 V" +b100010100 Z" +0&" +b0 ." +b0 :" +b0 /" +b0 ;" +b0 $" +b0 =" +b0 ," +b0 a" +b0 +" +b0 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b111100 y +b111100 [" +b111100 `" +b111100 t" +b111000 0" +b111000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b100010100 Z +b100010100 @" +b100010100 X" +b100010000 X +b100010000 A" +b100010000 P" +b100010000 U" +b100010000 W" +b1101011 K +1D +#5350 +0D +#5375 +b10101010101010101010101010101010 n +b10101010101010101010101010101010 v" +b10101010101010101010101010101010 +# +b0 @# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100000000000000000000000000000000000 )# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100000000000000000000000000000000000 2# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100000000000000000000000000000000000 /# +0s" +b0 C +b0 _ +b0 ## +b0 =# +b111100 P +b111100 _" +b111100 d" +b111100 j" +b111100 o" +0q" +0w" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +0p" +0z" +b0 r" +b0 1# +b0 '# +b0 &# +b100011000 Y +b100011000 V" +b100011000 Z" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b111100 0" +b111100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +0{ +b0 !" +b0 u" +b0 y +b0 [" +b0 `" +b0 t" +b100011000 Z +b100011000 @" +b100011000 X" +b100010100 X +b100010100 A" +b100010100 P" +b100010100 U" +b100010100 W" +b1101100 K +1D +#5400 +0D +#5425 +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b100011100 Y +b100011100 V" +b100011100 Z" +b0 0" +b0 m" +b10101010101010101010101010101010 1" +b10101010101010101010101010101010 n" +b100011100 Z +b100011100 @" +b100011100 X" +b100011000 X +b100011000 A" +b100011000 P" +b100011000 U" +b100011000 W" +b1101101 K +1D +#5450 +0D +#5475 +b100100000 Y +b100100000 V" +b100100000 Z" +b100100000 Z +b100100000 @" +b100100000 X" +b100011100 X +b100011100 A" +b100011100 P" +b100011100 U" +b100011100 W" +b1101110 K +1D +#5500 +0D +#5525 +b100100100 Y +b100100100 V" +b100100100 Z" +b100100100 Z +b100100100 @" +b100100100 X" +b100100000 X +b100100000 A" +b100100000 P" +b100100000 U" +b100100000 W" +b1101111 K +1D +#5550 +0D +#5575 +b100101000 Y +b100101000 V" +b100101000 Z" +b100101000 Z +b100101000 @" +b100101000 X" +b100100100 X +b100100100 A" +b100100100 P" +b100100100 U" +b100100100 W" +b1110000 K +1D +#5600 +0D +#5625 +b100101100 Y +b100101100 V" +b100101100 Z" +b100101100 Z +b100101100 @" +b100101100 X" +b100101000 X +b100101000 A" +b100101000 P" +b100101000 U" +b100101000 W" +b1110001 K +1D +#5650 +0D +#5675 +b100110000 Y +b100110000 V" +b100110000 Z" +b100110000 Z +b100110000 @" +b100110000 X" +b100101100 X +b100101100 A" +b100101100 P" +b100101100 U" +b100101100 W" +b1110010 K +1D +#5700 +0D +#5725 +b100110100 Y +b100110100 V" +b100110100 Z" +b100110100 Z +b100110100 @" +b100110100 X" +b100110000 X +b100110000 A" +b100110000 P" +b100110000 U" +b100110000 W" +b1110011 K +1D +#5750 +0D +#5775 +b100111000 Y +b100111000 V" +b100111000 Z" +b100111000 Z +b100111000 @" +b100111000 X" +b100110100 X +b100110100 A" +b100110100 P" +b100110100 U" +b100110100 W" +b1110100 K +1D +#5800 +0D +#5825 +b100111100 Y +b100111100 V" +b100111100 Z" +b100111100 Z +b100111100 @" +b100111100 X" +b100111000 X +b100111000 A" +b100111000 P" +b100111000 U" +b100111000 W" +b1110101 K +1D +#5850 +0D +#5875 +b101000000 Y +b101000000 V" +b101000000 Z" +b101000000 Z +b101000000 @" +b101000000 X" +b100111100 X +b100111100 A" +b100111100 P" +b100111100 U" +b100111100 W" +b1110110 K +1D +#5900 +0D +#5925 +b101000100 Y +b101000100 V" +b101000100 Z" +b101000100 Z +b101000100 @" +b101000100 X" +b101000000 X +b101000000 A" +b101000000 P" +b101000000 U" +b101000000 W" +b1110111 K +1D +#5950 +0D +#5975 +b101001000 Y +b101001000 V" +b101001000 Z" +b101001000 Z +b101001000 @" +b101001000 X" +b101000100 X +b101000100 A" +b101000100 P" +b101000100 U" +b101000100 W" +b1111000 K +1D +#6000 +0D +#6025 +b101001100 Y +b101001100 V" +b101001100 Z" +b101001100 Z +b101001100 @" +b101001100 X" +b101001000 X +b101001000 A" +b101001000 P" +b101001000 U" +b101001000 W" +b1111001 K +1D +#6050 +0D +#6075 +b101010000 Y +b101010000 V" +b101010000 Z" +b101010000 Z +b101010000 @" +b101010000 X" +b101001100 X +b101001100 A" +b101001100 P" +b101001100 U" +b101001100 W" +b1111010 K +1D +#6100 +0D +#6125 +b101010100 Y +b101010100 V" +b101010100 Z" +b101010100 Z +b101010100 @" +b101010100 X" +b101010000 X +b101010000 A" +b101010000 P" +b101010000 U" +b101010000 W" +b1111011 K +1D +#6150 +0D +#6175 +b101011000 Y +b101011000 V" +b101011000 Z" +b101011000 Z +b101011000 @" +b101011000 X" +b101010100 X +b101010100 A" +b101010100 P" +b101010100 U" +b101010100 W" +b1111100 K +1D +#6200 +0D +#6225 +b101011100 Y +b101011100 V" +b101011100 Z" +b101011100 Z +b101011100 @" +b101011100 X" +b101011000 X +b101011000 A" +b101011000 P" +b101011000 U" +b101011000 W" +b1111101 K +1D +#6250 +0D +#6275 +b101100000 Y +b101100000 V" +b101100000 Z" +b101100000 Z +b101100000 @" +b101100000 X" +b101011100 X +b101011100 A" +b101011100 P" +b101011100 U" +b101011100 W" +b1111110 K +1D +#6300 +0D +#6325 +b101100100 Y +b101100100 V" +b101100100 Z" +b101100100 Z +b101100100 @" +b101100100 X" +b101100000 X +b101100000 A" +b101100000 P" +b101100000 U" +b101100000 W" +b1111111 K +1D +#6350 +0D +#6375 +b101101000 Y +b101101000 V" +b101101000 Z" +b101101000 Z +b101101000 @" +b101101000 X" +b101100100 X +b101100100 A" +b101100100 P" +b101100100 U" +b101100100 W" +b10000000 K +1D +#6400 +0D +#6425 +b101101100 Y +b101101100 V" +b101101100 Z" +b101101100 Z +b101101100 @" +b101101100 X" +b101101000 X +b101101000 A" +b101101000 P" +b101101000 U" +b101101000 W" +b10000001 K +1D +#6450 +0D +#6475 +b101110000 Y +b101110000 V" +b101110000 Z" +b101110000 Z +b101110000 @" +b101110000 X" +b101101100 X +b101101100 A" +b101101100 P" +b101101100 U" +b101101100 W" +b10000010 K +1D +#6500 +0D +#6525 +b101110100 Y +b101110100 V" +b101110100 Z" +b101110100 Z +b101110100 @" +b101110100 X" +b101110000 X +b101110000 A" +b101110000 P" +b101110000 U" +b101110000 W" +b10000011 K +1D +#6550 +0D +#6575 +b101111000 Y +b101111000 V" +b101111000 Z" +b101111000 Z +b101111000 @" +b101111000 X" +b101110100 X +b101110100 A" +b101110100 P" +b101110100 U" +b101110100 W" +b10000100 K +1D +#6600 +0D +#6625 +b101111100 Y +b101111100 V" +b101111100 Z" +b101111100 Z +b101111100 @" +b101111100 X" +b101111000 X +b101111000 A" +b101111000 P" +b101111000 U" +b101111000 W" +b10000101 K +1D +#6650 +0D +#6675 +b110000000 Y +b110000000 V" +b110000000 Z" +b110000000 Z +b110000000 @" +b110000000 X" +b101111100 X +b101111100 A" +b101111100 P" +b101111100 U" +b101111100 W" +b10000110 K +1D +#6700 +0D +#6725 +b110000100 Y +b110000100 V" +b110000100 Z" +b110000100 Z +b110000100 @" +b110000100 X" +b110000000 X +b110000000 A" +b110000000 P" +b110000000 U" +b110000000 W" +b10000111 K +1D +#6750 +0D +#6775 +b110001000 Y +b110001000 V" +b110001000 Z" +b110001000 Z +b110001000 @" +b110001000 X" +b110000100 X +b110000100 A" +b110000100 P" +b110000100 U" +b110000100 W" +b10001000 K +1D +#6800 +0D +#6825 +b110001100 Y +b110001100 V" +b110001100 Z" +b110001100 Z +b110001100 @" +b110001100 X" +b110001000 X +b110001000 A" +b110001000 P" +b110001000 U" +b110001000 W" +b10001001 K +1D +#6850 +0D +#6875 +b110010000 Y +b110010000 V" +b110010000 Z" +b110010000 Z +b110010000 @" +b110010000 X" +b110001100 X +b110001100 A" +b110001100 P" +b110001100 U" +b110001100 W" +b10001010 K +1D +#6900 +0D +#6925 +b110010100 Y +b110010100 V" +b110010100 Z" +b110010100 Z +b110010100 @" +b110010100 X" +b110010000 X +b110010000 A" +b110010000 P" +b110010000 U" +b110010000 W" +b10001011 K +1D +#6950 +0D +#6975 +b110011000 Y +b110011000 V" +b110011000 Z" +b110011000 Z +b110011000 @" +b110011000 X" +b110010100 X +b110010100 A" +b110010100 P" +b110010100 U" +b110010100 W" +b10001100 K +1D +#7000 +0D +#7025 +b110011100 Y +b110011100 V" +b110011100 Z" +b110011100 Z +b110011100 @" +b110011100 X" +b110011000 X +b110011000 A" +b110011000 P" +b110011000 U" +b110011000 W" +b10001101 K +1D +#7050 +0D +#7075 +b110100000 Y +b110100000 V" +b110100000 Z" +b110100000 Z +b110100000 @" +b110100000 X" +b110011100 X +b110011100 A" +b110011100 P" +b110011100 U" +b110011100 W" +b10001110 K +1D +#7100 +0D +#7125 +b110100100 Y +b110100100 V" +b110100100 Z" +b110100100 Z +b110100100 @" +b110100100 X" +b110100000 X +b110100000 A" +b110100000 P" +b110100000 U" +b110100000 W" +b10001111 K +1D +#7150 +0D +#7175 +b110101000 Y +b110101000 V" +b110101000 Z" +b110101000 Z +b110101000 @" +b110101000 X" +b110100100 X +b110100100 A" +b110100100 P" +b110100100 U" +b110100100 W" +b10010000 K +1D +#7200 +0D +#7225 +b110101100 Y +b110101100 V" +b110101100 Z" +b110101100 Z +b110101100 @" +b110101100 X" +b110101000 X +b110101000 A" +b110101000 P" +b110101000 U" +b110101000 W" +b10010001 K +1D +#7250 +0D +#7275 +b110110000 Y +b110110000 V" +b110110000 Z" +b110110000 Z +b110110000 @" +b110110000 X" +b110101100 X +b110101100 A" +b110101100 P" +b110101100 U" +b110101100 W" +b10010010 K +1D +#7300 +0D +#7325 +b110110100 Y +b110110100 V" +b110110100 Z" +b110110100 Z +b110110100 @" +b110110100 X" +b110110000 X +b110110000 A" +b110110000 P" +b110110000 U" +b110110000 W" +b10010011 K +1D +#7350 +0D +#7375 +b110111000 Y +b110111000 V" +b110111000 Z" +b110111000 Z +b110111000 @" +b110111000 X" +b110110100 X +b110110100 A" +b110110100 P" +b110110100 U" +b110110100 W" +b10010100 K +1D +#7400 +0D +#7425 +b110111100 Y +b110111100 V" +b110111100 Z" +b110111100 Z +b110111100 @" +b110111100 X" +b110111000 X +b110111000 A" +b110111000 P" +b110111000 U" +b110111000 W" +b10010101 K +1D +#7450 +0D +#7475 +b111000000 Y +b111000000 V" +b111000000 Z" +b111000000 Z +b111000000 @" +b111000000 X" +b110111100 X +b110111100 A" +b110111100 P" +b110111100 U" +b110111100 W" +b10010110 K +1D +#7500 +0D +#7525 +b111000100 Y +b111000100 V" +b111000100 Z" +b111000100 Z +b111000100 @" +b111000100 X" +b111000000 X +b111000000 A" +b111000000 P" +b111000000 U" +b111000000 W" +b10010111 K +1D +#7550 +0D +#7575 +b111001000 Y +b111001000 V" +b111001000 Z" +b111001000 Z +b111001000 @" +b111001000 X" +b111000100 X +b111000100 A" +b111000100 P" +b111000100 U" +b111000100 W" +b10011000 K +1D +#7600 +0D +#7625 +b111001100 Y +b111001100 V" +b111001100 Z" +b111001100 Z +b111001100 @" +b111001100 X" +b111001000 X +b111001000 A" +b111001000 P" +b111001000 U" +b111001000 W" +b10011001 K +1D +#7650 +0D +#7675 +b111010000 Y +b111010000 V" +b111010000 Z" +b111010000 Z +b111010000 @" +b111010000 X" +b111001100 X +b111001100 A" +b111001100 P" +b111001100 U" +b111001100 W" +b10011010 K +1D +#7700 +0D +#7725 +b111010100 Y +b111010100 V" +b111010100 Z" +b111010100 Z +b111010100 @" +b111010100 X" +b111010000 X +b111010000 A" +b111010000 P" +b111010000 U" +b111010000 W" +b10011011 K +1D +#7750 +0D +#7775 +b111011000 Y +b111011000 V" +b111011000 Z" +b111011000 Z +b111011000 @" +b111011000 X" +b111010100 X +b111010100 A" +b111010100 P" +b111010100 U" +b111010100 W" +b10011100 K +1D +#7800 +0D +#7825 +b111011100 Y +b111011100 V" +b111011100 Z" +b111011100 Z +b111011100 @" +b111011100 X" +b111011000 X +b111011000 A" +b111011000 P" +b111011000 U" +b111011000 W" +b10011101 K +1D +#7850 +0D +#7875 +b111100000 Y +b111100000 V" +b111100000 Z" +b111100000 Z +b111100000 @" +b111100000 X" +b111011100 X +b111011100 A" +b111011100 P" +b111011100 U" +b111011100 W" +b10011110 K +1D +#7900 +0D +#7925 +b111100100 Y +b111100100 V" +b111100100 Z" +b111100100 Z +b111100100 @" +b111100100 X" +b111100000 X +b111100000 A" +b111100000 P" +b111100000 U" +b111100000 W" +b10011111 K +1D +#7950 +0D +#7975 +b111101000 Y +b111101000 V" +b111101000 Z" +b111101000 Z +b111101000 @" +b111101000 X" +b111100100 X +b111100100 A" +b111100100 P" +b111100100 U" +b111100100 W" +b10100000 K +1D +#8000 +0D +#8025 +b111101100 Y +b111101100 V" +b111101100 Z" +b111101100 Z +b111101100 @" +b111101100 X" +b111101000 X +b111101000 A" +b111101000 P" +b111101000 U" +b111101000 W" +b10100001 K +1D +#8050 +0D +#8075 +b111110000 Y +b111110000 V" +b111110000 Z" +b111110000 Z +b111110000 @" +b111110000 X" +b111101100 X +b111101100 A" +b111101100 P" +b111101100 U" +b111101100 W" +b10100010 K +1D +#8100 +0D +#8125 +b111110100 Y +b111110100 V" +b111110100 Z" +b111110100 Z +b111110100 @" +b111110100 X" +b111110000 X +b111110000 A" +b111110000 P" +b111110000 U" +b111110000 W" +b10100011 K +1D +#8150 +0D +#8175 +b111111000 Y +b111111000 V" +b111111000 Z" +b111111000 Z +b111111000 @" +b111111000 X" +b111110100 X +b111110100 A" +b111110100 P" +b111110100 U" +b111110100 W" +b10100100 K +1D +#8200 +0D +#8225 +b111111100 Y +b111111100 V" +b111111100 Z" +b111111100 Z +b111111100 @" +b111111100 X" +b111111000 X +b111111000 A" +b111111000 P" +b111111000 U" +b111111000 W" +b10100101 K +1D +#8250 +0D +#8275 +b1000000000 Y +b1000000000 V" +b1000000000 Z" +b1000000000 Z +b1000000000 @" +b1000000000 X" +b111111100 X +b111111100 A" +b111111100 P" +b111111100 U" +b111111100 W" +b10100110 K +1D +#8300 +0D +#8325 +b1000000100 Y +b1000000100 V" +b1000000100 Z" +b1000000100 Z +b1000000100 @" +b1000000100 X" +b1000000000 X +b1000000000 A" +b1000000000 P" +b1000000000 U" +b1000000000 W" +b10100111 K +1D +#8350 +0D +#8375 +b1000001000 Y +b1000001000 V" +b1000001000 Z" +b1000001000 Z +b1000001000 @" +b1000001000 X" +b1000000100 X +b1000000100 A" +b1000000100 P" +b1000000100 U" +b1000000100 W" +b10101000 K +1D +#8400 +0D +#8425 +b1000001100 Y +b1000001100 V" +b1000001100 Z" +b1000001100 Z +b1000001100 @" +b1000001100 X" +b1000001000 X +b1000001000 A" +b1000001000 P" +b1000001000 U" +b1000001000 W" +b10101001 K +1D +#8450 +0D +#8475 +b1000010000 Y +b1000010000 V" +b1000010000 Z" +b1000010000 Z +b1000010000 @" +b1000010000 X" +b1000001100 X +b1000001100 A" +b1000001100 P" +b1000001100 U" +b1000001100 W" +b10101010 K +1D +#8500 +0D +#8525 +b1000010100 Y +b1000010100 V" +b1000010100 Z" +b1000010100 Z +b1000010100 @" +b1000010100 X" +b1000010000 X +b1000010000 A" +b1000010000 P" +b1000010000 U" +b1000010000 W" +b10101011 K +1D +#8550 +0D +#8575 +b1000011000 Y +b1000011000 V" +b1000011000 Z" +b1000011000 Z +b1000011000 @" +b1000011000 X" +b1000010100 X +b1000010100 A" +b1000010100 P" +b1000010100 U" +b1000010100 W" +b10101100 K +1D +#8600 +0D +#8625 +b1000011100 Y +b1000011100 V" +b1000011100 Z" +b1000011100 Z +b1000011100 @" +b1000011100 X" +b1000011000 X +b1000011000 A" +b1000011000 P" +b1000011000 U" +b1000011000 W" +b10101101 K +1D +#8650 +0D +#8675 +b1000100000 Y +b1000100000 V" +b1000100000 Z" +b1000100000 Z +b1000100000 @" +b1000100000 X" +b1000011100 X +b1000011100 A" +b1000011100 P" +b1000011100 U" +b1000011100 W" +b10101110 K +1D +#8700 +0D +#8725 +b1000100100 Y +b1000100100 V" +b1000100100 Z" +b1000100100 Z +b1000100100 @" +b1000100100 X" +b1000100000 X +b1000100000 A" +b1000100000 P" +b1000100000 U" +b1000100000 W" +b10101111 K +1D +#8750 +0D +#8775 +b1000101000 Y +b1000101000 V" +b1000101000 Z" +b1000101000 Z +b1000101000 @" +b1000101000 X" +b1000100100 X +b1000100100 A" +b1000100100 P" +b1000100100 U" +b1000100100 W" +b10110000 K +1D +#8800 +0D +#8825 +b1000101100 Y +b1000101100 V" +b1000101100 Z" +b1000101100 Z +b1000101100 @" +b1000101100 X" +b1000101000 X +b1000101000 A" +b1000101000 P" +b1000101000 U" +b1000101000 W" +b10110001 K +1D +#8850 +0D +#8875 +b1000110000 Y +b1000110000 V" +b1000110000 Z" +b1000110000 Z +b1000110000 @" +b1000110000 X" +b1000101100 X +b1000101100 A" +b1000101100 P" +b1000101100 U" +b1000101100 W" +b10110010 K +1D +#8900 +0D +#8925 +b1000110100 Y +b1000110100 V" +b1000110100 Z" +b1000110100 Z +b1000110100 @" +b1000110100 X" +b1000110000 X +b1000110000 A" +b1000110000 P" +b1000110000 U" +b1000110000 W" +b10110011 K +1D +#8950 +0D +#8975 +b1000111000 Y +b1000111000 V" +b1000111000 Z" +b1000111000 Z +b1000111000 @" +b1000111000 X" +b1000110100 X +b1000110100 A" +b1000110100 P" +b1000110100 U" +b1000110100 W" +b10110100 K +1D +#9000 +0D +#9025 +b1000111100 Y +b1000111100 V" +b1000111100 Z" +b1000111100 Z +b1000111100 @" +b1000111100 X" +b1000111000 X +b1000111000 A" +b1000111000 P" +b1000111000 U" +b1000111000 W" +b10110101 K +1D +#9050 +0D +#9075 +b1001000000 Y +b1001000000 V" +b1001000000 Z" +b1001000000 Z +b1001000000 @" +b1001000000 X" +b1000111100 X +b1000111100 A" +b1000111100 P" +b1000111100 U" +b1000111100 W" +b10110110 K +1D +#9100 +0D +#9125 +b1001000100 Y +b1001000100 V" +b1001000100 Z" +b1001000100 Z +b1001000100 @" +b1001000100 X" +b1001000000 X +b1001000000 A" +b1001000000 P" +b1001000000 U" +b1001000000 W" +b10110111 K +1D +#9150 +0D +#9175 +b1001001000 Y +b1001001000 V" +b1001001000 Z" +b1001001000 Z +b1001001000 @" +b1001001000 X" +b1001000100 X +b1001000100 A" +b1001000100 P" +b1001000100 U" +b1001000100 W" +b10111000 K +1D +#9200 +0D +#9225 +b1001001100 Y +b1001001100 V" +b1001001100 Z" +b1001001100 Z +b1001001100 @" +b1001001100 X" +b1001001000 X +b1001001000 A" +b1001001000 P" +b1001001000 U" +b1001001000 W" +b10111001 K +1D +#9250 +0D +#9275 +b1001010000 Y +b1001010000 V" +b1001010000 Z" +b1001010000 Z +b1001010000 @" +b1001010000 X" +b1001001100 X +b1001001100 A" +b1001001100 P" +b1001001100 U" +b1001001100 W" +b10111010 K +1D +#9300 +0D +#9325 +b1001010100 Y +b1001010100 V" +b1001010100 Z" +b1001010100 Z +b1001010100 @" +b1001010100 X" +b1001010000 X +b1001010000 A" +b1001010000 P" +b1001010000 U" +b1001010000 W" +b10111011 K +1D +#9350 +0D +#9375 +b1001011000 Y +b1001011000 V" +b1001011000 Z" +b1001011000 Z +b1001011000 @" +b1001011000 X" +b1001010100 X +b1001010100 A" +b1001010100 P" +b1001010100 U" +b1001010100 W" +b10111100 K +1D +#9400 +0D +#9425 +b1001011100 Y +b1001011100 V" +b1001011100 Z" +b1001011100 Z +b1001011100 @" +b1001011100 X" +b1001011000 X +b1001011000 A" +b1001011000 P" +b1001011000 U" +b1001011000 W" +b10111101 K +1D +#9450 +0D +#9475 +b1001100000 Y +b1001100000 V" +b1001100000 Z" +b1001100000 Z +b1001100000 @" +b1001100000 X" +b1001011100 X +b1001011100 A" +b1001011100 P" +b1001011100 U" +b1001011100 W" +b10111110 K +1D +#9500 +0D +#9525 +b1001100100 Y +b1001100100 V" +b1001100100 Z" +b1001100100 Z +b1001100100 @" +b1001100100 X" +b1001100000 X +b1001100000 A" +b1001100000 P" +b1001100000 U" +b1001100000 W" +b10111111 K +1D +#9550 +0D +#9575 +b1001101000 Y +b1001101000 V" +b1001101000 Z" +b1001101000 Z +b1001101000 @" +b1001101000 X" +b1001100100 X +b1001100100 A" +b1001100100 P" +b1001100100 U" +b1001100100 W" +b11000000 K +1D +#9600 +0D +#9625 +b1001101100 Y +b1001101100 V" +b1001101100 Z" +b1001101100 Z +b1001101100 @" +b1001101100 X" +b1001101000 X +b1001101000 A" +b1001101000 P" +b1001101000 U" +b1001101000 W" +b11000001 K +1D +#9650 +0D +#9675 +b1001110000 Y +b1001110000 V" +b1001110000 Z" +b1001110000 Z +b1001110000 @" +b1001110000 X" +b1001101100 X +b1001101100 A" +b1001101100 P" +b1001101100 U" +b1001101100 W" +b11000010 K +1D +#9700 +0D +#9725 +b1001110100 Y +b1001110100 V" +b1001110100 Z" +b1001110100 Z +b1001110100 @" +b1001110100 X" +b1001110000 X +b1001110000 A" +b1001110000 P" +b1001110000 U" +b1001110000 W" +b11000011 K +1D +#9750 +0D +#9775 +b1001111000 Y +b1001111000 V" +b1001111000 Z" +b1001111000 Z +b1001111000 @" +b1001111000 X" +b1001110100 X +b1001110100 A" +b1001110100 P" +b1001110100 U" +b1001110100 W" +b11000100 K +1D +#9800 +0D +#9825 +b1001111100 Y +b1001111100 V" +b1001111100 Z" +b1001111100 Z +b1001111100 @" +b1001111100 X" +b1001111000 X +b1001111000 A" +b1001111000 P" +b1001111000 U" +b1001111000 W" +b11000101 K +1D +#9850 +0D +#9875 +b1010000000 Y +b1010000000 V" +b1010000000 Z" +b1010000000 Z +b1010000000 @" +b1010000000 X" +b1001111100 X +b1001111100 A" +b1001111100 P" +b1001111100 U" +b1001111100 W" +b11000110 K +1D +#9900 +0D +#9925 +b1010000100 Y +b1010000100 V" +b1010000100 Z" +b1010000100 Z +b1010000100 @" +b1010000100 X" +b1010000000 X +b1010000000 A" +b1010000000 P" +b1010000000 U" +b1010000000 W" +b11000111 K +1D +#9950 +0D +#9975 +b1010001000 Y +b1010001000 V" +b1010001000 Z" +b1010001000 Z +b1010001000 @" +b1010001000 X" +b1010000100 X +b1010000100 A" +b1010000100 P" +b1010000100 U" +b1010000100 W" +b11001000 K +1D +#10000 +0D +#10025 +b1010001100 Y +b1010001100 V" +b1010001100 Z" +b1010001100 Z +b1010001100 @" +b1010001100 X" +b1010001000 X +b1010001000 A" +b1010001000 P" +b1010001000 U" +b1010001000 W" +b11001001 K +b1111 G +b1111 I +b0 J +b10000 L +b10 M +1D +#10050 +0D +#10075 +b1010010000 Y +b1010010000 V" +b1010010000 Z" +b1010010000 Z +b1010010000 @" +b1010010000 X" +b1010001100 X +b1010001100 A" +b1010001100 P" +b1010001100 U" +b1010001100 W" +1D diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cec516344091a738cc033ad9c90594e0c6732f51 GIT binary patch literal 20789 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 FV1n9PXMF$w literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index 3e5a139..3e29b75 100644 --- a/public/index.html +++ b/public/index.html @@ -1,17 +1,23 @@ - + + - - <%= htmlWebpackPlugin.options.title %> - - + + Vcd Viewer + + + + + +
- - - + + + \ No newline at end of file diff --git a/public/vcd.css b/public/vcd.css new file mode 100644 index 0000000..2e7c669 --- /dev/null +++ b/public/vcd.css @@ -0,0 +1,29 @@ +html, body { + background-color: var(--background); + color: var(--foreground); +} + +.vcd-sidebar { + position: absolute; + top: 10px; + left: 10px; + background-color: var(--sidebar); + border: solid 1px var(--sidebar-border); + min-width: var(--sidebar-min-width); +} + +.vcd-sidebar-item { + +} + +.vcd-toolbar { + +} + +.vcd-render { + +} + +.vcd-treeview { + +} \ No newline at end of file diff --git a/public/vcd.js b/public/vcd.js new file mode 100644 index 0000000..e1bb66b --- /dev/null +++ b/public/vcd.js @@ -0,0 +1,12 @@ +!function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){return o(e[i][1][r]||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i>6],primitive=0==(32&tag);if(31==(31&tag)){let oct=tag;for(tag=0;128==(128&oct);){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=127&oct}}else tag&=31;return{cls:cls,primitive:primitive,tag:tag,tagStr:der.tag[tag]}}function derDecodeLen(buf,primitive,fail){let len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&128===len)return null;if(0==(128&len))return len;const num=127&len;if(num>4)return buf.error("length octect is too long");len=0;for(let i=0;i=31)return reporter.error("Multi-octet tag encoding unsupported");primitive||(res|=32);return res|=der.tagClassByName[cls||"universal"]<<6,res}(tag,primitive,cls,this.reporter);if(content.length<128){const header=Buffer.alloc(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}let lenOctets=1;for(let i=content.length;i>=256;i>>=8)lenOctets++;const header=Buffer.alloc(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(let i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=255&j;return this._createEncoderBuffer([header,content])},DERNode.prototype._encodeStr=function(str,tag){if("bitstr"===tag)return this._createEncoderBuffer([0|str.unused,str.data]);if("bmpstr"===tag){const buf=Buffer.alloc(2*str.length);for(let i=0;i=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,40*id[0]+id[1])}let size=0;for(let i=0;i=128;ident>>=7)size++}const objid=Buffer.alloc(size);let offset=objid.length-1;for(let i=id.length-1;i>=0;i--){let ident=id[i];for(objid[offset--]=127&ident;(ident>>=7)>0;)objid[offset--]=128|127&ident}return this._createEncoderBuffer(objid)},DERNode.prototype._encodeTime=function(time,tag){let str;const date=new Date(time);return"gentime"===tag?str=[two(date.getUTCFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):"utctime"===tag?str=[two(date.getUTCFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+tag+" time is not supported yet"),this._encodeStr(str,"octstr")},DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer("")},DERNode.prototype._encodeInt=function(num,values){if("string"==typeof num){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num));num=values[num]}if("number"!=typeof num&&!Buffer.isBuffer(num)){const numArray=num.toArray();!num.sign&&128&numArray[0]&&numArray.unshift(0),num=Buffer.from(numArray)}if(Buffer.isBuffer(num)){let size=num.length;0===num.length&&size++;const out=Buffer.alloc(size);return num.copy(out),0===num.length&&(out[0]=0),this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);let size=1;for(let i=num;i>=256;i>>=8)size++;const out=new Array(size);for(let i=out.length-1;i>=0;i--)out[i]=255&num,num>>=8;return 128&out[0]&&out.unshift(0),this._createEncoderBuffer(Buffer.from(out))},DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getEncoder("der").tree},DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){const state=this._baseState;let i;if(null===state.default)return!1;const data=dataBuffer.join();if(void 0===state.defaultBuffer&&(state.defaultBuffer=this._encodeValue(state.default,reporter,parent).join()),data.length!==state.defaultBuffer.length)return!1;for(i=0;i=65&&c<=70?c-55:c>=97&&c<=102?c-87:c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);return index-1>=lowerBound&&(r|=parseHex4Bits(string,index-1)<<4),r}function parseBase(str,start,end,mul){for(var r=0,len=Math.min(str.length,end),i=start;i=49?c-49+10:c>=17?c-17+10:c}return r}BN.isBN=function(num){return num instanceof BN||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return left.cmp(right)>0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&(start++,this.negative=1),start=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this.strip()},BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i=start;i-=2)w=parseHexByte(number,start,i)<=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;else for(i=(number.length-start)%2==0?start+1:start;i=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;this.strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function(){return(this.red?""};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out.strip()}BN.prototype.toString=function(base,padding){var out;if(padding=0|padding||1,16===(base=base||10)||"hex"===base){out="";for(var off=0,carry=0,i=0;i>>24-off&16777215)||i!==this.length-1?zeros[6-word.length]+word+out:word+out,(off+=2)>=26&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(void 0!==Buffer),this.toArrayLike(Buffer,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length"),assert(reqLength>0,"Requested array length <= 0"),this.strip();var b,i,littleEndian="le"===endian,res=new ArrayType(reqLength),q=this.clone();if(littleEndian){for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[i]=b;for(;i=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};function jumboMulTo(self,num,out){return(new FFTM).mulp(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;return res=10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?function(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out.strip()}(this,num,out):jumboMulTo(this,num,out),res},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit>>wbit}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s)for(this.length-=s,i=0;i=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this.strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q.strip(),a.strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this.strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){ab&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:20}],17:[function(require,module,exports){"use strict";exports.byteLength=function(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen},exports.toByteArray=function(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(function(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}(0,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;i>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp);1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp);return arr},exports.fromByteArray=function(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],i=0,len2=len-extraBytes;ilen2?len2:i+16383));1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"="));return parts.join("")};for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0;i<64;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;function getLens(b64){var len=b64.length;if(len%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");return-1===validLen&&(validLen=len),[validLen,validLen===len?0:4-validLen%4]}function encodeChunk(uint8,start,end){for(var tmp,num,output=[],i=start;i>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]);return output.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63},{}],18:[function(require,module,exports){!function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;this.negative=0,this.words=null,this.length=0,this.red=null,null!==number&&("le"!==base&&"be"!==base||(endian=base,base=10),this._init(number||0,base||10,endian||"be"))}var Buffer;"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;try{Buffer="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}function parseHex4Bits(string,index){var c=string.charCodeAt(index);return c>=48&&c<=57?c-48:c>=65&&c<=70?c-55:c>=97&&c<=102?c-87:void assert(!1,"Invalid character in "+string)}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);return index-1>=lowerBound&&(r|=parseHex4Bits(string,index-1)<<4),r}function parseBase(str,start,end,mul){for(var r=0,b=0,len=Math.min(str.length,end),i=start;i=49?c-49+10:c>=17?c-17+10:c,assert(c>=0&&b0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&(start++,this.negative=1),start=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this._strip()},BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i=start;i-=2)w=parseHexByte(number,start,i)<=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;else for(i=(number.length-start)%2==0?start+1:start;i=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;this._strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{BN.prototype[Symbol.for("nodejs.util.inspect.custom")]=inspect}catch(e){BN.prototype.inspect=inspect}else BN.prototype.inspect=inspect;function inspect(){return(this.red?""}var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function(base,padding){var out;if(padding=0|padding||1,16===(base=base||10)||"hex"===base){out="";for(var off=0,carry=0,i=0;i>>24-off&16777215,(off+=2)>=26&&(off-=26,i--),out=0!==carry||i!==this.length-1?zeros[6-word.length]+word+out:word+out}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modrn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16,2)},Buffer&&(BN.prototype.toBuffer=function(endian,length){return this.toArrayLike(Buffer,endian,length)}),BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)};function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out._strip()}BN.prototype.toArrayLike=function(ArrayType,endian,length){this._strip();var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length"),assert(reqLength>0,"Requested array length <= 0");var res=function(ArrayType,size){return ArrayType.allocUnsafe?ArrayType.allocUnsafe(size):new ArrayType(size)}(ArrayType,reqLength);return this["_toArrayLike"+("le"===endian?"LE":"BE")](res,byteLength),res},BN.prototype._toArrayLikeLE=function(res,byteLength){for(var position=0,carry=0,i=0,shift=0;i>8&255),position>16&255),6===shift?(position>24&255),carry=0,shift=0):(carry=word>>>24,shift+=2)}if(position=0&&(res[position--]=word>>8&255),position>=0&&(res[position--]=word>>16&255),6===shift?(position>=0&&(res[position--]=word>>24&255),carry=0,shift=0):(carry=word>>>24,shift+=2)}if(position>=0)for(res[position--]=carry;position>=0;)res[position--]=0},Math.clz32?BN.prototype._countBits=function(w){return 32-Math.clz32(w)}:BN.prototype._countBits=function(w){var t=w,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this._strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};function bigMulTo(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out._strip()}function jumboMulTo(self,num,out){return bigMulTo(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length;return 10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?bigMulTo(this,num,out):jumboMulTo(this,num,out)},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),isNegNum?this.ineg():this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit>>wbit&1}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s)for(this.length-=s,i=0;i=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this._strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this._strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q._strip(),a._strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modrn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modrn=function(num){var isNegNum=num<0;isNegNum&&(num=-num),assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return isNegNum?-acc:acc},BN.prototype.modn=function(num){return this.modrn(num)},BN.prototype.idivn=function(num){var isNegNum=num<0;isNegNum&&(num=-num),assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this._strip(),isNegNum?this.ineg():this},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this._strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){ab&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):(move(a,a.umod(this.m)._forceRed(this)),a)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:20}],19:[function(require,module,exports){var r;function Rand(rand){this.rand=rand}if(module.exports=function(len){return r||(r=new Rand(null)),r.generate(len)},module.exports.Rand=Rand,Rand.prototype.generate=function(len){return this._rand(len)},Rand.prototype._rand=function(n){if(this.rand.getBytes)return this.rand.getBytes(n);for(var res=new Uint8Array(n),i=0;i>>24]^SUB_MIX1[s1>>>16&255]^SUB_MIX2[s2>>>8&255]^SUB_MIX3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX0[s1>>>24]^SUB_MIX1[s2>>>16&255]^SUB_MIX2[s3>>>8&255]^SUB_MIX3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX0[s2>>>24]^SUB_MIX1[s3>>>16&255]^SUB_MIX2[s0>>>8&255]^SUB_MIX3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX0[s3>>>24]^SUB_MIX1[s0>>>16&255]^SUB_MIX2[s1>>>8&255]^SUB_MIX3[255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++],[t0>>>=0,t1>>>=0,t2>>>=0,t3>>>=0]}var RCON=[0,1,2,4,8,16,32,64,128,27,54],G=function(){for(var d=new Array(256),j=0;j<256;j++)d[j]=j<128?j<<1:j<<1^283;for(var SBOX=[],INV_SBOX=[],SUB_MIX=[[],[],[],[]],INV_SUB_MIX=[[],[],[],[]],x=0,xi=0,i=0;i<256;++i){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX[0][x]=t<<24|t>>>8,SUB_MIX[1][x]=t<<16|t>>>16,SUB_MIX[2][x]=t<<8|t>>>24,SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,INV_SUB_MIX[0][sx]=t<<24|t>>>8,INV_SUB_MIX[1][sx]=t<<16|t>>>16,INV_SUB_MIX[2][sx]=t<<8|t>>>24,INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]])}return{SBOX:SBOX,INV_SBOX:INV_SBOX,SUB_MIX:SUB_MIX,INV_SUB_MIX:INV_SUB_MIX}}();function AES(key){this._key=asUInt32Array(key),this._reset()}AES.blockSize=16,AES.keySize=32,AES.prototype.blockSize=AES.blockSize,AES.prototype.keySize=AES.keySize,AES.prototype._reset=function(){for(var keyWords=this._key,keySize=keyWords.length,nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=[],k=0;k>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t],t^=RCON[k/keySize|0]<<24):keySize>6&&k%keySize==4&&(t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t]),keySchedule[k]=keySchedule[k-keySize]^t}for(var invKeySchedule=[],ik=0;ik>>24]]^G.INV_SUB_MIX[1][G.SBOX[tt>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[tt>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[255&tt]]}this._nRounds=nRounds,this._keySchedule=keySchedule,this._invKeySchedule=invKeySchedule},AES.prototype.encryptBlockRaw=function(M){return cryptBlock(M=asUInt32Array(M),this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)},AES.prototype.encryptBlock=function(M){var out=this.encryptBlockRaw(M),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[1],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[3],12),buf},AES.prototype.decryptBlock=function(M){var m1=(M=asUInt32Array(M))[1];M[1]=M[3],M[3]=m1;var out=cryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[3],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[1],12),buf},AES.prototype.scrub=function(){scrubVec(this._keySchedule),scrubVec(this._invKeySchedule),scrubVec(this._key)},module.exports.AES=AES},{"safe-buffer":162}],22:[function(require,module,exports){var aes=require("./aes"),Buffer=require("safe-buffer").Buffer,Transform=require("cipher-base"),inherits=require("inherits"),GHASH=require("./ghash"),xor=require("buffer-xor"),incr32=require("./incr32");function StreamCipher(mode,key,iv,decrypt){Transform.call(this);var h=Buffer.alloc(4,0);this._cipher=new aes.AES(key);var ck=this._cipher.encryptBlock(h);this._ghash=new GHASH(ck),iv=function(self,iv,ck){if(12===iv.length)return self._finID=Buffer.concat([iv,Buffer.from([0,0,0,1])]),Buffer.concat([iv,Buffer.from([0,0,0,2])]);var ghash=new GHASH(ck),len=iv.length,toPad=len%16;ghash.update(iv),toPad&&(toPad=16-toPad,ghash.update(Buffer.alloc(toPad,0))),ghash.update(Buffer.alloc(8,0));var ivBits=8*len,tail=Buffer.alloc(8);tail.writeUIntBE(ivBits,0,8),ghash.update(tail),self._finID=ghash.state;var out=Buffer.from(self._finID);return incr32(out),out}(this,iv,ck),this._prev=Buffer.from(iv),this._cache=Buffer.allocUnsafe(0),this._secCache=Buffer.allocUnsafe(0),this._decrypt=decrypt,this._alen=0,this._len=0,this._mode=mode,this._authTag=null,this._called=!1}inherits(StreamCipher,Transform),StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;rump<16&&(rump=Buffer.alloc(rump,0),this._ghash.update(rump))}this._called=!0;var out=this._mode.encrypt(this,chunk);return this._decrypt?this._ghash.update(chunk):this._ghash.update(out),this._len+=chunk.length,out},StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var tag=xor(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(a,b){var out=0;a.length!==b.length&&out++;for(var len=Math.min(a.length,b.length),i=0;i16)throw new Error("unable to decrypt data");var i=-1;for(;++i16)return out=this.cache.slice(0,16),this.cache=this.cache.slice(16),out}else if(this.cache.length>=16)return out=this.cache.slice(0,16),this.cache=this.cache.slice(16),out;return null},Splitter.prototype.flush=function(){if(this.cache.length)return this.cache},exports.createDecipher=function(suite,password){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");var keys=ebtk(password,!1,config.key,config.iv);return createDecipheriv(suite,keys.key,keys.iv)},exports.createDecipheriv=createDecipheriv},{"./aes":21,"./authCipher":22,"./modes":34,"./streamCipher":37,"cipher-base":65,evp_bytestokey:102,inherits:133,"safe-buffer":162}],25:[function(require,module,exports){var MODES=require("./modes"),AuthCipher=require("./authCipher"),Buffer=require("safe-buffer").Buffer,StreamCipher=require("./streamCipher"),Transform=require("cipher-base"),aes=require("./aes"),ebtk=require("evp_bytestokey");function Cipher(mode,key,iv){Transform.call(this),this._cache=new Splitter,this._cipher=new aes.AES(key),this._prev=Buffer.from(iv),this._mode=mode,this._autopadding=!0}require("inherits")(Cipher,Transform),Cipher.prototype._update=function(data){var chunk,thing;this._cache.add(data);for(var out=[];chunk=this._cache.get();)thing=this._mode.encrypt(this,chunk),out.push(thing);return Buffer.concat(out)};var PADDING=Buffer.alloc(16,16);function Splitter(){this.cache=Buffer.allocUnsafe(0)}function createCipheriv(suite,password,iv){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");if("string"==typeof password&&(password=Buffer.from(password)),password.length!==config.key/8)throw new TypeError("invalid key length "+password.length);if("string"==typeof iv&&(iv=Buffer.from(iv)),"GCM"!==config.mode&&iv.length!==config.iv)throw new TypeError("invalid iv length "+iv.length);return"stream"===config.type?new StreamCipher(config.module,password,iv):"auth"===config.type?new AuthCipher(config.module,password,iv):new Cipher(config.module,password,iv)}Cipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding)return chunk=this._mode.encrypt(this,chunk),this._cipher.scrub(),chunk;if(!chunk.equals(PADDING))throw this._cipher.scrub(),new Error("data not multiple of block length")},Cipher.prototype.setAutoPadding=function(setTo){return this._autopadding=!!setTo,this},Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])},Splitter.prototype.get=function(){if(this.cache.length>15){var out=this.cache.slice(0,16);return this.cache=this.cache.slice(16),out}return null},Splitter.prototype.flush=function(){for(var len=16-this.cache.length,padBuff=Buffer.allocUnsafe(len),i=-1;++i>>0,0),buf.writeUInt32BE(out[1]>>>0,4),buf.writeUInt32BE(out[2]>>>0,8),buf.writeUInt32BE(out[3]>>>0,12),buf}function GHASH(key){this.h=key,this.state=Buffer.alloc(16,0),this.cache=Buffer.allocUnsafe(0)}GHASH.prototype.ghash=function(block){for(var i=-1;++i0;j--)Vi[j]=Vi[j]>>>1|(1&Vi[j-1])<<31;Vi[0]=Vi[0]>>>1,lsbVi&&(Vi[0]=Vi[0]^225<<24)}this.state=fromArray(Zi)},GHASH.prototype.update=function(buf){var chunk;for(this.cache=Buffer.concat([this.cache,buf]);this.cache.length>=16;)chunk=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(chunk)},GHASH.prototype.final=function(abl,bl){return this.cache.length&&this.ghash(Buffer.concat([this.cache,ZEROES],16)),this.ghash(fromArray([0,abl,0,bl])),this.state},module.exports=GHASH},{"safe-buffer":162}],27:[function(require,module,exports){module.exports=function(iv){for(var item,len=iv.length;len--;){if(255!==(item=iv.readUInt8(len))){item++,iv.writeUInt8(item,len);break}iv.writeUInt8(0,len)}}},{}],28:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);return self._prev=self._cipher.encryptBlock(data),self._prev},exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":63}],29:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,xor=require("buffer-xor");function encryptStart(self,data,decrypt){var len=data.length,out=xor(data,self._cache);return self._cache=self._cache.slice(len),self._prev=Buffer.concat([self._prev,decrypt?data:out]),out}exports.encrypt=function(self,data,decrypt){for(var len,out=Buffer.allocUnsafe(0);data.length;){if(0===self._cache.length&&(self._cache=self._cipher.encryptBlock(self._prev),self._prev=Buffer.allocUnsafe(0)),!(self._cache.length<=data.length)){out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}len=self._cache.length,out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]),data=data.slice(len)}return out}},{"buffer-xor":63,"safe-buffer":162}],30:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function encryptByte(self,byteParam,decrypt){for(var bit,value,i=-1,out=0;++i<8;)bit=byteParam&1<<7-i?128:0,out+=(128&(value=self._cipher.encryptBlock(self._prev)[0]^bit))>>i%8,self._prev=shiftIn(self._prev,decrypt?bit:value);return out}function shiftIn(buffer,value){var len=buffer.length,i=-1,out=Buffer.allocUnsafe(buffer.length);for(buffer=Buffer.concat([buffer,Buffer.from([value])]);++i>7;return out}exports.encrypt=function(self,chunk,decrypt){for(var len=chunk.length,out=Buffer.allocUnsafe(len),i=-1;++i=0||!r.umod(priv.prime1)||!r.umod(priv.prime2));return r}function crt(msg,priv){var blinds=function(priv){var r=getr(priv);return{blinder:r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed(),unblinder:r.invm(priv.modulus)}}(priv),len=priv.modulus.byteLength(),blinded=new BN(msg).mul(blinds.blinder).umod(priv.modulus),c1=blinded.toRed(BN.mont(priv.prime1)),c2=blinded.toRed(BN.mont(priv.prime2)),qinv=priv.coefficient,p=priv.prime1,q=priv.prime2,m1=c1.redPow(priv.exponent1).fromRed(),m2=c2.redPow(priv.exponent2).fromRed(),h=m1.isub(m2).imul(qinv).umod(p).imul(q);return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer,"be",len)}crt.getr=getr,module.exports=crt}).call(this)}).call(this,require("buffer").Buffer)},{"bn.js":18,buffer:64,randombytes:159}],42:[function(require,module,exports){"use strict";module.exports=require("./browser/algorithms.json")},{"./browser/algorithms.json":43}],43:[function(require,module,exports){module.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],44:[function(require,module,exports){module.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],45:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,createHash=require("create-hash"),stream=require("readable-stream"),inherits=require("inherits"),sign=require("./sign"),verify=require("./verify"),algorithms=require("./algorithms.json");function Sign(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hashType=data.hash,this._hash=createHash(data.hash),this._tag=data.id,this._signType=data.sign}function Verify(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hash=createHash(data.hash),this._tag=data.id,this._signType=data.sign}function createSign(algorithm){return new Sign(algorithm)}function createVerify(algorithm){return new Verify(algorithm)}Object.keys(algorithms).forEach((function(key){algorithms[key].id=Buffer.from(algorithms[key].id,"hex"),algorithms[key.toLowerCase()]=algorithms[key]})),inherits(Sign,stream.Writable),Sign.prototype._write=function(data,_,done){this._hash.update(data),done()},Sign.prototype.update=function(data,enc){return this._hash.update("string"==typeof data?Buffer.from(data,enc):data),this},Sign.prototype.sign=function(key,enc){this.end();var hash=this._hash.digest(),sig=sign(hash,key,this._hashType,this._signType,this._tag);return enc?sig.toString(enc):sig},inherits(Verify,stream.Writable),Verify.prototype._write=function(data,_,done){this._hash.update(data),done()},Verify.prototype.update=function(data,enc){return this._hash.update("string"==typeof data?Buffer.from(data,enc):data),this},Verify.prototype.verify=function(key,sig,enc){var sigBuffer="string"==typeof sig?Buffer.from(sig,enc):sig;this.end();var hash=this._hash.digest();return verify(sigBuffer,hash,key,this._signType,this._tag)},module.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify}},{"./algorithms.json":43,"./sign":46,"./verify":47,"create-hash":68,inherits:133,"readable-stream":62,"safe-buffer":162}],46:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,createHmac=require("create-hmac"),crt=require("browserify-rsa"),EC=require("elliptic").ec,BN=require("bn.js"),parseKeys=require("parse-asn1"),curves=require("./curves.json");function getKey(x,q,hash,algo){if((x=Buffer.from(x.toArray())).length0&&bits.ishrn(shift),bits}function makeKey(q,kv,algo){var t,k;do{for(t=Buffer.alloc(0);8*t.length=0)throw new Error("invalid sig")}module.exports=function(sig,hash,key,signType,tag){var pub=parseKeys(key);if("ec"===pub.type){if("ecdsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");return function(sig,hash,pub){var curveId=curves[pub.data.algorithm.curve.join(".")];if(!curveId)throw new Error("unknown curve "+pub.data.algorithm.curve.join("."));var curve=new EC(curveId),pubkey=pub.data.subjectPrivateKey.data;return curve.verify(hash,sig,pubkey)}(sig,hash,pub)}if("dsa"===pub.type){if("dsa"!==signType)throw new Error("wrong public key type");return function(sig,hash,pub){var p=pub.data.p,q=pub.data.q,g=pub.data.g,y=pub.data.pub_key,unpacked=parseKeys.signature.decode(sig,"der"),s=unpacked.s,r=unpacked.r;checkValue(s,q),checkValue(r,q);var montp=BN.mont(p),w=s.invm(q),v=g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);return 0===v.cmp(r)}(sig,hash,pub)}if("rsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");hash=Buffer.concat([tag,hash]);for(var len=pub.modulus.byteLength(),pad=[1],padNum=0;hash.length+pad.length+22?"one of ".concat(thing," ").concat(expected.slice(0,len-1).join(", "),", or ")+expected[len-1]:2===len?"one of ".concat(thing," ").concat(expected[0]," or ").concat(expected[1]):"of ".concat(thing," ").concat(expected[0])}return"of ".concat(thing," ").concat(String(expected))}createErrorType("ERR_INVALID_OPT_VALUE",(function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'}),TypeError),createErrorType("ERR_INVALID_ARG_TYPE",(function(name,expected,actual){var determiner,search,pos,msg;if("string"==typeof expected&&(search="not ",expected.substr(!pos||pos<0?0:+pos,search.length)===search)?(determiner="must not be",expected=expected.replace(/^not /,"")):determiner="must be",function(str,search,this_len){return(void 0===this_len||this_len>str.length)&&(this_len=str.length),str.substring(this_len-search.length,this_len)===search}(name," argument"))msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,"type"));else{var type=function(str,search,start){return"number"!=typeof start&&(start=0),!(start+search.length>str.length)&&-1!==str.indexOf(search,start)}(name,".")?"property":"argument";msg='The "'.concat(name,'" ').concat(type," ").concat(determiner," ").concat(oneOf(expected,"type"))}return msg+=". Received type ".concat(typeof actual)}),TypeError),createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),createErrorType("ERR_METHOD_NOT_IMPLEMENTED",(function(name){return"The "+name+" method is not implemented"})),createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close"),createErrorType("ERR_STREAM_DESTROYED",(function(name){return"Cannot call "+name+" after a stream was destroyed"})),createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end"),createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),createErrorType("ERR_UNKNOWN_ENCODING",(function(arg){return"Unknown encoding: "+arg}),TypeError),createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),module.exports.codes=codes},{}],49:[function(require,module,exports){(function(process){(function(){"use strict";var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};module.exports=Duplex;var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");require("inherits")(Duplex,Readable);for(var keys=objectKeys(Writable.prototype),v=0;v0)if("string"==typeof chunk||state.objectMode||Object.getPrototypeOf(chunk)===Buffer.prototype||(chunk=function(chunk){return Buffer.from(chunk)}(chunk)),addToFront)state.endEmitted?errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT):addChunk(stream,state,chunk,!0);else if(state.ended)errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF);else{if(state.destroyed)return!1;state.reading=!1,state.decoder&&!encoding?(chunk=state.decoder.write(chunk),state.objectMode||0!==chunk.length?addChunk(stream,state,chunk,!1):maybeReadMore(stream,state)):addChunk(stream,state,chunk,!1)}else addToFront||(state.reading=!1,maybeReadMore(stream,state));return!state.ended&&(state.lengthstate.highWaterMark&&(state.highWaterMark=function(n){return n>=MAX_HWM?n=MAX_HWM:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}(n)),n<=state.length?n:state.ended?state.length:(state.needReadable=!0,0))}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable),state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream))}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended),state.destroyed||!state.length&&!state.ended||(stream.emit("readable"),state.emittedReadable=!1),state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(;!state.reading&&!state.ended&&(state.length0,state.resumeScheduled&&!state.paused?state.flowing=!0:self.listenerCount("data")>0&&self.resume()}function nReadingNextTick(self){debug("readable nexttick read 0"),self.read(0)}function resume_(stream,state){debug("resume",state.reading),state.reading||stream.read(0),state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}function flow(stream){var state=stream._readableState;for(debug("flow",state.flowing);state.flowing&&null!==stream.read(););}function fromList(n,state){return 0===state.length?null:(state.objectMode?ret=state.buffer.shift():!n||n>=state.length?(ret=state.decoder?state.buffer.join(""):1===state.buffer.length?state.buffer.first():state.buffer.concat(state.length),state.buffer.clear()):ret=state.buffer.consume(n,state.decoder),ret);var ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted),state.endEmitted||(state.ended=!0,process.nextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){if(debug("endReadableNT",state.endEmitted,state.length),!state.endEmitted&&0===state.length&&(state.endEmitted=!0,stream.readable=!1,stream.emit("end"),state.autoDestroy)){var wState=stream._writableState;(!wState||wState.autoDestroy&&wState.finished)&&stream.destroy()}}function indexOf(xs,x){for(var i=0,l=xs.length;i=state.highWaterMark:state.length>0)||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(0===(n=howMuchToRead(n,state))&&state.ended)return 0===state.length&&endReadable(this),null;var ret,doRead=state.needReadable;return debug("need readable",doRead),(0===state.length||state.length-n0?fromList(n,state):null)?(state.needReadable=state.length<=state.highWaterMark,n=0):(state.length-=n,state.awaitDrain=0),0===state.length&&(state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&endReadable(this)),null!==ret&&this.emit("data",ret),ret},Readable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED("_read()"))},Readable.prototype.pipe=function(dest,pipeOpts){var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var endFn=(!pipeOpts||!1!==pipeOpts.end)&&dest!==process.stdout&&dest!==process.stderr?onend:unpipe;function onunpipe(readable,unpipeInfo){debug("onunpipe"),readable===src&&unpipeInfo&&!1===unpipeInfo.hasUnpiped&&(unpipeInfo.hasUnpiped=!0,debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",unpipe),src.removeListener("data",ondata),cleanedUp=!0,!state.awaitDrain||dest._writableState&&!dest._writableState.needDrain||ondrain())}function onend(){debug("onend"),dest.end()}state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=function(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,0===state.awaitDrain&&EElistenerCount(src,"data")&&(state.flowing=!0,flow(src))}}(src);dest.on("drain",ondrain);var cleanedUp=!1;function ondata(chunk){debug("ondata");var ret=dest.write(chunk);debug("dest.write",ret),!1===ret&&((1===state.pipesCount&&state.pipes===dest||state.pipesCount>1&&-1!==indexOf(state.pipes,dest))&&!cleanedUp&&(debug("false write response, pause",state.awaitDrain),state.awaitDrain++),src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),0===EElistenerCount(dest,"error")&&errorOrDestroy(dest,er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}function unpipe(){debug("unpipe"),src.unpipe(dest)}return src.on("data",ondata),function(emitter,event,fn){if("function"==typeof emitter.prependListener)return emitter.prependListener(event,fn);emitter._events&&emitter._events[event]?Array.isArray(emitter._events[event])?emitter._events[event].unshift(fn):emitter._events[event]=[fn,emitter._events[event]]:emitter.on(event,fn)}(dest,"error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState,unpipeInfo={hasUnpiped:!1};if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes||(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this,unpipeInfo)),this;if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;i0,!1!==state.flowing&&this.resume()):"readable"===ev&&(state.endEmitted||state.readableListening||(state.readableListening=state.needReadable=!0,state.flowing=!1,state.emittedReadable=!1,debug("on readable",state.length,state.reading),state.length?emitReadable(this):state.reading||process.nextTick(nReadingNextTick,this))),res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);return"readable"===ev&&process.nextTick(updateReadableListening,this),res},Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);return"readable"!==ev&&void 0!==ev||process.nextTick(updateReadableListening,this),res},Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!state.readableListening,function(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,process.nextTick(resume_,stream,state))}(this,state)),state.paused=!1,this},Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},Readable.prototype.wrap=function(stream){var _this=this,state=this._readableState,paused=!1;for(var i in stream.on("end",(function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&_this.push(chunk)}_this.push(null)})),stream.on("data",(function(chunk){(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),state.objectMode&&null==chunk)||(state.objectMode||chunk&&chunk.length)&&(_this.push(chunk)||(paused=!0,stream.pause()))})),stream)void 0===this[i]&&"function"==typeof stream[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));for(var n=0;n-1))throw new ERR_UNKNOWN_ENCODING(encoding);return this._writableState.defaultEncoding=encoding,this},Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"))},Writable.prototype._writev=null,Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;return"function"==typeof chunk?(cb=chunk,chunk=null,encoding=null):"function"==typeof encoding&&(cb=encoding,encoding=null),null!=chunk&&this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||function(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb));state.ended=!0,stream.writable=!1}(this,state,cb),this},Object.defineProperty(Writable.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(Writable.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(value){this._writableState&&(this._writableState.destroyed=value)}}),Writable.prototype.destroy=destroyImpl.destroy,Writable.prototype._undestroy=destroyImpl.undestroy,Writable.prototype._destroy=function(err,cb){cb(err)}}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../errors":48,"./_stream_duplex":49,"./internal/streams/destroy":56,"./internal/streams/state":60,"./internal/streams/stream":61,_process:151,buffer:64,inherits:133,"util-deprecate":188}],54:[function(require,module,exports){(function(process){(function(){"use strict";var _Object$setPrototypeO;function _defineProperty(obj,key,value){return(key=function(arg){var key=function(input,hint){if("object"!=typeof input||null===input)return input;var prim=input[Symbol.toPrimitive];if(void 0!==prim){var res=prim.call(input,hint||"default");if("object"!=typeof res)return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===hint?String:Number)(input)}(arg,"string");return"symbol"==typeof key?key:String(key)}(key))in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}var finished=require("./end-of-stream"),kLastResolve=Symbol("lastResolve"),kLastReject=Symbol("lastReject"),kError=Symbol("error"),kEnded=Symbol("ended"),kLastPromise=Symbol("lastPromise"),kHandlePromise=Symbol("handlePromise"),kStream=Symbol("stream");function createIterResult(value,done){return{value:value,done:done}}function readAndResolve(iter){var resolve=iter[kLastResolve];if(null!==resolve){var data=iter[kStream].read();null!==data&&(iter[kLastPromise]=null,iter[kLastResolve]=null,iter[kLastReject]=null,resolve(createIterResult(data,!1)))}}function onReadable(iter){process.nextTick(readAndResolve,iter)}var AsyncIteratorPrototype=Object.getPrototypeOf((function(){})),ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_defineProperty(_Object$setPrototypeO={get stream(){return this[kStream]},next:function(){var _this=this,error=this[kError];if(null!==error)return Promise.reject(error);if(this[kEnded])return Promise.resolve(createIterResult(void 0,!0));if(this[kStream].destroyed)return new Promise((function(resolve,reject){process.nextTick((function(){_this[kError]?reject(_this[kError]):resolve(createIterResult(void 0,!0))}))}));var promise,lastPromise=this[kLastPromise];if(lastPromise)promise=new Promise(function(lastPromise,iter){return function(resolve,reject){lastPromise.then((function(){iter[kEnded]?resolve(createIterResult(void 0,!0)):iter[kHandlePromise](resolve,reject)}),reject)}}(lastPromise,this));else{var data=this[kStream].read();if(null!==data)return Promise.resolve(createIterResult(data,!1));promise=new Promise(this[kHandlePromise])}return this[kLastPromise]=promise,promise}},Symbol.asyncIterator,(function(){return this})),_defineProperty(_Object$setPrototypeO,"return",(function(){var _this2=this;return new Promise((function(resolve,reject){_this2[kStream].destroy(null,(function(err){err?reject(err):resolve(createIterResult(void 0,!0))}))}))})),_Object$setPrototypeO),AsyncIteratorPrototype);module.exports=function(stream){var _Object$create,iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_defineProperty(_Object$create={},kStream,{value:stream,writable:!0}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:!0}),_defineProperty(_Object$create,kLastReject,{value:null,writable:!0}),_defineProperty(_Object$create,kError,{value:null,writable:!0}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:!0}),_defineProperty(_Object$create,kHandlePromise,{value:function(resolve,reject){var data=iterator[kStream].read();data?(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(data,!1))):(iterator[kLastResolve]=resolve,iterator[kLastReject]=reject)},writable:!0}),_Object$create));return iterator[kLastPromise]=null,finished(stream,(function(err){if(err&&"ERR_STREAM_PREMATURE_CLOSE"!==err.code){var reject=iterator[kLastReject];return null!==reject&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,reject(err)),void(iterator[kError]=err)}var resolve=iterator[kLastResolve];null!==resolve&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(void 0,!0))),iterator[kEnded]=!0})),stream.on("readable",onReadable.bind(null,iterator)),iterator}}).call(this)}).call(this,require("_process"))},{"./end-of-stream":57,_process:151}],55:[function(require,module,exports){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i0?this.tail.next=entry:this.head=entry,this.tail=entry,++this.length}},{key:"unshift",value:function(v){var entry={data:v,next:this.head};0===this.length&&(this.tail=entry),this.head=entry,++this.length}},{key:"shift",value:function(){if(0!==this.length){var ret=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,ret}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(s){if(0===this.length)return"";for(var p=this.head,ret=""+p.data;p=p.next;)ret+=s+p.data;return ret}},{key:"concat",value:function(n){if(0===this.length)return Buffer.alloc(0);for(var src,target,offset,ret=Buffer.allocUnsafe(n>>>0),p=this.head,i=0;p;)src=p.data,target=ret,offset=i,Buffer.prototype.copy.call(src,target,offset),i+=p.data.length,p=p.next;return ret}},{key:"consume",value:function(n,hasStrings){var ret;return nstr.length?str.length:n;if(nb===str.length?ret+=str:ret+=str.slice(0,n),0==(n-=nb)){nb===str.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=str.slice(nb));break}++c}return this.length-=c,ret}},{key:"_getBuffer",value:function(n){var ret=Buffer.allocUnsafe(n),p=this.head,c=1;for(p.data.copy(ret),n-=p.data.length;p=p.next;){var buf=p.data,nb=n>buf.length?buf.length:n;if(buf.copy(ret,ret.length-n,0,nb),0==(n-=nb)){nb===buf.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=buf.slice(nb));break}++c}return this.length-=c,ret}},{key:custom,value:function(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{depth:0,customInspect:!1}))}}])&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),BufferList}()},{buffer:64,util:20}],56:[function(require,module,exports){(function(process){(function(){"use strict";function emitErrorAndCloseNT(self,err){emitErrorNT(self,err),emitCloseNT(self)}function emitCloseNT(self){self._writableState&&!self._writableState.emitClose||self._readableState&&!self._readableState.emitClose||self.emit("close")}function emitErrorNT(self,err){self.emit("error",err)}module.exports={destroy:function(err,cb){var _this=this,readableDestroyed=this._readableState&&this._readableState.destroyed,writableDestroyed=this._writableState&&this._writableState.destroyed;return readableDestroyed||writableDestroyed?(cb?cb(err):err&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,err)):process.nextTick(emitErrorNT,this,err)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(err||null,(function(err){!cb&&err?_this._writableState?_this._writableState.errorEmitted?process.nextTick(emitCloseNT,_this):(_this._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,_this,err)):process.nextTick(emitErrorAndCloseNT,_this,err):cb?(process.nextTick(emitCloseNT,_this),cb(err)):process.nextTick(emitCloseNT,_this)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(stream,err){var rState=stream._readableState,wState=stream._writableState;rState&&rState.autoDestroy||wState&&wState.autoDestroy?stream.destroy(err):stream.emit("error",err)}}}).call(this)}).call(this,require("_process"))},{_process:151}],57:[function(require,module,exports){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function noop(){}module.exports=function eos(stream,opts,callback){if("function"==typeof opts)return eos(stream,null,opts);opts||(opts={}),callback=function(callback){var called=!1;return function(){if(!called){called=!0;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];callback.apply(this,args)}}}(callback||noop);var readable=opts.readable||!1!==opts.readable&&stream.readable,writable=opts.writable||!1!==opts.writable&&stream.writable,onlegacyfinish=function(){stream.writable||onfinish()},writableEnded=stream._writableState&&stream._writableState.finished,onfinish=function(){writable=!1,writableEnded=!0,readable||callback.call(stream)},readableEnded=stream._readableState&&stream._readableState.endEmitted,onend=function(){readable=!1,readableEnded=!0,writable||callback.call(stream)},onerror=function(err){callback.call(stream,err)},onclose=function(){var err;return readable&&!readableEnded?(stream._readableState&&stream._readableState.ended||(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)):writable&&!writableEnded?(stream._writableState&&stream._writableState.ended||(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)):void 0},onrequest=function(){stream.req.on("finish",onfinish)};return!function(stream){return stream.setHeader&&"function"==typeof stream.abort}(stream)?writable&&!stream._writableState&&(stream.on("end",onlegacyfinish),stream.on("close",onlegacyfinish)):(stream.on("complete",onfinish),stream.on("abort",onclose),stream.req?onrequest():stream.on("request",onrequest)),stream.on("end",onend),stream.on("finish",onfinish),!1!==opts.error&&stream.on("error",onerror),stream.on("close",onclose),function(){stream.removeListener("complete",onfinish),stream.removeListener("abort",onclose),stream.removeListener("request",onrequest),stream.req&&stream.req.removeListener("finish",onfinish),stream.removeListener("end",onlegacyfinish),stream.removeListener("close",onlegacyfinish),stream.removeListener("finish",onfinish),stream.removeListener("end",onend),stream.removeListener("error",onerror),stream.removeListener("close",onclose)}}},{"../../../errors":48}],58:[function(require,module,exports){module.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],59:[function(require,module,exports){"use strict";var eos;var _require$codes=require("../../../errors").codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}module.exports=function(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++)streams[_key]=arguments[_key];var error,callback=function(streams){return streams.length?"function"!=typeof streams[streams.length-1]?noop:streams.pop():noop}(streams);if(Array.isArray(streams[0])&&(streams=streams[0]),streams.length<2)throw new ERR_MISSING_ARGS("streams");var destroys=streams.map((function(stream,i){var reading=i0,(function(err){error||(error=err),err&&destroys.forEach(call),reading||(destroys.forEach(call),callback(error))}))}));return streams.reduce(pipe)}},{"../../../errors":48,"./end-of-stream":57}],60:[function(require,module,exports){"use strict";var ERR_INVALID_OPT_VALUE=require("../../../errors").codes.ERR_INVALID_OPT_VALUE;module.exports={getHighWaterMark:function(state,options,duplexKey,isDuplex){var hwm=function(options,isDuplex,duplexKey){return null!=options.highWaterMark?options.highWaterMark:isDuplex?options[duplexKey]:null}(options,isDuplex,duplexKey);if(null!=hwm){if(!isFinite(hwm)||Math.floor(hwm)!==hwm||hwm<0)throw new ERR_INVALID_OPT_VALUE(isDuplex?duplexKey:"highWaterMark",hwm);return Math.floor(hwm)}return state.objectMode?16:16384}}},{"../../../errors":48}],61:[function(require,module,exports){module.exports=require("events").EventEmitter},{events:101}],62:[function(require,module,exports){(exports=module.exports=require("./lib/_stream_readable.js")).Stream=exports,exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js"),exports.finished=require("./lib/internal/streams/end-of-stream.js"),exports.pipeline=require("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":49,"./lib/_stream_passthrough.js":50,"./lib/_stream_readable.js":51,"./lib/_stream_transform.js":52,"./lib/_stream_writable.js":53,"./lib/internal/streams/end-of-stream.js":57,"./lib/internal/streams/pipeline.js":59}],63:[function(require,module,exports){(function(Buffer){(function(){module.exports=function(a,b){for(var length=Math.min(a.length,b.length),buffer=new Buffer(length),i=0;i + * @license MIT + */ +"use strict";var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=function(length){+length!=length&&(length=0);return Buffer.alloc(+length)},exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return buf.__proto__=Buffer.prototype,buf}function Buffer(arg,encodingOrOffset,length){if("number"==typeof arg){if("string"==typeof encodingOrOffset)throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}function from(value,encodingOrOffset,length){if("string"==typeof value)return function(string,encoding){"string"==typeof encoding&&""!==encoding||(encoding="utf8");if(!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=0|byteLength(string,encoding),buf=createBuffer(length),actual=buf.write(string,encoding);actual!==length&&(buf=buf.slice(0,actual));return buf}(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayLike(value);if(null==value)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer))return function(array,byteOffset,length){if(byteOffset<0||array.byteLength=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return 0|length}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if("string"!=typeof string)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&!0===arguments[2];if(!mustMatch&&0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||start<0)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),end<=0)return"";if((end>>>=0)<=(start>>>=0))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),numberIsNaN(byteOffset=+byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val&=255,"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var i,indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&("ucs2"===(encoding=String(encoding).toLowerCase())||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;jremaining&&(length=remaining):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end)switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:128==(192&(secondByte=buf[i+1]))&&(tempCodePoint=(31&firstByte)<<6|63&secondByte)>127&&(codePoint=tempCodePoint);break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128==(192&secondByte)&&128==(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte)>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint);break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128==(192&secondByte)&&128==(192&thirdByte)&&128==(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte)>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint)}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return function(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);var res="",i=0;for(;imax&&(str+=" ... "),""},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer.from(target,target.offset,target.byteLength)),!Buffer.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(this===target)return 0;for(var x=(thisEnd>>>=0)-(thisStart>>>=0),y=(end>>>=0)-(start>>>=0),len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i>>=0,isFinite(length)?(length>>>=0,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;ilen)&&(end=len);for(var out="",i=start;ilength)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,4),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,8),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer.prototype.slice=function(start,end){var len=this.length;(start=~~start)<0?(start+=len)<0&&(start=0):start>len&&(start=len),(end=void 0===end?len:~~end)<0?(end+=len)<0&&(end=0):end>len&&(end=len),end>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return val>=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){(value=+value,offset>>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var mul=1,i=0;for(this[offset]=255&value;++i>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value,offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++i>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)value<0&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart=0;--i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(1===val.length){var code=val.charCodeAt(0);("utf8"===encoding&&code<128||"latin1"===encoding)&&(val=code)}}else"number"==typeof val&&(val&=255);if(start<0||this.length>>=0,end=void 0===end?this.length:end>>>0,val||(val=0),"number"==typeof val)for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=65536+(leadSurrogate-55296<<10|codePoint-56320)}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(codePoint<1114112))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function base64ToBytes(str){return base64.toByteArray(function(str){if((str=(str=str.split("=")[0]).trim().replace(INVALID_BASE64_RE,"")).length<2)return"";for(;str.length%4!=0;)str+="=";return str}(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||null!=obj&&null!=obj.constructor&&null!=obj.constructor.name&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!=obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":17,buffer:64,ieee754:132}],65:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,Transform=require("stream").Transform,StringDecoder=require("string_decoder").StringDecoder;function CipherBase(hashMode){Transform.call(this),this.hashMode="string"==typeof hashMode,this.hashMode?this[hashMode]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}require("inherits")(CipherBase,Transform),CipherBase.prototype.update=function(data,inputEnc,outputEnc){"string"==typeof data&&(data=Buffer.from(data,inputEnc));var outData=this._update(data);return this.hashMode?this:(outputEnc&&(outData=this._toString(outData,outputEnc)),outData)},CipherBase.prototype.setAutoPadding=function(){},CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},CipherBase.prototype._transform=function(data,_,next){var err;try{this.hashMode?this._update(data):this.push(this._update(data))}catch(e){err=e}finally{next(err)}},CipherBase.prototype._flush=function(done){var err;try{this.push(this.__final())}catch(e){err=e}done(err)},CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this.__final()||Buffer.alloc(0);return outputEnc&&(outData=this._toString(outData,outputEnc,!0)),outData},CipherBase.prototype._toString=function(value,enc,fin){if(this._decoder||(this._decoder=new StringDecoder(enc),this._encoding=enc),this._encoding!==enc)throw new Error("can't switch encodings");var out=this._decoder.write(value);return fin&&(out+=this._decoder.end()),out},module.exports=CipherBase},{inherits:133,"safe-buffer":162,stream:172,string_decoder:187}],66:[function(require,module,exports){(function(Buffer){(function(){var elliptic=require("elliptic"),BN=require("bn.js");module.exports=function(curve){return new ECDH(curve)};var aliases={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function ECDH(curve){this.curveType=aliases[curve],this.curveType||(this.curveType={name:curve}),this.curve=new elliptic.ec(this.curveType.name),this.keys=void 0}function formatReturnValue(bn,enc,len){Array.isArray(bn)||(bn=bn.toArray());var buf=new Buffer(bn);if(len&&buf.lengthblocksize)?key=("rmd160"===alg?new RIPEMD160:sha(alg)).update(key).digest():key.length64?key=alg(key):key.length<64&&(key=Buffer.concat([key,ZEROS],64));for(var ipad=this._ipad=Buffer.allocUnsafe(64),opad=this._opad=Buffer.allocUnsafe(64),i=0;i<64;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=[ipad]}inherits(Hmac,Base),Hmac.prototype._update=function(data){this._hash.push(data)},Hmac.prototype._final=function(){var h=this._alg(Buffer.concat(this._hash));return this._alg(Buffer.concat([this._opad,h]))},module.exports=Hmac},{"cipher-base":65,inherits:133,"safe-buffer":162}],72:[function(require,module,exports){"use strict";exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require("randombytes"),exports.createHash=exports.Hash=require("create-hash"),exports.createHmac=exports.Hmac=require("create-hmac");var algos=require("browserify-sign/algos"),algoKeys=Object.keys(algos),hashes=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(algoKeys);exports.getHashes=function(){return hashes};var p=require("pbkdf2");exports.pbkdf2=p.pbkdf2,exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require("browserify-cipher");exports.Cipher=aes.Cipher,exports.createCipher=aes.createCipher,exports.Cipheriv=aes.Cipheriv,exports.createCipheriv=aes.createCipheriv,exports.Decipher=aes.Decipher,exports.createDecipher=aes.createDecipher,exports.Decipheriv=aes.Decipheriv,exports.createDecipheriv=aes.createDecipheriv,exports.getCiphers=aes.getCiphers,exports.listCiphers=aes.listCiphers;var dh=require("diffie-hellman");exports.DiffieHellmanGroup=dh.DiffieHellmanGroup,exports.createDiffieHellmanGroup=dh.createDiffieHellmanGroup,exports.getDiffieHellman=dh.getDiffieHellman,exports.createDiffieHellman=dh.createDiffieHellman,exports.DiffieHellman=dh.DiffieHellman;var sign=require("browserify-sign");exports.createSign=sign.createSign,exports.Sign=sign.Sign,exports.createVerify=sign.createVerify,exports.Verify=sign.Verify,exports.createECDH=require("create-ecdh");var publicEncrypt=require("public-encrypt");exports.publicEncrypt=publicEncrypt.publicEncrypt,exports.privateEncrypt=publicEncrypt.privateEncrypt,exports.publicDecrypt=publicEncrypt.publicDecrypt,exports.privateDecrypt=publicEncrypt.privateDecrypt;var rf=require("randomfill");exports.randomFill=rf.randomFill,exports.randomFillSync=rf.randomFillSync,exports.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},exports.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{"browserify-cipher":38,"browserify-sign":45,"browserify-sign/algos":42,"create-ecdh":66,"create-hash":68,"create-hmac":70,"diffie-hellman":79,pbkdf2:145,"public-encrypt":152,randombytes:159,randomfill:160}],73:[function(require,module,exports){"use strict";exports.utils=require("./des/utils"),exports.Cipher=require("./des/cipher"),exports.DES=require("./des/des"),exports.CBC=require("./des/cbc"),exports.EDE=require("./des/ede")},{"./des/cbc":74,"./des/cipher":75,"./des/des":76,"./des/ede":77,"./des/utils":78}],74:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert"),inherits=require("inherits"),proto={};function CBCState(iv){assert.equal(iv.length,8,"Invalid IV length"),this.iv=new Array(8);for(var i=0;i0;count--)inputOff+=this._buffer(data,inputOff),outputOff+=this._flushBuffer(out,outputOff);return inputOff+=this._buffer(data,inputOff),out},Cipher.prototype.final=function(buffer){var first,last;return buffer&&(first=this.update(buffer)),last="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),first?first.concat(last):last},Cipher.prototype._pad=function(buffer,off){if(0===off)return!1;for(;off>>1];kL=utils.r28shl(kL,shift),kR=utils.r28shl(kR,shift),utils.pc2(kL,kR,state.keys,i)}},DES.prototype._update=function(inp,inOff,out,outOff){var state=this._desState,l=utils.readUInt32BE(inp,inOff),r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0),l=state.tmp[0],r=state.tmp[1],"encrypt"===this.type?this._encrypt(state,l,r,state.tmp,0):this._decrypt(state,l,r,state.tmp,0),l=state.tmp[0],r=state.tmp[1],utils.writeUInt32BE(out,l,outOff),utils.writeUInt32BE(out,r,outOff+4)},DES.prototype._pad=function(buffer,off){if(!1===this.padding)return!1;for(var value=buffer.length-off,i=off;i>>0,l=t}utils.rip(r,l,out,off)},DES.prototype._decrypt=function(state,lStart,rStart,out,off){for(var l=rStart,r=lStart,i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i],keyR=state.keys[i+1];utils.expand(l,state.tmp,0),keyL^=state.tmp[0],keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR),t=l;l=(r^utils.permute(s))>>>0,r=t}utils.rip(l,r,out,off)}},{"./cipher":75,"./utils":78,inherits:133,"minimalistic-assert":137}],77:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert"),inherits=require("inherits"),Cipher=require("./cipher"),DES=require("./des");function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8),k2=key.slice(8,16),k3=key.slice(16,24);this.ciphers="encrypt"===type?[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]:[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt",key:k2}),DES.create({type:"decrypt",key:k1})]}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}inherits(EDE,Cipher),module.exports=EDE,EDE.create=function(options){return new EDE(options)},EDE.prototype._update=function(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff),state.ciphers[1]._update(out,outOff,out,outOff),state.ciphers[2]._update(out,outOff,out,outOff)},EDE.prototype._pad=DES.prototype._pad,EDE.prototype._unpad=DES.prototype._unpad},{"./cipher":75,"./des":76,inherits:133,"minimalistic-assert":137}],78:[function(require,module,exports){"use strict";exports.readUInt32BE=function(bytes,off){return(bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off])>>>0},exports.writeUInt32BE=function(bytes,value,off){bytes[0+off]=value>>>24,bytes[1+off]=value>>>16&255,bytes[2+off]=value>>>8&255,bytes[3+off]=255&value},exports.ip=function(inL,inR,out,off){for(var outL=0,outR=0,i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8)outL<<=1,outL|=inR>>>j+i&1;for(j=0;j<=24;j+=8)outL<<=1,outL|=inL>>>j+i&1}for(i=6;i>=0;i-=2){for(j=1;j<=25;j+=8)outR<<=1,outR|=inR>>>j+i&1;for(j=1;j<=25;j+=8)outR<<=1,outR|=inL>>>j+i&1}out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.rip=function(inL,inR,out,off){for(var outL=0,outR=0,i=0;i<4;i++)for(var j=24;j>=0;j-=8)outL<<=1,outL|=inR>>>j+i&1,outL<<=1,outL|=inL>>>j+i&1;for(i=4;i<8;i++)for(j=24;j>=0;j-=8)outR<<=1,outR|=inR>>>j+i&1,outR<<=1,outR|=inL>>>j+i&1;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.pc1=function(inL,inR,out,off){for(var outL=0,outR=0,i=7;i>=5;i--){for(var j=0;j<=24;j+=8)outL<<=1,outL|=inR>>j+i&1;for(j=0;j<=24;j+=8)outL<<=1,outL|=inL>>j+i&1}for(j=0;j<=24;j+=8)outL<<=1,outL|=inR>>j+i&1;for(i=1;i<=3;i++){for(j=0;j<=24;j+=8)outR<<=1,outR|=inR>>j+i&1;for(j=0;j<=24;j+=8)outR<<=1,outR|=inL>>j+i&1}for(j=0;j<=24;j+=8)outR<<=1,outR|=inL>>j+i&1;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.r28shl=function(num,shift){return num<>>28-shift};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function(inL,inR,out,off){for(var outL=0,outR=0,len=pc2table.length>>>1,i=0;i>>pc2table[i]&1;for(i=len;i>>pc2table[i]&1;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.expand=function(r,out,off){var outL=0,outR=0;outL=(1&r)<<5|r>>>27;for(var i=23;i>=15;i-=4)outL<<=6,outL|=r>>>i&63;for(i=11;i>=3;i-=4)outR|=r>>>i&63,outR<<=6;outR|=(31&r)<<1|r>>>31,out[off+0]=outL>>>0,out[off+1]=outR>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function(inL,inR){for(var out=0,i=0;i<4;i++){out<<=4,out|=sTable[64*i+(inL>>>18-6*i&63)]}for(i=0;i<4;i++){out<<=4,out|=sTable[256+64*i+(inR>>>18-6*i&63)]}return out>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function(num){for(var out=0,i=0;i>>permuteTable[i]&1;return out>>>0},exports.padSplit=function(num,size,group){for(var str=num.toString(2);str.lengthbits;)num.ishrn(1);if(num.isEven()&&num.iadd(ONE),num.testn(1)||num.iadd(TWO),gen.cmp(TWO)){if(!gen.cmp(FIVE))for(;num.mod(TEN).cmp(THREE);)num.iadd(FOUR)}else for(;num.mod(TWENTYFOUR).cmp(ELEVEN);)num.iadd(FOUR);if(simpleSieve(n2=num.shrn(1))&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num))return num}}},{"bn.js":83,"miller-rabin":135,randombytes:159}],82:[function(require,module,exports){module.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],83:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{buffer:20,dup:16}],84:[function(require,module,exports){"use strict";var elliptic=exports;elliptic.version=require("../package.json").version,elliptic.utils=require("./elliptic/utils"),elliptic.rand=require("brorand"),elliptic.curve=require("./elliptic/curve"),elliptic.curves=require("./elliptic/curves"),elliptic.ec=require("./elliptic/ec"),elliptic.eddsa=require("./elliptic/eddsa")},{"../package.json":100,"./elliptic/curve":87,"./elliptic/curves":90,"./elliptic/ec":91,"./elliptic/eddsa":94,"./elliptic/utils":98,brorand:19}],85:[function(require,module,exports){"use strict";var BN=require("bn.js"),utils=require("../utils"),getNAF=utils.getNAF,getJSF=utils.getJSF,assert=utils.assert;function BaseCurve(type,conf){this.type=type,this.p=new BN(conf.p,16),this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p),this.zero=new BN(0).toRed(this.red),this.one=new BN(1).toRed(this.red),this.two=new BN(2).toRed(this.red),this.n=conf.n&&new BN(conf.n,16),this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var adjustCount=this.n&&this.p.div(this.n);!adjustCount||adjustCount.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function BasePoint(curve,type){this.curve=curve,this.type=type,this.precomputed=null}module.exports=BaseCurve,BaseCurve.prototype.point=function(){throw new Error("Not implemented")},BaseCurve.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve.prototype._fixedNafMul=function(p,k){assert(p.precomputed);var doubles=p._getDoubles(),naf=getNAF(k,1,this._bitLength),I=(1<=j;l--)nafW=(nafW<<1)+naf[l];repr.push(nafW)}for(var a=this.jpoint(null,null,null),b=this.jpoint(null,null,null),i=I;i>0;i--){for(j=0;j=0;i--){for(var l=0;i>=0&&0===naf[i];i--)l++;if(i>=0&&l++,acc=acc.dblp(l),i<0)break;var z=naf[i];assert(0!==z),acc="affine"===p.type?z>0?acc.mixedAdd(wnd[z-1>>1]):acc.mixedAdd(wnd[-z-1>>1].neg()):z>0?acc.add(wnd[z-1>>1]):acc.add(wnd[-z-1>>1].neg())}return"affine"===p.type?acc.toP():acc},BaseCurve.prototype._wnafMulAdd=function(defW,points,coeffs,len,jacobianResult){var i,j,p,wndWidth=this._wnafT1,wnd=this._wnafT2,naf=this._wnafT3,max=0;for(i=0;i=1;i-=2){var a=i-1,b=i;if(1===wndWidth[a]&&1===wndWidth[b]){var comb=[points[a],null,null,points[b]];0===points[a].y.cmp(points[b].y)?(comb[1]=points[a].add(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg())):0===points[a].y.cmp(points[b].y.redNeg())?(comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].add(points[b].neg())):(comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg()));var index=[-3,-1,-5,-7,0,7,5,1,3],jsf=getJSF(coeffs[a],coeffs[b]);for(max=Math.max(jsf[0].length,max),naf[a]=new Array(max),naf[b]=new Array(max),j=0;j=0;i--){for(var k=0;i>=0;){var zero=!0;for(j=0;j=0&&k++,acc=acc.dblp(k),i<0)break;for(j=0;j0?p=wnd[j][z-1>>1]:z<0&&(p=wnd[j][-z-1>>1].neg()),acc="affine"===p.type?acc.mixedAdd(p):acc.add(p))}}for(i=0;i=Math.ceil((k.bitLength()+1)/doubles.step)},BasePoint.prototype._getDoubles=function(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var doubles=[this],acc=this,i=0;i":""},Point.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point.prototype._extDbl=function(){var a=this.x.redSqr(),b=this.y.redSqr(),c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a),e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b),g=d.redAdd(b),f=g.redSub(c),h=d.redSub(b),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)},Point.prototype._projDbl=function(){var nx,ny,nz,e,h,j,b=this.x.redAdd(this.y).redSqr(),c=this.x.redSqr(),d=this.y.redSqr();if(this.curve.twisted){var f=(e=this.curve._mulA(c)).redAdd(d);this.zOne?(nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)),ny=f.redMul(e.redSub(d)),nz=f.redSqr().redSub(f).redSub(f)):(h=this.z.redSqr(),j=f.redSub(h).redISub(h),nx=b.redSub(c).redISub(d).redMul(j),ny=f.redMul(e.redSub(d)),nz=f.redMul(j))}else e=c.redAdd(d),h=this.curve._mulC(this.z).redSqr(),j=e.redSub(h).redSub(h),nx=this.curve._mulC(b.redISub(e)).redMul(j),ny=this.curve._mulC(e).redMul(c.redISub(d)),nz=e.redMul(j);return this.curve.point(nx,ny,nz)},Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point.prototype._extAdd=function(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),c=this.t.redMul(this.curve.dd).redMul(p.t),d=this.z.redMul(p.z.redAdd(p.z)),e=b.redSub(a),f=d.redSub(c),g=d.redAdd(c),h=b.redAdd(a),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)},Point.prototype._projAdd=function(p){var ny,nz,a=this.z.redMul(p.z),b=a.redSqr(),c=this.x.redMul(p.x),d=this.y.redMul(p.y),e=this.curve.d.redMul(c).redMul(d),f=b.redSub(e),g=b.redAdd(e),tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d),nx=a.redMul(f).redMul(tmp);return this.curve.twisted?(ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c))),nz=f.redMul(g)):(ny=a.redMul(g).redMul(d.redSub(c)),nz=this.curve._mulC(f).redMul(g)),this.curve.point(nx,ny,nz)},Point.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},Point.prototype.mul=function(k){return this._hasDoubles(k)?this.curve._fixedNafMul(this,k):this.curve._wnafMul(this,k)},Point.prototype.mulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!1)},Point.prototype.jmulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!0)},Point.prototype.normalize=function(){if(this.zOne)return this;var zi=this.z.redInvm();return this.x=this.x.redMul(zi),this.y=this.y.redMul(zi),this.t&&(this.t=this.t.redMul(zi)),this.z=this.curve.one,this.zOne=!0,this},Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point.prototype.eq=function(other){return this===other||0===this.getX().cmp(other.getX())&&0===this.getY().cmp(other.getY())},Point.prototype.eqXToP=function(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(rx))return!0;for(var xc=x.clone(),t=this.curve.redN.redMul(this.z);;){if(xc.iadd(this.curve.n),xc.cmp(this.curve.p)>=0)return!1;if(rx.redIAdd(t),0===this.x.cmp(rx))return!0}},Point.prototype.toP=Point.prototype.normalize,Point.prototype.mixedAdd=Point.prototype.add},{"../utils":98,"./base":85,"bn.js":99,inherits:133}],87:[function(require,module,exports){"use strict";var curve=exports;curve.base=require("./base"),curve.short=require("./short"),curve.mont=require("./mont"),curve.edwards=require("./edwards")},{"./base":85,"./edwards":86,"./mont":88,"./short":89}],88:[function(require,module,exports){"use strict";var BN=require("bn.js"),inherits=require("inherits"),Base=require("./base"),utils=require("../utils");function MontCurve(conf){Base.call(this,"mont",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.i4=new BN(4).toRed(this.red).redInvm(),this.two=new BN(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective"),null===x&&null===z?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN(x,16),this.z=new BN(z,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}inherits(MontCurve,Base),module.exports=MontCurve,MontCurve.prototype.validate=function(point){var x=point.normalize().x,x2=x.redSqr(),rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);return 0===rhs.redSqrt().redSqr().cmp(rhs)},inherits(Point,Base.BasePoint),MontCurve.prototype.decodePoint=function(bytes,enc){return this.point(utils.toArray(bytes,enc),1)},MontCurve.prototype.point=function(x,z){return new Point(this,x,z)},MontCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)},Point.prototype.precompute=function(){},Point.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)},Point.prototype.inspect=function(){return this.isInfinity()?"":""},Point.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point.prototype.dbl=function(){var aa=this.x.redAdd(this.z).redSqr(),bb=this.x.redSub(this.z).redSqr(),c=aa.redSub(bb),nx=aa.redMul(bb),nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)},Point.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.diffAdd=function(p,diff){var a=this.x.redAdd(this.z),b=this.x.redSub(this.z),c=p.x.redAdd(p.z),da=p.x.redSub(p.z).redMul(a),cb=c.redMul(b),nx=diff.z.redMul(da.redAdd(cb).redSqr()),nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)},Point.prototype.mul=function(k){for(var t=k.clone(),a=this,b=this.curve.point(null,null),bits=[];0!==t.cmpn(0);t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--)0===bits[i]?(a=a.diffAdd(b,this),b=b.dbl()):(b=a.diffAdd(b,this),a=a.dbl());return b},Point.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.eq=function(other){return 0===this.getX().cmp(other.getX())},Point.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../utils":98,"./base":85,"bn.js":99,inherits:133}],89:[function(require,module,exports){"use strict";var utils=require("../utils"),BN=require("bn.js"),inherits=require("inherits"),Base=require("./base"),assert=utils.assert;function ShortCurve(conf){Base.call(this,"short",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(conf),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function Point(curve,x,y,isRed){Base.BasePoint.call(this,curve,"affine"),null===x&&null===y?(this.x=null,this.y=null,this.inf=!0):(this.x=new BN(x,16),this.y=new BN(y,16),isRed&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian"),null===x&&null===y&&null===z?(this.x=this.curve.one,this.y=this.curve.one,this.z=new BN(0)):(this.x=new BN(x,16),this.y=new BN(y,16),this.z=new BN(z,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}inherits(ShortCurve,Base),module.exports=ShortCurve,ShortCurve.prototype._getEndomorphism=function(conf){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var beta,lambda;if(conf.beta)beta=new BN(conf.beta,16).toRed(this.red);else{var betas=this._getEndoRoots(this.p);beta=(beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1]).toRed(this.red)}if(conf.lambda)lambda=new BN(conf.lambda,16);else{var lambdas=this._getEndoRoots(this.n);0===this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))?lambda=lambdas[0]:(lambda=lambdas[1],assert(0===this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))))}return{beta:beta,lambda:lambda,basis:conf.basis?conf.basis.map((function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}})):this._getEndoBasis(lambda)}}},ShortCurve.prototype._getEndoRoots=function(num){var red=num===this.p?this.red:BN.mont(num),tinv=new BN(2).toRed(red).redInvm(),ntinv=tinv.redNeg(),s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);return[ntinv.redAdd(s).fromRed(),ntinv.redSub(s).fromRed()]},ShortCurve.prototype._getEndoBasis=function(lambda){for(var a0,b0,a1,b1,a2,b2,prevR,r,x,aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=lambda,v=this.n.clone(),x1=new BN(1),y1=new BN(0),x2=new BN(0),y2=new BN(1),i=0;0!==u.cmpn(0);){var q=v.div(u);r=v.sub(q.mul(u)),x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0)a0=prevR.neg(),b0=x1,a1=r.neg(),b1=x;else if(a1&&2==++i)break;prevR=r,v=u,u=r,x2=x1,x1=x,y2=y1,y1=y}a2=r.neg(),b2=x;var len1=a1.sqr().add(b1.sqr());return a2.sqr().add(b2.sqr()).cmp(len1)>=0&&(a2=a0,b2=b0),a1.negative&&(a1=a1.neg(),b1=b1.neg()),a2.negative&&(a2=a2.neg(),b2=b2.neg()),[{a:a1,b:b1},{a:a2,b:b2}]},ShortCurve.prototype._endoSplit=function(k){var basis=this.endo.basis,v1=basis[0],v2=basis[1],c1=v2.b.mul(k).divRound(this.n),c2=v1.b.neg().mul(k).divRound(this.n),p1=c1.mul(v1.a),p2=c2.mul(v2.a),q1=c1.mul(v1.b),q2=c2.mul(v2.b);return{k1:k.sub(p1).sub(p2),k2:q1.add(q2).neg()}},ShortCurve.prototype.pointFromX=function(x,odd){(x=new BN(x,16)).red||(x=x.toRed(this.red));var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b),y=y2.redSqrt();if(0!==y.redSqr().redSub(y2).cmp(this.zero))throw new Error("invalid point");var isOdd=y.fromRed().isOdd();return(odd&&!isOdd||!odd&&isOdd)&&(y=y.redNeg()),this.point(x,y)},ShortCurve.prototype.validate=function(point){if(point.inf)return!0;var x=point.x,y=point.y,ax=this.a.redMul(x),rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return 0===y.redSqr().redISub(rhs).cmpn(0)},ShortCurve.prototype._endoWnafMulAdd=function(points,coeffs,jacobianResult){for(var npoints=this._endoWnafT1,ncoeffs=this._endoWnafT2,i=0;i":""},Point.prototype.isInfinity=function(){return this.inf},Point.prototype.add=function(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(0===this.x.cmp(p.x))return this.curve.point(null,null);var c=this.y.redSub(p.y);0!==c.cmpn(0)&&(c=c.redMul(this.x.redSub(p.x).redInvm()));var nx=c.redSqr().redISub(this.x).redISub(p.x),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)},Point.prototype.dbl=function(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(0===ys1.cmpn(0))return this.curve.point(null,null);var a=this.curve.a,x2=this.x.redSqr(),dyinv=ys1.redInvm(),c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv),nx=c.redSqr().redISub(this.x.redAdd(this.x)),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)},Point.prototype.getX=function(){return this.x.fromRed()},Point.prototype.getY=function(){return this.y.fromRed()},Point.prototype.mul=function(k){return k=new BN(k,16),this.isInfinity()?this:this._hasDoubles(k)?this.curve._fixedNafMul(this,k):this.curve.endo?this.curve._endoWnafMulAdd([this],[k]):this.curve._wnafMul(this,k)},Point.prototype.mulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];return this.curve.endo?this.curve._endoWnafMulAdd(points,coeffs):this.curve._wnafMulAdd(1,points,coeffs,2)},Point.prototype.jmulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];return this.curve.endo?this.curve._endoWnafMulAdd(points,coeffs,!0):this.curve._wnafMulAdd(1,points,coeffs,2,!0)},Point.prototype.eq=function(p){return this===p||this.inf===p.inf&&(this.inf||0===this.x.cmp(p.x)&&0===this.y.cmp(p.y))},Point.prototype.neg=function(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed,negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res},Point.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits(JPoint,Base.BasePoint),ShortCurve.prototype.jpoint=function(x,y,z){return new JPoint(this,x,y,z)},JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm(),zinv2=zinv.redSqr(),ax=this.x.redMul(zinv2),ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)},JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr(),z2=this.z.redSqr(),u1=this.x.redMul(pz2),u2=p.x.redMul(z2),s1=this.y.redMul(pz2.redMul(p.z)),s2=p.y.redMul(z2.redMul(this.z)),h=u1.redSub(u2),r=s1.redSub(s2);if(0===h.cmpn(0))return 0!==r.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)},JPoint.prototype.mixedAdd=function(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr(),u1=this.x,u2=p.x.redMul(z2),s1=this.y,s2=p.y.redMul(z2).redMul(this.z),h=u1.redSub(u2),r=s1.redSub(s2);if(0===h.cmpn(0))return 0!==r.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)},JPoint.prototype.dblp=function(pow){if(0===pow)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();var i;if(this.curve.zeroA||this.curve.threeA){var r=this;for(i=0;i=0)return!1;if(rx.redIAdd(t),0===this.x.cmp(rx))return!0}},JPoint.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../utils":98,"./base":85,"bn.js":99,inherits:133}],90:[function(require,module,exports){"use strict";var pre,curves=exports,hash=require("hash.js"),curve=require("./curve"),assert=require("./utils").assert;function PresetCurve(options){"short"===options.type?this.curve=new curve.short(options):"edwards"===options.type?this.curve=new curve.edwards(options):this.curve=new curve.mont(options),this.g=this.curve.g,this.n=this.curve.n,this.hash=options.hash,assert(this.g.validate(),"Invalid curve"),assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,get:function(){var curve=new PresetCurve(options);return Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,value:curve}),curve}})}curves.PresetCurve=PresetCurve,defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:!1,g:["9"]}),defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{pre=require("./precomputed/secp256k1")}catch(e){pre=void 0}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",pre]})},{"./curve":87,"./precomputed/secp256k1":97,"./utils":98,"hash.js":119}],91:[function(require,module,exports){"use strict";var BN=require("bn.js"),HmacDRBG=require("hmac-drbg"),utils=require("../utils"),curves=require("../curves"),rand=require("brorand"),assert=utils.assert,KeyPair=require("./key"),Signature=require("./signature");function EC(options){if(!(this instanceof EC))return new EC(options);"string"==typeof options&&(assert(Object.prototype.hasOwnProperty.call(curves,options),"Unknown curve "+options),options=curves[options]),options instanceof curves.PresetCurve&&(options={curve:options}),this.curve=options.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=options.curve.g,this.g.precompute(options.curve.n.bitLength()+1),this.hash=options.hash||options.curve.hash}module.exports=EC,EC.prototype.keyPair=function(options){return new KeyPair(this,options)},EC.prototype.keyFromPrivate=function(priv,enc){return KeyPair.fromPrivate(this,priv,enc)},EC.prototype.keyFromPublic=function(pub,enc){return KeyPair.fromPublic(this,pub,enc)},EC.prototype.genKeyPair=function(options){options||(options={});for(var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||"utf8",entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||"utf8",nonce:this.n.toArray()}),bytes=this.n.byteLength(),ns2=this.n.sub(new BN(2));;){var priv=new BN(drbg.generate(bytes));if(!(priv.cmp(ns2)>0))return priv.iaddn(1),this.keyFromPrivate(priv)}},EC.prototype._truncateToN=function(msg,truncOnly){var delta=8*msg.byteLength()-this.n.bitLength();return delta>0&&(msg=msg.ushrn(delta)),!truncOnly&&msg.cmp(this.n)>=0?msg.sub(this.n):msg},EC.prototype.sign=function(msg,key,enc,options){"object"==typeof enc&&(options=enc,enc=null),options||(options={}),key=this.keyFromPrivate(key,enc),msg=this._truncateToN(new BN(msg,16));for(var bytes=this.n.byteLength(),bkey=key.getPrivate().toArray("be",bytes),nonce=msg.toArray("be",bytes),drbg=new HmacDRBG({hash:this.hash,entropy:bkey,nonce:nonce,pers:options.pers,persEnc:options.persEnc||"utf8"}),ns1=this.n.sub(new BN(1)),iter=0;;iter++){var k=options.k?options.k(iter):new BN(drbg.generate(this.n.byteLength()));if(!((k=this._truncateToN(k,!0)).cmpn(1)<=0||k.cmp(ns1)>=0)){var kp=this.g.mul(k);if(!kp.isInfinity()){var kpX=kp.getX(),r=kpX.umod(this.n);if(0!==r.cmpn(0)){var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));if(0!==(s=s.umod(this.n)).cmpn(0)){var recoveryParam=(kp.getY().isOdd()?1:0)|(0!==kpX.cmp(r)?2:0);return options.canonical&&s.cmp(this.nh)>0&&(s=this.n.sub(s),recoveryParam^=1),new Signature({r:r,s:s,recoveryParam:recoveryParam})}}}}}},EC.prototype.verify=function(msg,signature,key,enc){msg=this._truncateToN(new BN(msg,16)),key=this.keyFromPublic(key,enc);var r=(signature=new Signature(signature,"hex")).r,s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var p,sinv=s.invm(this.n),u1=sinv.mul(msg).umod(this.n),u2=sinv.mul(r).umod(this.n);return this.curve._maxwellTrick?!(p=this.g.jmulAdd(u1,key.getPublic(),u2)).isInfinity()&&p.eqXToP(r):!(p=this.g.mulAdd(u1,key.getPublic(),u2)).isInfinity()&&0===p.getX().umod(this.n).cmp(r)},EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,"The recovery param is more than two bits"),signature=new Signature(signature,enc);var n=this.n,e=new BN(msg),r=signature.r,s=signature.s,isYOdd=1&j,isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw new Error("Unable to find sencond key candinate");r=isSecondKey?this.curve.pointFromX(r.add(this.curve.n),isYOdd):this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n),s1=n.sub(e).mul(rInv).umod(n),s2=s.mul(rInv).umod(n);return this.g.mulAdd(s1,r,s2)},EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){if(null!==(signature=new Signature(signature,enc)).recoveryParam)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e){continue}if(Qprime.eq(Q))return i}throw new Error("Unable to find valid recovery factor")}},{"../curves":90,"../utils":98,"./key":92,"./signature":93,"bn.js":99,brorand:19,"hmac-drbg":131}],92:[function(require,module,exports){"use strict";var BN=require("bn.js"),assert=require("../utils").assert;function KeyPair(ec,options){this.ec=ec,this.priv=null,this.pub=null,options.priv&&this._importPrivate(options.priv,options.privEnc),options.pub&&this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair,KeyPair.fromPublic=function(ec,pub,enc){return pub instanceof KeyPair?pub:new KeyPair(ec,{pub:pub,pubEnc:enc})},KeyPair.fromPrivate=function(ec,priv,enc){return priv instanceof KeyPair?priv:new KeyPair(ec,{priv:priv,privEnc:enc})},KeyPair.prototype.validate=function(){var pub=this.getPublic();return pub.isInfinity()?{result:!1,reason:"Invalid public key"}:pub.validate()?pub.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair.prototype.getPublic=function(compact,enc){return"string"==typeof compact&&(enc=compact,compact=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),enc?this.pub.encode(enc,compact):this.pub},KeyPair.prototype.getPrivate=function(enc){return"hex"===enc?this.priv.toString(16,2):this.priv},KeyPair.prototype._importPrivate=function(key,enc){this.priv=new BN(key,enc||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair.prototype._importPublic=function(key,enc){if(key.x||key.y)return"mont"===this.ec.curve.type?assert(key.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||assert(key.x&&key.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(key.x,key.y));this.pub=this.ec.curve.decodePoint(key,enc)},KeyPair.prototype.derive=function(pub){return pub.validate()||assert(pub.validate(),"public point not validated"),pub.mul(this.priv).getX()},KeyPair.prototype.sign=function(msg,enc,options){return this.ec.sign(msg,this,enc,options)},KeyPair.prototype.verify=function(msg,signature){return this.ec.verify(msg,signature,this)},KeyPair.prototype.inspect=function(){return""}},{"../utils":98,"bn.js":99}],93:[function(require,module,exports){"use strict";var BN=require("bn.js"),utils=require("../utils"),assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;this._importDER(options,enc)||(assert(options.r&&options.s,"Signature without r or s"),this.r=new BN(options.r,16),this.s=new BN(options.s,16),void 0===options.recoveryParam?this.recoveryParam=null:this.recoveryParam=options.recoveryParam)}function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(128&initial))return initial;var octetLen=15&initial;if(0===octetLen||octetLen>4)return!1;for(var val=0,i=0,off=p.place;i>>=0;return!(val<=127)&&(p.place=off,val)}function rmPadding(buf){for(var i=0,len=buf.length-1;!buf[i]&&!(128&buf[i+1])&&i>>3);for(arr.push(128|octets);--octets;)arr.push(len>>>(octets<<3)&255);arr.push(len)}}module.exports=Signature,Signature.prototype._importDER=function(data,enc){data=utils.toArray(data,enc);var p=new Position;if(48!==data[p.place++])return!1;var len=getLength(data,p);if(!1===len)return!1;if(len+p.place!==data.length)return!1;if(2!==data[p.place++])return!1;var rlen=getLength(data,p);if(!1===rlen)return!1;var r=data.slice(p.place,rlen+p.place);if(p.place+=rlen,2!==data[p.place++])return!1;var slen=getLength(data,p);if(!1===slen)return!1;if(data.length!==slen+p.place)return!1;var s=data.slice(p.place,slen+p.place);if(0===r[0]){if(!(128&r[1]))return!1;r=r.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new BN(r),this.s=new BN(s),this.recoveryParam=null,!0},Signature.prototype.toDER=function(enc){var r=this.r.toArray(),s=this.s.toArray();for(128&r[0]&&(r=[0].concat(r)),128&s[0]&&(s=[0].concat(s)),r=rmPadding(r),s=rmPadding(s);!(s[0]||128&s[1]);)s=s.slice(1);var arr=[2];constructLength(arr,r.length),(arr=arr.concat(r)).push(2),constructLength(arr,s.length);var backHalf=arr.concat(s),res=[48];return constructLength(res,backHalf.length),res=res.concat(backHalf),utils.encode(res,enc)}},{"../utils":98,"bn.js":99}],94:[function(require,module,exports){"use strict";var hash=require("hash.js"),curves=require("../curves"),utils=require("../utils"),assert=utils.assert,parseBytes=utils.parseBytes,KeyPair=require("./key"),Signature=require("./signature");function EDDSA(curve){if(assert("ed25519"===curve,"only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(curve);curve=curves[curve].curve,this.curve=curve,this.g=curve.g,this.g.precompute(curve.n.bitLength()+1),this.pointClass=curve.point().constructor,this.encodingLength=Math.ceil(curve.n.bitLength()/8),this.hash=hash.sha512}module.exports=EDDSA,EDDSA.prototype.sign=function(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret),r=this.hashInt(key.messagePrefix(),message),R=this.g.mul(r),Rencoded=this.encodePoint(R),s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv()),S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded})},EDDSA.prototype.verify=function(message,sig,pub){message=parseBytes(message),sig=this.makeSignature(sig);var key=this.keyFromPublic(pub),h=this.hashInt(sig.Rencoded(),key.pubBytes(),message),SG=this.g.mul(sig.S());return sig.R().add(key.pub().mul(h)).eq(SG)},EDDSA.prototype.hashInt=function(){for(var hash=this.hash(),i=0;i(ws>>1)-1?(ws>>1)-mod:mod,k.isubn(z)):z=0,naf[i]=z,k.iushrn(1)}return naf},utils.getJSF=function(k1,k2){var jsf=[[],[]];k1=k1.clone(),k2=k2.clone();for(var m8,d1=0,d2=0;k1.cmpn(-d1)>0||k2.cmpn(-d2)>0;){var u1,u2,m14=k1.andln(3)+d1&3,m24=k2.andln(3)+d2&3;3===m14&&(m14=-1),3===m24&&(m24=-1),u1=0==(1&m14)?0:3!==(m8=k1.andln(7)+d1&7)&&5!==m8||2!==m24?m14:-m14,jsf[0].push(u1),u2=0==(1&m24)?0:3!==(m8=k2.andln(7)+d2&7)&&5!==m8||2!==m14?m24:-m24,jsf[1].push(u2),2*d1===u1+1&&(d1=1-d1),2*d2===u2+1&&(d2=1-d2),k1.iushrn(1),k2.iushrn(1)}return jsf},utils.cachedProperty=function(obj,name,computer){var key="_"+name;obj.prototype[name]=function(){return void 0!==this[key]?this[key]:this[key]=computer.call(this)}},utils.parseBytes=function(bytes){return"string"==typeof bytes?utils.toArray(bytes,"hex"):bytes},utils.intFromLE=function(bytes){return new BN(bytes,"hex","le")}},{"bn.js":99,"minimalistic-assert":137,"minimalistic-crypto-utils":138}],99:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{buffer:20,dup:16}],100:[function(require,module,exports){module.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}},{}],101:[function(require,module,exports){"use strict";var ReflectOwnKeys,R="object"==typeof Reflect?Reflect:null,ReflectApply=R&&"function"==typeof R.apply?R.apply:function(target,receiver,args){return Function.prototype.apply.call(target,receiver,args)};ReflectOwnKeys=R&&"function"==typeof R.ownKeys?R.ownKeys:Object.getOwnPropertySymbols?function(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))}:function(target){return Object.getOwnPropertyNames(target)};var NumberIsNaN=Number.isNaN||function(value){return value!=value};function EventEmitter(){EventEmitter.init.call(this)}module.exports=EventEmitter,module.exports.once=function(emitter,name){return new Promise((function(resolve,reject){function errorListener(err){emitter.removeListener(name,resolver),reject(err)}function resolver(){"function"==typeof emitter.removeListener&&emitter.removeListener("error",errorListener),resolve([].slice.call(arguments))}eventTargetAgnosticAddListener(emitter,name,resolver,{once:!0}),"error"!==name&&function(emitter,handler,flags){"function"==typeof emitter.on&&eventTargetAgnosticAddListener(emitter,"error",handler,flags)}(emitter,errorListener,{once:!0})}))},EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._eventsCount=0,EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(listener){if("function"!=typeof listener)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof listener)}function _getMaxListeners(that){return void 0===that._maxListeners?EventEmitter.defaultMaxListeners:that._maxListeners}function _addListener(target,type,listener,prepend){var m,events,existing,warning;if(checkListener(listener),void 0===(events=target._events)?(events=target._events=Object.create(null),target._eventsCount=0):(void 0!==events.newListener&&(target.emit("newListener",type,listener.listener?listener.listener:listener),events=target._events),existing=events[type]),void 0===existing)existing=events[type]=listener,++target._eventsCount;else if("function"==typeof existing?existing=events[type]=prepend?[listener,existing]:[existing,listener]:prepend?existing.unshift(listener):existing.push(listener),(m=_getMaxListeners(target))>0&&existing.length>m&&!existing.warned){existing.warned=!0;var w=new Error("Possible EventEmitter memory leak detected. "+existing.length+" "+String(type)+" listeners added. Use emitter.setMaxListeners() to increase limit");w.name="MaxListenersExceededWarning",w.emitter=target,w.type=type,w.count=existing.length,warning=w,console&&console.warn&&console.warn(warning)}return target}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(target,type,listener){var state={fired:!1,wrapFn:void 0,target:target,type:type,listener:listener},wrapped=onceWrapper.bind(state);return wrapped.listener=listener,state.wrapFn=wrapped,wrapped}function _listeners(target,type,unwrap){var events=target._events;if(void 0===events)return[];var evlistener=events[type];return void 0===evlistener?[]:"function"==typeof evlistener?unwrap?[evlistener.listener||evlistener]:[evlistener]:unwrap?function(arr){for(var ret=new Array(arr.length),i=0;i0&&(er=args[0]),er instanceof Error)throw er;var err=new Error("Unhandled error."+(er?" ("+er.message+")":""));throw err.context=er,err}var handler=events[type];if(void 0===handler)return!1;if("function"==typeof handler)ReflectApply(handler,this,args);else{var len=handler.length,listeners=arrayClone(handler,len);for(i=0;i=0;i--)if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener,position=i;break}if(position<0)return this;0===position?list.shift():function(list,index){for(;index+1=0;i--)this.removeListener(type,listeners[i]);return this},EventEmitter.prototype.listeners=function(type){return _listeners(this,type,!0)},EventEmitter.prototype.rawListeners=function(type){return _listeners(this,type,!1)},EventEmitter.listenerCount=function(emitter,type){return"function"==typeof emitter.listenerCount?emitter.listenerCount(type):listenerCount.call(emitter,type)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]}},{}],102:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,MD5=require("md5.js");module.exports=function(password,salt,keyBits,ivLen){if(Buffer.isBuffer(password)||(password=Buffer.from(password,"binary")),salt&&(Buffer.isBuffer(salt)||(salt=Buffer.from(salt,"binary")),8!==salt.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var keyLen=keyBits/8,key=Buffer.alloc(keyLen),iv=Buffer.alloc(ivLen||0),tmp=Buffer.alloc(0);keyLen>0||ivLen>0;){var hash=new MD5;hash.update(tmp),hash.update(password),salt&&hash.update(salt),tmp=hash.digest();var used=0;if(keyLen>0){var keyStart=key.length-keyLen;used=Math.min(keyLen,tmp.length),tmp.copy(key,keyStart,0,used),keyLen-=used}if(used0){var ivStart=iv.length-ivLen,length=Math.min(ivLen,tmp.length-used);tmp.copy(iv,ivStart,used,used+length),ivLen-=length}}return tmp.fill(0),{key:key,iv:iv}}},{"md5.js":134,"safe-buffer":162}],103:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,Transform=require("readable-stream").Transform;function HashBase(blockSize){Transform.call(this),this._block=Buffer.allocUnsafe(blockSize),this._blockSize=blockSize,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}require("inherits")(HashBase,Transform),HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding)}catch(err){error=err}callback(error)},HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest())}catch(err){error=err}callback(error)},HashBase.prototype.update=function(data,encoding){if(function(val,prefix){if(!Buffer.isBuffer(val)&&"string"!=typeof val)throw new TypeError(prefix+" must be a string or a buffer")}(data,"Data"),this._finalized)throw new Error("Digest already called");Buffer.isBuffer(data)||(data=Buffer.from(data,encoding));for(var block=this._block,offset=0;this._blockOffset+data.length-offset>=this._blockSize;){for(var i=this._blockOffset;i0;++j)this._length[j]+=carry,(carry=this._length[j]/4294967296|0)>0&&(this._length[j]-=4294967296*carry);return this},HashBase.prototype._update=function(){throw new Error("_update is not implemented")},HashBase.prototype.digest=function(encoding){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var digest=this._digest();void 0!==encoding&&(digest=digest.toString(encoding)),this._block.fill(0),this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return digest},HashBase.prototype._digest=function(){throw new Error("_digest is not implemented")},module.exports=HashBase},{inherits:133,"readable-stream":118,"safe-buffer":162}],104:[function(require,module,exports){arguments[4][48][0].apply(exports,arguments)},{dup:48}],105:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{"./_stream_readable":107,"./_stream_writable":109,_process:151,dup:49,inherits:133}],106:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{"./_stream_transform":108,dup:50,inherits:133}],107:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{"../errors":104,"./_stream_duplex":105,"./internal/streams/async_iterator":110,"./internal/streams/buffer_list":111,"./internal/streams/destroy":112,"./internal/streams/from":114,"./internal/streams/state":116,"./internal/streams/stream":117,_process:151,buffer:64,dup:51,events:101,inherits:133,"string_decoder/":187,util:20}],108:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{"../errors":104,"./_stream_duplex":105,dup:52,inherits:133}],109:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{"../errors":104,"./_stream_duplex":105,"./internal/streams/destroy":112,"./internal/streams/state":116,"./internal/streams/stream":117,_process:151,buffer:64,dup:53,inherits:133,"util-deprecate":188}],110:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{"./end-of-stream":113,_process:151,dup:54}],111:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{buffer:64,dup:55,util:20}],112:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{_process:151,dup:56}],113:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{"../../../errors":104,dup:57}],114:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],115:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{"../../../errors":104,"./end-of-stream":113,dup:59}],116:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{"../../../errors":104,dup:60}],117:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61,events:101}],118:[function(require,module,exports){arguments[4][62][0].apply(exports,arguments)},{"./lib/_stream_duplex.js":105,"./lib/_stream_passthrough.js":106,"./lib/_stream_readable.js":107,"./lib/_stream_transform.js":108,"./lib/_stream_writable.js":109,"./lib/internal/streams/end-of-stream.js":113,"./lib/internal/streams/pipeline.js":115,dup:62}],119:[function(require,module,exports){var hash=exports;hash.utils=require("./hash/utils"),hash.common=require("./hash/common"),hash.sha=require("./hash/sha"),hash.ripemd=require("./hash/ripemd"),hash.hmac=require("./hash/hmac"),hash.sha1=hash.sha.sha1,hash.sha256=hash.sha.sha256,hash.sha224=hash.sha.sha224,hash.sha384=hash.sha.sha384,hash.sha512=hash.sha.sha512,hash.ripemd160=hash.ripemd.ripemd160},{"./hash/common":120,"./hash/hmac":121,"./hash/ripemd":122,"./hash/sha":123,"./hash/utils":130}],120:[function(require,module,exports){"use strict";var utils=require("./utils"),assert=require("minimalistic-assert");function BlockHash(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}exports.BlockHash=BlockHash,BlockHash.prototype.update=function(msg,enc){if(msg=utils.toArray(msg,enc),this.pending?this.pending=this.pending.concat(msg):this.pending=msg,this.pendingTotal+=msg.length,this.pending.length>=this._delta8){var r=(msg=this.pending).length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length),0===this.pending.length&&(this.pending=null),msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24&255,res[i++]=len>>>16&255,res[i++]=len>>>8&255,res[i++]=255&len}else for(res[i++]=255&len,res[i++]=len>>>8&255,res[i++]=len>>>16&255,res[i++]=len>>>24&255,res[i++]=0,res[i++]=0,res[i++]=0,res[i++]=0,t=8;tthis.blockSize&&(key=(new this.Hash).update(key).digest()),assert(key.length<=this.blockSize);for(var i=key.length;i>>3},exports.g1_256=function(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}},{"../utils":130}],130:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert"),inherits=require("inherits");function isSurrogatePair(msg,i){return 55296==(64512&msg.charCodeAt(i))&&(!(i<0||i+1>=msg.length)&&56320==(64512&msg.charCodeAt(i+1)))}function htonl(w){return(w>>>24|w>>>8&65280|w<<8&16711680|(255&w)<<24)>>>0}function zero2(word){return 1===word.length?"0"+word:word}function zero8(word){return 7===word.length?"0"+word:6===word.length?"00"+word:5===word.length?"000"+word:4===word.length?"0000"+word:3===word.length?"00000"+word:2===word.length?"000000"+word:1===word.length?"0000000"+word:word}exports.inherits=inherits,exports.toArray=function(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if("string"==typeof msg)if(enc){if("hex"===enc)for((msg=msg.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(msg="0"+msg),i=0;i>6|192,res[p++]=63&c|128):isSurrogatePair(msg,i)?(c=65536+((1023&c)<<10)+(1023&msg.charCodeAt(++i)),res[p++]=c>>18|240,res[p++]=c>>12&63|128,res[p++]=c>>6&63|128,res[p++]=63&c|128):(res[p++]=c>>12|224,res[p++]=c>>6&63|128,res[p++]=63&c|128)}else for(i=0;i>>0}return res},exports.split32=function(msg,endian){for(var res=new Array(4*msg.length),i=0,k=0;i>>24,res[k+1]=m>>>16&255,res[k+2]=m>>>8&255,res[k+3]=255&m):(res[k+3]=m>>>24,res[k+2]=m>>>16&255,res[k+1]=m>>>8&255,res[k]=255&m)}return res},exports.rotr32=function(w,b){return w>>>b|w<<32-b},exports.rotl32=function(w,b){return w<>>32-b},exports.sum32=function(a,b){return a+b>>>0},exports.sum32_3=function(a,b,c){return a+b+c>>>0},exports.sum32_4=function(a,b,c,d){return a+b+c+d>>>0},exports.sum32_5=function(a,b,c,d,e){return a+b+c+d+e>>>0},exports.sum64=function(buf,pos,ah,al){var bh=buf[pos],lo=al+buf[pos+1]>>>0,hi=(lo>>0,buf[pos+1]=lo},exports.sum64_hi=function(ah,al,bh,bl){return(al+bl>>>0>>0},exports.sum64_lo=function(ah,al,bh,bl){return al+bl>>>0},exports.sum64_4_hi=function(ah,al,bh,bl,ch,cl,dh,dl){var carry=0,lo=al;return carry+=(lo=lo+bl>>>0)>>0)>>0)>>0},exports.sum64_4_lo=function(ah,al,bh,bl,ch,cl,dh,dl){return al+bl+cl+dl>>>0},exports.sum64_5_hi=function(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0,lo=al;return carry+=(lo=lo+bl>>>0)>>0)>>0)>>0)>>0},exports.sum64_5_lo=function(ah,al,bh,bl,ch,cl,dh,dl,eh,el){return al+bl+cl+dl+el>>>0},exports.rotr64_hi=function(ah,al,num){return(al<<32-num|ah>>>num)>>>0},exports.rotr64_lo=function(ah,al,num){return(ah<<32-num|al>>>num)>>>0},exports.shr64_hi=function(ah,al,num){return ah>>>num},exports.shr64_lo=function(ah,al,num){return(ah<<32-num|al>>>num)>>>0}},{inherits:133,"minimalistic-assert":137}],131:[function(require,module,exports){"use strict";var hash=require("hash.js"),utils=require("minimalistic-crypto-utils"),assert=require("minimalistic-assert");function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash,this.predResist=!!options.predResist,this.outLen=this.hash.outSize,this.minEntropy=options.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||"hex"),nonce=utils.toArray(options.nonce,options.nonceEnc||"hex"),pers=utils.toArray(options.pers,options.persEnc||"hex");assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(entropy,nonce,pers)}module.exports=HmacDRBG,HmacDRBG.prototype._init=function(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(entropy.concat(add||[])),this._reseed=1},HmacDRBG.prototype.generate=function(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof enc&&(addEnc=add,add=enc,enc=null),add&&(add=utils.toArray(add,addEnc||"hex"),this._update(add));for(var temp=[];temp.length */ +exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||0===value&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),(value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias))*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],133:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){superCtor&&(ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}}))}:module.exports=function(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}}},{}],134:[function(require,module,exports){"use strict";var inherits=require("inherits"),HashBase=require("hash-base"),Buffer=require("safe-buffer").Buffer,ARRAY16=new Array(16);function MD5(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function rotl(x,n){return x<>>32-n}function fnF(a,b,c,d,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+b|0}function fnG(a,b,c,d,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+b|0}function fnH(a,b,c,d,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+b|0}function fnI(a,b,c,d,m,k,s){return rotl(a+(c^(b|~d))+m+k|0,s)+b|0}inherits(MD5,HashBase),MD5.prototype._update=function(){for(var M=ARRAY16,i=0;i<16;++i)M[i]=this._block.readInt32LE(4*i);var a=this._a,b=this._b,c=this._c,d=this._d;a=fnF(a,b,c,d,M[0],3614090360,7),d=fnF(d,a,b,c,M[1],3905402710,12),c=fnF(c,d,a,b,M[2],606105819,17),b=fnF(b,c,d,a,M[3],3250441966,22),a=fnF(a,b,c,d,M[4],4118548399,7),d=fnF(d,a,b,c,M[5],1200080426,12),c=fnF(c,d,a,b,M[6],2821735955,17),b=fnF(b,c,d,a,M[7],4249261313,22),a=fnF(a,b,c,d,M[8],1770035416,7),d=fnF(d,a,b,c,M[9],2336552879,12),c=fnF(c,d,a,b,M[10],4294925233,17),b=fnF(b,c,d,a,M[11],2304563134,22),a=fnF(a,b,c,d,M[12],1804603682,7),d=fnF(d,a,b,c,M[13],4254626195,12),c=fnF(c,d,a,b,M[14],2792965006,17),a=fnG(a,b=fnF(b,c,d,a,M[15],1236535329,22),c,d,M[1],4129170786,5),d=fnG(d,a,b,c,M[6],3225465664,9),c=fnG(c,d,a,b,M[11],643717713,14),b=fnG(b,c,d,a,M[0],3921069994,20),a=fnG(a,b,c,d,M[5],3593408605,5),d=fnG(d,a,b,c,M[10],38016083,9),c=fnG(c,d,a,b,M[15],3634488961,14),b=fnG(b,c,d,a,M[4],3889429448,20),a=fnG(a,b,c,d,M[9],568446438,5),d=fnG(d,a,b,c,M[14],3275163606,9),c=fnG(c,d,a,b,M[3],4107603335,14),b=fnG(b,c,d,a,M[8],1163531501,20),a=fnG(a,b,c,d,M[13],2850285829,5),d=fnG(d,a,b,c,M[2],4243563512,9),c=fnG(c,d,a,b,M[7],1735328473,14),a=fnH(a,b=fnG(b,c,d,a,M[12],2368359562,20),c,d,M[5],4294588738,4),d=fnH(d,a,b,c,M[8],2272392833,11),c=fnH(c,d,a,b,M[11],1839030562,16),b=fnH(b,c,d,a,M[14],4259657740,23),a=fnH(a,b,c,d,M[1],2763975236,4),d=fnH(d,a,b,c,M[4],1272893353,11),c=fnH(c,d,a,b,M[7],4139469664,16),b=fnH(b,c,d,a,M[10],3200236656,23),a=fnH(a,b,c,d,M[13],681279174,4),d=fnH(d,a,b,c,M[0],3936430074,11),c=fnH(c,d,a,b,M[3],3572445317,16),b=fnH(b,c,d,a,M[6],76029189,23),a=fnH(a,b,c,d,M[9],3654602809,4),d=fnH(d,a,b,c,M[12],3873151461,11),c=fnH(c,d,a,b,M[15],530742520,16),a=fnI(a,b=fnH(b,c,d,a,M[2],3299628645,23),c,d,M[0],4096336452,6),d=fnI(d,a,b,c,M[7],1126891415,10),c=fnI(c,d,a,b,M[14],2878612391,15),b=fnI(b,c,d,a,M[5],4237533241,21),a=fnI(a,b,c,d,M[12],1700485571,6),d=fnI(d,a,b,c,M[3],2399980690,10),c=fnI(c,d,a,b,M[10],4293915773,15),b=fnI(b,c,d,a,M[1],2240044497,21),a=fnI(a,b,c,d,M[8],1873313359,6),d=fnI(d,a,b,c,M[15],4264355552,10),c=fnI(c,d,a,b,M[6],2734768916,15),b=fnI(b,c,d,a,M[13],1309151649,21),a=fnI(a,b,c,d,M[4],4149444226,6),d=fnI(d,a,b,c,M[11],3174756917,10),c=fnI(c,d,a,b,M[2],718787259,15),b=fnI(b,c,d,a,M[9],3951481745,21),this._a=this._a+a|0,this._b=this._b+b|0,this._c=this._c+c|0,this._d=this._d+d|0},MD5.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer.allocUnsafe(16);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer},module.exports=MD5},{"hash-base":103,inherits:133,"safe-buffer":162}],135:[function(require,module,exports){var bn=require("bn.js"),brorand=require("brorand");function MillerRabin(rand){this.rand=rand||new brorand.Rand}module.exports=MillerRabin,MillerRabin.create=function(rand){return new MillerRabin(rand)},MillerRabin.prototype._randbelow=function(n){var len=n.bitLength(),min_bytes=Math.ceil(len/8);do{var a=new bn(this.rand.generate(min_bytes))}while(a.cmp(n)>=0);return a},MillerRabin.prototype._randrange=function(start,stop){var size=stop.sub(start);return start.add(this._randbelow(size))},MillerRabin.prototype.test=function(n,k,cb){var len=n.bitLength(),red=bn.mont(n),rone=new bn(1).toRed(red);k||(k=Math.max(1,len/48|0));for(var n1=n.subn(1),s=0;!n1.testn(s);s++);for(var d=n.shrn(s),rn1=n1.toRed(red);k>0;k--){var a=this._randrange(new bn(2),n1);cb&&cb(a);var x=a.toRed(red).redPow(d);if(0!==x.cmp(rone)&&0!==x.cmp(rn1)){for(var i=1;i0;k--){var a=this._randrange(new bn(2),n1),g=n.gcd(a);if(0!==g.cmpn(1))return g;var x=a.toRed(red).redPow(d);if(0!==x.cmp(rone)&&0!==x.cmp(rn1)){for(var i=1;i>8,lo=255&c;hi?res.push(hi,lo):res.push(lo)}return res},utils.zero2=zero2,utils.toHex=toHex,utils.encode=function(arr,enc){return"hex"===enc?toHex(arr):arr}},{}],139:[function(require,module,exports){module.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],140:[function(require,module,exports){"use strict";var asn1=require("asn1.js");exports.certificate=require("./certificate");var RSAPrivateKey=asn1.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));exports.RSAPublicKey=RSAPublicKey;var PublicKey=asn1.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())}));exports.PublicKey=PublicKey;var AlgorithmIdentifier=asn1.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),PrivateKeyInfo=asn1.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPrivateKey").octstr())}));exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));exports.DSAPrivateKey=DSAPrivateKey,exports.DSAparam=asn1.define("DSAparam",(function(){this.int()}));var ECPrivateKey=asn1.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(ECParameters),this.key("publicKey").optional().explicit(1).bitstr())}));exports.ECPrivateKey=ECPrivateKey;var ECParameters=asn1.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));exports.signature=asn1.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},{"./certificate":141,"asn1.js":2}],141:[function(require,module,exports){"use strict";var asn=require("asn1.js"),Time=asn.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),AttributeTypeValue=asn.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),AlgorithmIdentifier=asn.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),SubjectPublicKeyInfo=asn.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())})),RelativeDistinguishedName=asn.define("RelativeDistinguishedName",(function(){this.setof(AttributeTypeValue)})),RDNSequence=asn.define("RDNSequence",(function(){this.seqof(RelativeDistinguishedName)})),Name=asn.define("Name",(function(){this.choice({rdnSequence:this.use(RDNSequence)})})),Validity=asn.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(Time),this.key("notAfter").use(Time))})),Extension=asn.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),TBSCertificate=asn.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(AlgorithmIdentifier),this.key("issuer").use(Name),this.key("validity").use(Validity),this.key("subject").use(Name),this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(Extension).optional())})),X509Certificate=asn.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(TBSCertificate),this.key("signatureAlgorithm").use(AlgorithmIdentifier),this.key("signatureValue").bitstr())}));module.exports=X509Certificate},{"asn1.js":2}],142:[function(require,module,exports){var findProc=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,startRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,fullRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,evp=require("evp_bytestokey"),ciphers=require("browserify-aes"),Buffer=require("safe-buffer").Buffer;module.exports=function(okey,password){var decrypted,key=okey.toString(),match=key.match(findProc);if(match){var suite="aes"+match[1],iv=Buffer.from(match[2],"hex"),cipherText=Buffer.from(match[3].replace(/[\r\n]/g,""),"base64"),cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key,out=[],cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText)),out.push(cipher.final()),decrypted=Buffer.concat(out)}else{var match2=key.match(fullRegex);decrypted=Buffer.from(match2[2].replace(/[\r\n]/g,""),"base64")}return{tag:key.match(startRegex)[1],data:decrypted}}},{"browserify-aes":23,evp_bytestokey:102,"safe-buffer":162}],143:[function(require,module,exports){var asn1=require("./asn1"),aesid=require("./aesid.json"),fixProc=require("./fixProc"),ciphers=require("browserify-aes"),compat=require("pbkdf2"),Buffer=require("safe-buffer").Buffer;function parseKeys(buffer){var password;"object"!=typeof buffer||Buffer.isBuffer(buffer)||(password=buffer.passphrase,buffer=buffer.key),"string"==typeof buffer&&(buffer=Buffer.from(buffer));var subtype,ndata,stripped=fixProc(buffer,password),type=stripped.tag,data=stripped.data;switch(type){case"CERTIFICATE":ndata=asn1.certificate.decode(data,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(ndata||(ndata=asn1.PublicKey.decode(data,"der")),subtype=ndata.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return ndata.subjectPrivateKey=ndata.subjectPublicKey,{type:"ec",data:ndata};case"1.2.840.10040.4.1":return ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der"),{type:"dsa",data:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}case"ENCRYPTED PRIVATE KEY":data=function(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt,iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10),algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")],iv=data.algorithm.decrypt.cipher.iv,cipherText=data.subjectPrivateKey,keylen=parseInt(algo.split("-")[1],10)/8,key=compat.pbkdf2Sync(password,salt,iters,keylen,"sha1"),cipher=ciphers.createDecipheriv(algo,key,iv),out=[];return out.push(cipher.update(cipherText)),out.push(cipher.final()),Buffer.concat(out)}(data=asn1.EncryptedPrivateKey.decode(data,"der"),password);case"PRIVATE KEY":switch(subtype=(ndata=asn1.PrivateKey.decode(data,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der"),{type:"dsa",params:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":return{curve:(data=asn1.ECPrivateKey.decode(data,"der")).parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type)}}module.exports=parseKeys,parseKeys.signature=asn1.signature},{"./aesid.json":139,"./asn1":140,"./fixProc":142,"browserify-aes":23,pbkdf2:145,"safe-buffer":162}],144:[function(require,module,exports){(function(process){(function(){"use strict";function assertPath(path){if("string"!=typeof path)throw new TypeError("Path must be a string. Received "+JSON.stringify(path))}function normalizeStringPosix(path,allowAboveRoot){for(var code,res="",lastSegmentLength=0,lastSlash=-1,dots=0,i=0;i<=path.length;++i){if(i2){var lastSlashIndex=res.lastIndexOf("/");if(lastSlashIndex!==res.length-1){-1===lastSlashIndex?(res="",lastSegmentLength=0):lastSegmentLength=(res=res.slice(0,lastSlashIndex)).length-1-res.lastIndexOf("/"),lastSlash=i,dots=0;continue}}else if(2===res.length||1===res.length){res="",lastSegmentLength=0,lastSlash=i,dots=0;continue}allowAboveRoot&&(res.length>0?res+="/..":res="..",lastSegmentLength=2)}else res.length>0?res+="/"+path.slice(lastSlash+1,i):res=path.slice(lastSlash+1,i),lastSegmentLength=i-lastSlash-1;lastSlash=i,dots=0}else 46===code&&-1!==dots?++dots:dots=-1}return res}var posix={resolve:function(){for(var cwd,resolvedPath="",resolvedAbsolute=!1,i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path;i>=0?path=arguments[i]:(void 0===cwd&&(cwd=process.cwd()),path=cwd),assertPath(path),0!==path.length&&(resolvedPath=path+"/"+resolvedPath,resolvedAbsolute=47===path.charCodeAt(0))}return resolvedPath=normalizeStringPosix(resolvedPath,!resolvedAbsolute),resolvedAbsolute?resolvedPath.length>0?"/"+resolvedPath:"/":resolvedPath.length>0?resolvedPath:"."},normalize:function(path){if(assertPath(path),0===path.length)return".";var isAbsolute=47===path.charCodeAt(0),trailingSeparator=47===path.charCodeAt(path.length-1);return 0!==(path=normalizeStringPosix(path,!isAbsolute)).length||isAbsolute||(path="."),path.length>0&&trailingSeparator&&(path+="/"),isAbsolute?"/"+path:path},isAbsolute:function(path){return assertPath(path),path.length>0&&47===path.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var joined,i=0;i0&&(void 0===joined?joined=arg:joined+="/"+arg)}return void 0===joined?".":posix.normalize(joined)},relative:function(from,to){if(assertPath(from),assertPath(to),from===to)return"";if((from=posix.resolve(from))===(to=posix.resolve(to)))return"";for(var fromStart=1;fromStartlength){if(47===to.charCodeAt(toStart+i))return to.slice(toStart+i+1);if(0===i)return to.slice(toStart+i)}else fromLen>length&&(47===from.charCodeAt(fromStart+i)?lastCommonSep=i:0===i&&(lastCommonSep=0));break}var fromCode=from.charCodeAt(fromStart+i);if(fromCode!==to.charCodeAt(toStart+i))break;47===fromCode&&(lastCommonSep=i)}var out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i)i!==fromEnd&&47!==from.charCodeAt(i)||(0===out.length?out+="..":out+="/..");return out.length>0?out+to.slice(toStart+lastCommonSep):(toStart+=lastCommonSep,47===to.charCodeAt(toStart)&&++toStart,to.slice(toStart))},_makeLong:function(path){return path},dirname:function(path){if(assertPath(path),0===path.length)return".";for(var code=path.charCodeAt(0),hasRoot=47===code,end=-1,matchedSlash=!0,i=path.length-1;i>=1;--i)if(47===(code=path.charCodeAt(i))){if(!matchedSlash){end=i;break}}else matchedSlash=!1;return-1===end?hasRoot?"/":".":hasRoot&&1===end?"//":path.slice(0,end)},basename:function(path,ext){if(void 0!==ext&&"string"!=typeof ext)throw new TypeError('"ext" argument must be a string');assertPath(path);var i,start=0,end=-1,matchedSlash=!0;if(void 0!==ext&&ext.length>0&&ext.length<=path.length){if(ext.length===path.length&&ext===path)return"";var extIdx=ext.length-1,firstNonSlashEnd=-1;for(i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(47===code){if(!matchedSlash){start=i+1;break}}else-1===firstNonSlashEnd&&(matchedSlash=!1,firstNonSlashEnd=i+1),extIdx>=0&&(code===ext.charCodeAt(extIdx)?-1==--extIdx&&(end=i):(extIdx=-1,end=firstNonSlashEnd))}return start===end?end=firstNonSlashEnd:-1===end&&(end=path.length),path.slice(start,end)}for(i=path.length-1;i>=0;--i)if(47===path.charCodeAt(i)){if(!matchedSlash){start=i+1;break}}else-1===end&&(matchedSlash=!1,end=i+1);return-1===end?"":path.slice(start,end)},extname:function(path){assertPath(path);for(var startDot=-1,startPart=0,end=-1,matchedSlash=!0,preDotState=0,i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(47!==code)-1===end&&(matchedSlash=!1,end=i+1),46===code?-1===startDot?startDot=i:1!==preDotState&&(preDotState=1):-1!==startDot&&(preDotState=-1);else if(!matchedSlash){startPart=i+1;break}}return-1===startDot||-1===end||0===preDotState||1===preDotState&&startDot===end-1&&startDot===startPart+1?"":path.slice(startDot,end)},format:function(pathObject){if(null===pathObject||"object"!=typeof pathObject)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof pathObject);return function(sep,pathObject){var dir=pathObject.dir||pathObject.root,base=pathObject.base||(pathObject.name||"")+(pathObject.ext||"");return dir?dir===pathObject.root?dir+base:dir+sep+base:base}("/",pathObject)},parse:function(path){assertPath(path);var ret={root:"",dir:"",base:"",ext:"",name:""};if(0===path.length)return ret;var start,code=path.charCodeAt(0),isAbsolute=47===code;isAbsolute?(ret.root="/",start=1):start=0;for(var startDot=-1,startPart=0,end=-1,matchedSlash=!0,i=path.length-1,preDotState=0;i>=start;--i)if(47!==(code=path.charCodeAt(i)))-1===end&&(matchedSlash=!1,end=i+1),46===code?-1===startDot?startDot=i:1!==preDotState&&(preDotState=1):-1!==startDot&&(preDotState=-1);else if(!matchedSlash){startPart=i+1;break}return-1===startDot||-1===end||0===preDotState||1===preDotState&&startDot===end-1&&startDot===startPart+1?-1!==end&&(ret.base=ret.name=0===startPart&&isAbsolute?path.slice(1,end):path.slice(startPart,end)):(0===startPart&&isAbsolute?(ret.name=path.slice(1,startDot),ret.base=path.slice(1,end)):(ret.name=path.slice(startPart,startDot),ret.base=path.slice(startPart,end)),ret.ext=path.slice(startDot,end)),startPart>0?ret.dir=path.slice(0,startPart-1):isAbsolute&&(ret.dir="/"),ret},sep:"/",delimiter:":",win32:null,posix:null};posix.posix=posix,module.exports=posix}).call(this)}).call(this,require("_process"))},{_process:151}],145:[function(require,module,exports){exports.pbkdf2=require("./lib/async"),exports.pbkdf2Sync=require("./lib/sync")},{"./lib/async":146,"./lib/sync":149}],146:[function(require,module,exports){(function(global){(function(){var ZERO_BUF,nextTick,Buffer=require("safe-buffer").Buffer,checkParameters=require("./precondition"),defaultEncoding=require("./default-encoding"),sync=require("./sync"),toBuffer=require("./to-buffer"),subtle=global.crypto&&global.crypto.subtle,toBrowser={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},checks=[];function getNextTick(){return nextTick||(nextTick=global.process&&global.process.nextTick?global.process.nextTick:global.queueMicrotask?global.queueMicrotask:global.setImmediate?global.setImmediate:global.setTimeout)}function browserPbkdf2(password,salt,iterations,length,algo){return subtle.importKey("raw",password,{name:"PBKDF2"},!1,["deriveBits"]).then((function(key){return subtle.deriveBits({name:"PBKDF2",salt:salt,iterations:iterations,hash:{name:algo}},key,length<<3)})).then((function(res){return Buffer.from(res)}))}module.exports=function(password,salt,iterations,keylen,digest,callback){"function"==typeof digest&&(callback=digest,digest=void 0);var algo=toBrowser[(digest=digest||"sha1").toLowerCase()];if(algo&&"function"==typeof global.Promise){if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,"Password"),salt=toBuffer(salt,defaultEncoding,"Salt"),"function"!=typeof callback)throw new Error("No callback provided to pbkdf2");!function(promise,callback){promise.then((function(out){getNextTick()((function(){callback(null,out)}))}),(function(e){getNextTick()((function(){callback(e)}))}))}(function(algo){if(global.process&&!global.process.browser)return Promise.resolve(!1);if(!subtle||!subtle.importKey||!subtle.deriveBits)return Promise.resolve(!1);if(void 0!==checks[algo])return checks[algo];var prom=browserPbkdf2(ZERO_BUF=ZERO_BUF||Buffer.alloc(8),ZERO_BUF,10,128,algo).then((function(){return!0})).catch((function(){return!1}));return checks[algo]=prom,prom}(algo).then((function(resp){return resp?browserPbkdf2(password,salt,iterations,keylen,algo):sync(password,salt,iterations,keylen,digest)})),callback)}else getNextTick()((function(){var out;try{out=sync(password,salt,iterations,keylen,digest)}catch(e){return callback(e)}callback(null,out)}))}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./default-encoding":147,"./precondition":148,"./sync":149,"./to-buffer":150,"safe-buffer":162}],147:[function(require,module,exports){(function(process,global){(function(){var defaultEncoding;if(global.process&&global.process.browser)defaultEncoding="utf-8";else if(global.process&&global.process.version){defaultEncoding=parseInt(process.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else defaultEncoding="utf-8";module.exports=defaultEncoding}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:151}],148:[function(require,module,exports){var MAX_ALLOC=Math.pow(2,30)-1;module.exports=function(iterations,keylen){if("number"!=typeof iterations)throw new TypeError("Iterations not a number");if(iterations<0)throw new TypeError("Bad iterations");if("number"!=typeof keylen)throw new TypeError("Key length not a number");if(keylen<0||keylen>MAX_ALLOC||keylen!=keylen)throw new TypeError("Bad key length")}},{}],149:[function(require,module,exports){var md5=require("create-hash/md5"),RIPEMD160=require("ripemd160"),sha=require("sha.js"),Buffer=require("safe-buffer").Buffer,checkParameters=require("./precondition"),defaultEncoding=require("./default-encoding"),toBuffer=require("./to-buffer"),ZEROS=Buffer.alloc(128),sizes={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Hmac(alg,key,saltLen){var hash=function(alg){function shaFunc(data){return sha(alg).update(data).digest()}function rmd160Func(data){return(new RIPEMD160).update(data).digest()}return"rmd160"===alg||"ripemd160"===alg?rmd160Func:"md5"===alg?md5:shaFunc}(alg),blocksize="sha512"===alg||"sha384"===alg?128:64;key.length>blocksize?key=hash(key):key.length1)for(var i=1;ik||new BN(enc).cmp(key.modulus)>=0)throw new Error("decryption error");msg=reverse?withPublic(new BN(enc),key):crt(enc,key);var zBuffer=Buffer.alloc(k-msg.length);if(msg=Buffer.concat([zBuffer,msg],k),4===padding)return function(key,msg){var k=key.modulus.byteLength(),iHash=createHash("sha1").update(Buffer.alloc(0)).digest(),hLen=iHash.length;if(0!==msg[0])throw new Error("decryption error");var maskedSeed=msg.slice(1,hLen+1),maskedDb=msg.slice(hLen+1),seed=xor(maskedSeed,mgf(maskedDb,hLen)),db=xor(maskedDb,mgf(seed,k-hLen-1));if(function(a,b){a=Buffer.from(a),b=Buffer.from(b);var dif=0,len=a.length;a.length!==b.length&&(dif++,len=Math.min(a.length,b.length));var i=-1;for(;++i=msg.length){status++;break}var ps=msg.slice(2,i-1);("0002"!==p1.toString("hex")&&!reverse||"0001"!==p1.toString("hex")&&reverse)&&status++;ps.length<8&&status++;if(status)throw new Error("decryption error");return msg.slice(i)}(0,msg,reverse);if(3===padding)return msg;throw new Error("unknown padding")}},{"./mgf":153,"./withPublic":157,"./xor":158,"bn.js":154,"browserify-rsa":41,"create-hash":68,"parse-asn1":143,"safe-buffer":162}],156:[function(require,module,exports){var parseKeys=require("parse-asn1"),randomBytes=require("randombytes"),createHash=require("create-hash"),mgf=require("./mgf"),xor=require("./xor"),BN=require("bn.js"),withPublic=require("./withPublic"),crt=require("browserify-rsa"),Buffer=require("safe-buffer").Buffer;module.exports=function(publicKey,msg,reverse){var padding;padding=publicKey.padding?publicKey.padding:reverse?1:4;var paddedMsg,key=parseKeys(publicKey);if(4===padding)paddedMsg=function(key,msg){var k=key.modulus.byteLength(),mLen=msg.length,iHash=createHash("sha1").update(Buffer.alloc(0)).digest(),hLen=iHash.length,hLen2=2*hLen;if(mLen>k-hLen2-2)throw new Error("message too long");var ps=Buffer.alloc(k-mLen-hLen2-2),dblen=k-hLen-1,seed=randomBytes(hLen),maskedDb=xor(Buffer.concat([iHash,ps,Buffer.alloc(1,1),msg],dblen),mgf(seed,dblen)),maskedSeed=xor(seed,mgf(maskedDb,hLen));return new BN(Buffer.concat([Buffer.alloc(1),maskedSeed,maskedDb],k))}(key,msg);else if(1===padding)paddedMsg=function(key,msg,reverse){var ps,mLen=msg.length,k=key.modulus.byteLength();if(mLen>k-11)throw new Error("message too long");ps=reverse?Buffer.alloc(k-mLen-3,255):function(len){var num,out=Buffer.allocUnsafe(len),i=0,cache=randomBytes(2*len),cur=0;for(;i=0)throw new Error("data too long for modulus")}return reverse?crt(paddedMsg,key):withPublic(paddedMsg,key)}},{"./mgf":153,"./withPublic":157,"./xor":158,"bn.js":154,"browserify-rsa":41,"create-hash":68,"parse-asn1":143,randombytes:159,"safe-buffer":162}],157:[function(require,module,exports){var BN=require("bn.js"),Buffer=require("safe-buffer").Buffer;module.exports=function(paddedMsg,key){return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray())}},{"bn.js":154,"safe-buffer":162}],158:[function(require,module,exports){module.exports=function(a,b){for(var len=a.length,i=-1;++i4294967295)throw new RangeError("requested too many random bytes");var bytes=Buffer.allocUnsafe(size);if(size>0)if(size>65536)for(var generated=0;generatedkMaxUint32||offset<0)throw new TypeError("offset must be a uint32");if(offset>kBufferMaxLength||offset>length)throw new RangeError("offset out of range")}function assertSize(size,offset,length){if("number"!=typeof size||size!=size)throw new TypeError("size must be a number");if(size>kMaxUint32||size<0)throw new TypeError("size must be a uint32");if(size+offset>length||size>kBufferMaxLength)throw new RangeError("buffer too small")}function actualFill(buf,offset,size,cb){if(process.browser){var ourBuf=buf.buffer,uint=new Uint8Array(ourBuf,offset,size);return crypto.getRandomValues(uint),cb?void process.nextTick((function(){cb(null,buf)})):buf}if(!cb)return randombytes(size).copy(buf,offset),buf;randombytes(size,(function(err,bytes){if(err)return cb(err);bytes.copy(buf,offset),cb(null,buf)}))}crypto&&crypto.getRandomValues||!process.browser?(exports.randomFill=function(buf,offset,size,cb){if(!(Buffer.isBuffer(buf)||buf instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof offset)cb=offset,offset=0,size=buf.length;else if("function"==typeof size)cb=size,size=buf.length-offset;else if("function"!=typeof cb)throw new TypeError('"cb" argument must be a function');return assertOffset(offset,buf.length),assertSize(size,offset,buf.length),actualFill(buf,offset,size,cb)},exports.randomFillSync=function(buf,offset,size){void 0===offset&&(offset=0);if(!(Buffer.isBuffer(buf)||buf instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');assertOffset(offset,buf.length),void 0===size&&(size=buf.length-offset);return assertSize(size,offset,buf.length),actualFill(buf,offset,size)}):(exports.randomFill=oldBrowser,exports.randomFillSync=oldBrowser)}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:151,randombytes:159,"safe-buffer":162}],161:[function(require,module,exports){"use strict";var Buffer=require("buffer").Buffer,inherits=require("inherits"),HashBase=require("hash-base"),ARRAY16=new Array(16),zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function rotl(x,n){return x<>>32-n}function fn1(a,b,c,d,e,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+e|0}function fn2(a,b,c,d,e,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+e|0}function fn3(a,b,c,d,e,m,k,s){return rotl(a+((b|~c)^d)+m+k|0,s)+e|0}function fn4(a,b,c,d,e,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+e|0}function fn5(a,b,c,d,e,m,k,s){return rotl(a+(b^(c|~d))+m+k|0,s)+e|0}inherits(RIPEMD160,HashBase),RIPEMD160.prototype._update=function(){for(var words=ARRAY16,j=0;j<16;++j)words[j]=this._block.readInt32LE(4*j);for(var al=0|this._a,bl=0|this._b,cl=0|this._c,dl=0|this._d,el=0|this._e,ar=0|this._a,br=0|this._b,cr=0|this._c,dr=0|this._d,er=0|this._e,i=0;i<80;i+=1){var tl,tr;i<16?(tl=fn1(al,bl,cl,dl,el,words[zl[i]],hl[0],sl[i]),tr=fn5(ar,br,cr,dr,er,words[zr[i]],hr[0],sr[i])):i<32?(tl=fn2(al,bl,cl,dl,el,words[zl[i]],hl[1],sl[i]),tr=fn4(ar,br,cr,dr,er,words[zr[i]],hr[1],sr[i])):i<48?(tl=fn3(al,bl,cl,dl,el,words[zl[i]],hl[2],sl[i]),tr=fn3(ar,br,cr,dr,er,words[zr[i]],hr[2],sr[i])):i<64?(tl=fn4(al,bl,cl,dl,el,words[zl[i]],hl[3],sl[i]),tr=fn2(ar,br,cr,dr,er,words[zr[i]],hr[3],sr[i])):(tl=fn5(al,bl,cl,dl,el,words[zl[i]],hl[4],sl[i]),tr=fn1(ar,br,cr,dr,er,words[zr[i]],hr[4],sr[i])),al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=tl,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=tr}var t=this._b+cl+dr|0;this._b=this._c+dl+er|0,this._c=this._d+el+ar|0,this._d=this._e+al+br|0,this._e=this._a+bl+cr|0,this._a=t},RIPEMD160.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer.alloc?Buffer.alloc(20):new Buffer(20);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer.writeInt32LE(this._e,16),buffer},module.exports=RIPEMD160},{buffer:64,"hash-base":103,inherits:133}],162:[function(require,module,exports){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var buffer=require("buffer"),Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow?module.exports=buffer:(copyProps(buffer,exports),exports.Buffer=SafeBuffer),SafeBuffer.prototype=Object.create(Buffer.prototype),copyProps(Buffer,SafeBuffer),SafeBuffer.from=function(arg,encodingOrOffset,length){if("number"==typeof arg)throw new TypeError("Argument must not be a number");return Buffer(arg,encodingOrOffset,length)},SafeBuffer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError("Argument must be a number");var buf=Buffer(size);return void 0!==fill?"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill):buf.fill(0),buf},SafeBuffer.allocUnsafe=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return Buffer(size)},SafeBuffer.allocUnsafeSlow=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return buffer.SlowBuffer(size)}},{buffer:64}],163:[function(require,module,exports){(function(process){(function(){"use strict";var key,buffer=require("buffer"),Buffer=buffer.Buffer,safer={};for(key in buffer)buffer.hasOwnProperty(key)&&"SlowBuffer"!==key&&"Buffer"!==key&&(safer[key]=buffer[key]);var Safer=safer.Buffer={};for(key in Buffer)Buffer.hasOwnProperty(key)&&"allocUnsafe"!==key&&"allocUnsafeSlow"!==key&&(Safer[key]=Buffer[key]);if(safer.Buffer.prototype=Buffer.prototype,Safer.from&&Safer.from!==Uint8Array.from||(Safer.from=function(value,encodingOrOffset,length){if("number"==typeof value)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof value);if(value&&void 0===value.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);return Buffer(value,encodingOrOffset,length)}),Safer.alloc||(Safer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError('The "size" argument must be of type number. Received type '+typeof size);if(size<0||size>=2*(1<<30))throw new RangeError('The value "'+size+'" is invalid for option "size"');var buf=Buffer(size);return fill&&0!==fill.length?"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill):buf.fill(0),buf}),!safer.kStringMaxLength)try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}safer.constants||(safer.constants={MAX_LENGTH:safer.kMaxLength},safer.kStringMaxLength&&(safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength)),module.exports=safer}).call(this)}).call(this,require("_process"))},{_process:151,buffer:64}],164:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function Hash(blockSize,finalSize){this._block=Buffer.alloc(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=Buffer.from(data,enc));for(var block=this._block,blockSize=this._blockSize,length=data.length,accum=this._len,offset=0;offset=this._finalSize&&(this._update(this._block),this._block.fill(0));var bits=8*this._len;if(bits<=4294967295)this._block.writeUInt32BE(bits,this._blockSize-4);else{var lowBits=(4294967295&bits)>>>0,highBits=(bits-lowBits)/4294967296;this._block.writeUInt32BE(highBits,this._blockSize-8),this._block.writeUInt32BE(lowBits,this._blockSize-4)}this._update(this._block);var hash=this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash},{"safe-buffer":162}],165:[function(require,module,exports){(exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm}).sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":166,"./sha1":167,"./sha224":168,"./sha256":169,"./sha384":170,"./sha512":171}],166:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(M){for(var num,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;j<80;++j){var s=~~(j/20),t=0|((num=a)<<5|num>>>27)+ft(s,b,c,d)+e+W[j]+K[s];e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha},{"./hash":164,inherits:133,"safe-buffer":162}],167:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(M){for(var num,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=(num=W[i-3]^W[i-8]^W[i-14]^W[i-16])<<1|num>>>31;for(var j=0;j<80;++j){var s=~~(j/20),t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1},{"./hash":164,inherits:133,"safe-buffer":162}],168:[function(require,module,exports){var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=new Array(64);function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var H=Buffer.allocUnsafe(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224},{"./hash":164,"./sha256":169,inherits:133,"safe-buffer":162}],169:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){for(var x,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<64;++i)W[i]=0|(((x=W[i-2])>>>17|x<<15)^(x>>>19|x<<13)^x>>>10)+W[i-7]+gamma0(W[i-15])+W[i-16];for(var j=0;j<64;++j){var T1=h+sigma1(e)+ch(e,f,g)+K[j]+W[j]|0,T2=sigma0(a)+maj(a,b,c)|0;h=g,g=f,f=e,e=d+T1|0,d=c,c=b,b=a,a=T1+T2|0}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=Buffer.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256},{"./hash":164,inherits:133,"safe-buffer":162}],170:[function(require,module,exports){var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=new Array(160);function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){var H=Buffer.allocUnsafe(48);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),H},module.exports=Sha384},{"./hash":164,"./sha512":171,inherits:133,"safe-buffer":162}],171:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0>>0?1:0}inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(M){for(var W=this._w,ah=0|this._ah,bh=0|this._bh,ch=0|this._ch,dh=0|this._dh,eh=0|this._eh,fh=0|this._fh,gh=0|this._gh,hh=0|this._hh,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0;i<32;i+=2)W[i]=M.readInt32BE(4*i),W[i+1]=M.readInt32BE(4*i+4);for(;i<160;i+=2){var xh=W[i-30],xl=W[i-30+1],gamma0=Gamma0(xh,xl),gamma0l=Gamma0l(xl,xh),gamma1=Gamma1(xh=W[i-4],xl=W[i-4+1]),gamma1l=Gamma1l(xl,xh),Wi7h=W[i-14],Wi7l=W[i-14+1],Wi16h=W[i-32],Wi16l=W[i-32+1],Wil=gamma0l+Wi7l|0,Wih=gamma0+Wi7h+getCarry(Wil,gamma0l)|0;Wih=(Wih=Wih+gamma1+getCarry(Wil=Wil+gamma1l|0,gamma1l)|0)+Wi16h+getCarry(Wil=Wil+Wi16l|0,Wi16l)|0,W[i]=Wih,W[i+1]=Wil}for(var j=0;j<160;j+=2){Wih=W[j],Wil=W[j+1];var majh=maj(ah,bh,ch),majl=maj(al,bl,cl),sigma0h=sigma0(ah,al),sigma0l=sigma0(al,ah),sigma1h=sigma1(eh,el),sigma1l=sigma1(el,eh),Kih=K[j],Kil=K[j+1],chh=Ch(eh,fh,gh),chl=Ch(el,fl,gl),t1l=hl+sigma1l|0,t1h=hh+sigma1h+getCarry(t1l,hl)|0;t1h=(t1h=(t1h=t1h+chh+getCarry(t1l=t1l+chl|0,chl)|0)+Kih+getCarry(t1l=t1l+Kil|0,Kil)|0)+Wih+getCarry(t1l=t1l+Wil|0,Wil)|0;var t2l=sigma0l+majl|0,t2h=sigma0h+majh+getCarry(t2l,sigma0l)|0;hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,eh=dh+t1h+getCarry(el=dl+t1l|0,dl)|0,dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,ah=t1h+t2h+getCarry(al=t1l+t2l|0,t1l)|0}this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._ah=this._ah+ah+getCarry(this._al,al)|0,this._bh=this._bh+bh+getCarry(this._bl,bl)|0,this._ch=this._ch+ch+getCarry(this._cl,cl)|0,this._dh=this._dh+dh+getCarry(this._dl,dl)|0,this._eh=this._eh+eh+getCarry(this._el,el)|0,this._fh=this._fh+fh+getCarry(this._fl,fl)|0,this._gh=this._gh+gh+getCarry(this._gl,gl)|0,this._hh=this._hh+hh+getCarry(this._hl,hl)|0},Sha512.prototype._hash=function(){var H=Buffer.allocUnsafe(64);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),H},module.exports=Sha512},{"./hash":164,inherits:133,"safe-buffer":162}],172:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;function Stream(){EE.call(this)}require("inherits")(Stream,EE),Stream.Readable=require("readable-stream/lib/_stream_readable.js"),Stream.Writable=require("readable-stream/lib/_stream_writable.js"),Stream.Duplex=require("readable-stream/lib/_stream_duplex.js"),Stream.Transform=require("readable-stream/lib/_stream_transform.js"),Stream.PassThrough=require("readable-stream/lib/_stream_passthrough.js"),Stream.finished=require("readable-stream/lib/internal/streams/end-of-stream.js"),Stream.pipeline=require("readable-stream/lib/internal/streams/pipeline.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&!1===options.end||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:101,inherits:133,"readable-stream/lib/_stream_duplex.js":174,"readable-stream/lib/_stream_passthrough.js":175,"readable-stream/lib/_stream_readable.js":176,"readable-stream/lib/_stream_transform.js":177,"readable-stream/lib/_stream_writable.js":178,"readable-stream/lib/internal/streams/end-of-stream.js":182,"readable-stream/lib/internal/streams/pipeline.js":184}],173:[function(require,module,exports){arguments[4][48][0].apply(exports,arguments)},{dup:48}],174:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{"./_stream_readable":176,"./_stream_writable":178,_process:151,dup:49,inherits:133}],175:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{"./_stream_transform":177,dup:50,inherits:133}],176:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{"../errors":173,"./_stream_duplex":174,"./internal/streams/async_iterator":179,"./internal/streams/buffer_list":180,"./internal/streams/destroy":181,"./internal/streams/from":183,"./internal/streams/state":185,"./internal/streams/stream":186,_process:151,buffer:64,dup:51,events:101,inherits:133,"string_decoder/":187,util:20}],177:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{"../errors":173,"./_stream_duplex":174,dup:52,inherits:133}],178:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{"../errors":173,"./_stream_duplex":174,"./internal/streams/destroy":181,"./internal/streams/state":185,"./internal/streams/stream":186,_process:151,buffer:64,dup:53,inherits:133,"util-deprecate":188}],179:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{"./end-of-stream":182,_process:151,dup:54}],180:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{buffer:64,dup:55,util:20}],181:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{_process:151,dup:56}],182:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{"../../../errors":173,dup:57}],183:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],184:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{"../../../errors":173,"./end-of-stream":182,dup:59}],185:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{"../../../errors":173,dup:60}],186:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61,events:101}],187:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,isEncoding=Buffer.isEncoding||function(encoding){switch((encoding=""+encoding)&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function StringDecoder(encoding){var nb;switch(this.encoding=function(enc){var nenc=function(enc){if(!enc)return"utf8";for(var retried;;)switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase(),retried=!0}}(enc);if("string"!=typeof nenc&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}(encoding),this.encoding){case"utf16le":this.text=utf16Text,this.end=utf16End,nb=4;break;case"utf8":this.fillLast=utf8FillLast,nb=4;break;case"base64":this.text=base64Text,this.end=base64End,nb=3;break;default:return this.write=simpleWrite,void(this.end=simpleEnd)}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer.allocUnsafe(nb)}function utf8CheckByte(byte){return byte<=127?0:byte>>5==6?2:byte>>4==14?3:byte>>3==30?4:byte>>6==2?-1:-2}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=function(self,buf,p){if(128!=(192&buf[0]))return self.lastNeed=0,"�";if(self.lastNeed>1&&buf.length>1){if(128!=(192&buf[1]))return self.lastNeed=1,"�";if(self.lastNeed>2&&buf.length>2&&128!=(192&buf[2]))return self.lastNeed=2,"�"}}(this,buf);return void 0!==r?r:this.lastNeed<=buf.length?(buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(buf.copy(this.lastChar,p,0,buf.length),void(this.lastNeed-=buf.length))}function utf16Text(buf,i){if((buf.length-i)%2==0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;return 0===n?buf.toString("base64",i):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=buf[buf.length-1]:(this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1]),buf.toString("base64",i,buf.length-n))}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+this.lastChar.toString("base64",0,3-this.lastNeed):r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}exports.StringDecoder=StringDecoder,StringDecoder.prototype.write=function(buf){if(0===buf.length)return"";var r,i;if(this.lastNeed){if(void 0===(r=this.fillLast(buf)))return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i=0)return nb>0&&(self.lastNeed=nb-1),nb;if(--j=0)return nb>0&&(self.lastNeed=nb-2),nb;if(--j=0)return nb>0&&(2===nb?nb=0:self.lastNeed=nb-3),nb;return 0}(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString("utf8",i,end)},StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length),this.lastNeed-=buf.length}},{"safe-buffer":162}],188:[function(require,module,exports){(function(global){(function(){function config(name){try{if(!global.localStorage)return!1}catch(_){return!1}var val=global.localStorage[name];return null!=val&&"true"===String(val).toLowerCase()}module.exports=function(fn,msg){if(config("noDeprecation"))return fn;var warned=!1;return function(){if(!warned){if(config("throwDeprecation"))throw new Error(msg);config("traceDeprecation")?console.trace(msg):console.warn(msg),warned=!0}return fn.apply(this,arguments)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],189:[function(require,module,exports){"use strict";const createVCD=require("../out/vcd.js"),webVcdParser=require("../lib/web-vcd-parser.js");window.getVcdStream=async function(){const wasm=await createVCD();return await webVcdParser(wasm)}},{"../lib/web-vcd-parser.js":191,"../out/vcd.js":192}],190:[function(require,module,exports){"use strict";module.exports=(info,cmd,str)=>{switch(str=str.trim(),cmd){case 1:info.comment=str;break;case 2:info.date=str;break;case 3:((info,str)=>{const[type,name]=str.split(/\s+/),ero={kind:"scope",type:type,name:name,body:[]};info.stack[info.stack.length-1].body.push(ero),info.stack.push(ero)})(info,str);break;case 4:info.timescale=str;break;case 5:(info=>{info.stack.pop()})(info);break;case 6:((info,str)=>{const eroj=str.split(/\s+/),ero={kind:"var",type:eroj[0],size:parseInt(eroj[1]),link:eroj[2],name:eroj.slice(3).join("")};{const m=ero.name.match("^(?\\w+)\\["+(ero.size-1)+":0]$");m&&(ero.name=m.groups.name)}info.stack[info.stack.length-1].body.push(ero)})(info,str);break;case 7:info.version=str;break;default:console.log([cmd,str])}}},{}],191:[function(require,module,exports){"use strict";const stream=require("stream"),EventEmitter=require("events").EventEmitter,commandHandler=require("./command-handler.js");function h8ToBn(HEAPU8,start,len){if(0===len)return 0n;let str="";const fin=start+8*len;for(let i=start;i{const lib=(wasm=>{const c={};let bindCallback;const getString=(name,len)=>{let string="";const end=name+len;for(let i=name;i{const name=getString(eventName,eventNameLength);if(cmd>=14&&cmd<=28)ee[1](name,time,cmd);else{const bigValue=h8ToBn(wasm.HEAPU8,value,valueWords),bigMask=h8ToBn(wasm.HEAPU8,mask,maskWords);ee[1](name,time,cmd,bigValue,bigMask)}};return bindCallback=()=>{boundSet=wasm.addFunction((function(name,len,type,v0,v1){let prop=getString(name,len);switch(type){case 0:boundInfo[prop]=v0;break;case 1:boundInfo[prop]=getString(v0,v1);break;case 2:case 3:case 4:break;case 5:commandHandler(boundInfo,v0,prop);break;default:throw new Error}}),"viiiii"),boundGet=wasm.addFunction((function(name,len){return getString(name,len)}),"iii"),boundEE0=wasm.addFunction((function(name,len){ee[0](getString(name,len))}),"vii"),boundEE1=wasm.addFunction(onEE1,"viijiiiii")},{start:async()=>{((c,wasm)=>{const w=wasm.cwrap;c.execute=w("execute","number",["number","number","number","number","number","array","number"]),c.init=w("init","number",["number","number","number","number"]),c.getTime=w("getTime","number",["number"]),c.setTrigger=w("setTrigger","number",["number","string"])})(c,wasm),bindCallback()},c:c,init:(cb0,cb1,info)=>(boundInfo=info,ee[0]=cb0,ee[1]=cb1,context=c.init(boundEE0,boundEE1,boundSet,boundGet),context),execute:(ctx,cb0,cb1,info,chunk)=>(boundInfo=info,ee[0]=cb0,ee[1]=cb1,c.execute(ctx,boundEE0,boundEE1,boundSet,boundGet,chunk,chunk.length)),setTrigger:(ctx,triggerString)=>c.setTrigger(ctx,triggerString),getTime:ctx=>BigInt(c.getTime(ctx))}})(wasm);await lib.start();const wires={kind:"scope",type:".",name:".",body:[]},info={stack:[wires],wires:wires},s=new stream.Writable,lifemit=s.emit.bind(s),triee=new EventEmitter,triemit=triee.emit.bind(triee);let triemit2=triemit;const cxt=lib.init(lifemit,triemit,info);return s._write=function(chunk,encoding,callback){const err=lib.execute(cxt,lifemit,triemit2,info,chunk);err&&console.log(err),callback()},s.change={on:(id,fn)=>{triemit2=triemit,triee.on(id,fn);const triggerString=triee.eventNames().join(" ")+" ";lib.setTrigger(cxt,triggerString)},any:fn=>{triemit2=fn,lib.setTrigger(cxt,"\0")}},s.info=info,s.getTime=()=>lib.getTime(cxt),s.start=lib.start,s}},{"./command-handler.js":190,events:101,stream:172}],192:[function(require,module,exports){(function(process,Buffer,__filename,__argument0,__argument1,__argument2,__argument3,__dirname){(function(){var _scriptDir,Module=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,void 0!==__filename&&(_scriptDir=_scriptDir||__filename),function(Module={}){var readyPromiseResolve,readyPromiseReject;(Module=void 0!==Module?Module:{}).ready=new Promise((function(resolve,reject){readyPromiseResolve=resolve,readyPromiseReject=reject}));var read_,readAsync,readBinary,moduleOverrides=Object.assign({},Module),thisProgram="./this.program",quit_=(status,toThrow)=>{throw toThrow},ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,scriptDirectory="";if(ENVIRONMENT_IS_NODE){var fs=require("fs"),nodePath=require("path");scriptDirectory=ENVIRONMENT_IS_WORKER?nodePath.dirname(scriptDirectory)+"/":__dirname+"/",read_=(filename,binary)=>(filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename),fs.readFileSync(filename,binary?void 0:"utf8")),readBinary=filename=>{var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),ret},readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename),fs.readFile(filename,(function(err,data){err?onerror(err):onload(data.buffer)}))},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus))throw ex})),process.version.match(/^v(\d+)\./)[1]<15&&process.on("unhandledRejection",(function(reason){throw reason})),quit_=(status,toThrow)=>{if(keepRuntimeAlive())throw process.exitCode=status,toThrow;var e;(e=toThrow)instanceof ExitStatus||err("exiting due to exception: "+e),process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"}}else(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:"undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1):"",read_=url=>{var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=url=>{var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=()=>{200==xhr.status||0==xhr.status&&xhr.response?onload(xhr.response):onerror()},xhr.onerror=onerror,xhr.send(null)});var wasmBinary,out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);Object.assign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit),Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var wasmMemory,noExitRuntime=Module.noExitRuntime||!0;"object"!=typeof WebAssembly&&abort("no native wasm support detected");var EXITSTATUS,HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPF64,wasmTable,ABORT=!1,UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){for(var endIdx=idx+maxBytesToRead,endPtr=idx;heapOrArray[endPtr]&&!(endPtr>=endIdx);)++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder)return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr));for(var str="";idx>10,56320|1023&ch)}}else str+=String.fromCharCode((31&u0)<<6|u1)}else str+=String.fromCharCode(u0)}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&str.charCodeAt(++i)),u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|63&u}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|63&u}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|63&u}}return heap[outIdx]=0,outIdx-startIdx}function lengthBytesUTF8(str){for(var len=0,i=0;i=55296&&c<=57343?(len+=4,++i):len+=3}return len}function updateMemoryViews(){var b=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(b),Module.HEAP16=HEAP16=new Int16Array(b),Module.HEAP32=HEAP32=new Int32Array(b),Module.HEAPU8=HEAPU8=new Uint8Array(b),Module.HEAPU16=new Uint16Array(b),Module.HEAPU32=HEAPU32=new Uint32Array(b),Module.HEAPF32=HEAPF32=new Float32Array(b),Module.HEAPF64=HEAPF64=new Float64Array(b),Module.HEAP64=HEAP64=new BigInt64Array(b),Module.HEAPU64=new BigUint64Array(b)}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[];function keepRuntimeAlive(){return noExitRuntime}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}function abort(what){Module.onAbort&&Module.onAbort(what),err(what="Aborted("+what+")"),ABORT=!0,EXITSTATUS=1,what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw readyPromiseReject(e),e}var wasmBinaryFile,path,tempDouble,tempI64,dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(file);throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}function callRuntimeCallbacks(callbacks){for(;callbacks.length>0;)callbacks.shift()(Module)}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{return wasmMemory.grow(size-b.byteLength+65535>>>16),updateMemoryViews(),1}catch(e){}}isDataURI(wasmBinaryFile="vcd.wasm")||(path=wasmBinaryFile,wasmBinaryFile=Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path);var ENV={};function getEnvStrings(){if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:thisProgram||"./this.program"};for(var x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var strings=[];for(var x in env)strings.push(x+"="+env[x]);getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={isAbs:path=>"/"===path.charAt(0),splitPath:filename=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(filename).slice(1),normalizeArray:(parts,allowAboveRoot)=>{for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];"."===last?parts.splice(i,1):".."===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash="/"===path.substr(-1);return(path=PATH.normalizeArray(path.split("/").filter((p=>!!p)),!isAbsolute).join("/"))||isAbsolute||(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];return root||dir?(dir&&(dir=dir.substr(0,dir.length-1)),root+dir):"."},basename:path=>{if("/"===path)return"/";var lastSlash=(path=(path=PATH.normalize(path)).replace(/\/$/,"")).lastIndexOf("/");return-1===lastSlash?path:path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)},PATH_FS={resolve:function(){for(var resolvedPath="",resolvedAbsolute=!1,i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if("string"!=typeof path)throw new TypeError("Arguments to path.resolve must be strings");if(!path)return"";resolvedPath=path+"/"+resolvedPath,resolvedAbsolute=PATH.isAbs(path)}return(resolvedAbsolute?"/":"")+(resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((p=>!!p)),!resolvedAbsolute).join("/"))||"."},relative:(from,to)=>{function trim(arr){for(var start=0;start=0&&""===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=PATH_FS.resolve(from).substr(1),to=PATH_FS.resolve(to).substr(1);for(var fromParts=trim(from.split("/")),toParts=trim(to.split("/")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;i0?length:lengthBytesUTF8(stringy)+1,u8array=new Array(len),numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);return dontAddNull&&(u8array.length=numBytesWritten),u8array}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops},FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty)throw new FS.ErrnoError(43);stream.tty=tty,stream.seekable=!1},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char)throw new FS.ErrnoError(60);for(var bytesRead=0,i=0;i0?buf.slice(0,bytesRead).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(result=window.prompt("Input: "))&&(result+="\n"):"function"==typeof readline&&null!==(result=readline())&&(result+="\n");if(!result)return null;tty.input=intArrayFromString(result,!0)}return tty.input.shift()},put_char:function(tty,val){null===val||10===val?(out(UTF8ArrayToString(tty.output,0)),tty.output=[]):0!=val&&tty.output.push(val)},fsync:function(tty){tty.output&&tty.output.length>0&&(out(UTF8ArrayToString(tty.output,0)),tty.output=[])}},default_tty1_ops:{put_char:function(tty,val){null===val||10===val?(err(UTF8ArrayToString(tty.output,0)),tty.output=[]):0!=val&&tty.output.push(val)},fsync:function(tty){tty.output&&tty.output.length>0&&(err(UTF8ArrayToString(tty.output,0)),tty.output=[])}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16895,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var node=FS.createNode(parent,name,mode,dev);return FS.isDir(node.mode)?(node.node_ops=MEMFS.ops_table.dir.node,node.stream_ops=MEMFS.ops_table.dir.stream,node.contents={}):FS.isFile(node.mode)?(node.node_ops=MEMFS.ops_table.file.node,node.stream_ops=MEMFS.ops_table.file.stream,node.usedBytes=0,node.contents=null):FS.isLink(node.mode)?(node.node_ops=MEMFS.ops_table.link.node,node.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(node.mode)&&(node.node_ops=MEMFS.ops_table.chrdev.node,node.stream_ops=MEMFS.ops_table.chrdev.stream),node.timestamp=Date.now(),parent&&(parent.contents[name]=node,parent.timestamp=node.timestamp),node},getFileDataAsTypedArray:function(node){return node.contents?node.contents.subarray?node.contents.subarray(0,node.usedBytes):new Uint8Array(node.contents):new Uint8Array(0)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(!(prevCapacity>=newCapacity)){newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<1048576?2:1.125)>>>0),0!=prevCapacity&&(newCapacity=Math.max(newCapacity,256));var oldContents=node.contents;node.contents=new Uint8Array(newCapacity),node.usedBytes>0&&node.contents.set(oldContents.subarray(0,node.usedBytes),0)}},resizeFileStorage:function(node,newSize){if(node.usedBytes!=newSize)if(0==newSize)node.contents=null,node.usedBytes=0;else{var oldContents=node.contents;node.contents=new Uint8Array(newSize),oldContents&&node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes))),node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};return attr.dev=FS.isChrdev(node.mode)?node.id:1,attr.ino=node.id,attr.mode=node.mode,attr.nlink=1,attr.uid=0,attr.gid=0,attr.rdev=node.rdev,FS.isDir(node.mode)?attr.size=4096:FS.isFile(node.mode)?attr.size=node.usedBytes:FS.isLink(node.mode)?attr.size=node.link.length:attr.size=0,attr.atime=new Date(node.timestamp),attr.mtime=new Date(node.timestamp),attr.ctime=new Date(node.timestamp),attr.blksize=4096,attr.blocks=Math.ceil(attr.size/attr.blksize),attr},setattr:function(node,attr){void 0!==attr.mode&&(node.mode=attr.mode),void 0!==attr.timestamp&&(node.timestamp=attr.timestamp),void 0!==attr.size&&MEMFS.resizeFileStorage(node,attr.size)},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node)for(var i in new_node.contents)throw new FS.ErrnoError(55)}delete old_node.parent.contents[old_node.name],old_node.parent.timestamp=Date.now(),old_node.name=new_name,new_dir.contents[new_name]=old_node,new_dir.timestamp=old_node.parent.timestamp,old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name],parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents)throw new FS.ErrnoError(55);delete parent.contents[name],parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents)node.contents.hasOwnProperty(key)&&entries.push(key);return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,41471,0);return node.link=oldpath,node},readlink:function(node){if(!FS.isLink(node.mode))throw new FS.ErrnoError(28);return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray)buffer.set(contents.subarray(position,position+size),offset);else for(var i=0;i0||position+length{var text;text='Loading data file "'+url+'" failed (no arrayBuffer).',arrayBuffer||abort(text),onload(new Uint8Array(arrayBuffer)),dep&&removeRunDependency()}),(event=>{if(!onerror)throw'Loading data file "'+url+'" failed.';onerror()})),dep&&addRunDependency()}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{if(!(path=PATH_FS.resolve(path)))return{path:"",node:null};if((opts=Object.assign({follow_mount:!0,recurse_count:0},opts)).recurse_count>8)throw new FS.ErrnoError(32);for(var parts=path.split("/").filter((p=>!!p)),current=FS.root,current_path="/",i=0;i40)throw new FS.ErrnoError(32)}}return{path:current_path,node:current}},getPath:node=>{for(var path;;){if(FS.isRoot(node)){var mount=node.mount.mountpoint;return path?"/"!==mount[mount.length-1]?mount+"/"+path:mount+path:mount}path=path?node.name+"/"+path:node.name,node=node.parent}},hashName:(parentid,name)=>{for(var hash=0,i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash],FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node)FS.nameTable[hash]=node.name_next;else for(var current=FS.nameTable[hash];current;){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode)throw new FS.ErrnoError(errCode,parent);for(var hash=FS.hashName(parent.id,name),node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name)return node}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);return FS.hashAddNode(node),node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>node===node.parent,isMountpoint:node=>!!node.mounted,isFile:mode=>32768==(61440&mode),isDir:mode=>16384==(61440&mode),isLink:mode=>40960==(61440&mode),isChrdev:mode=>8192==(61440&mode),isBlkdev:mode=>24576==(61440&mode),isFIFO:mode=>4096==(61440&mode),isSocket:mode=>49152==(49152&mode),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(void 0===flags)throw new Error("Unknown file open mode: "+str);return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][3&flag];return 512&flag&&(perms+="w"),perms},nodePermissions:(node,perms)=>FS.ignorePermissions||(!perms.includes("r")||292&node.mode)&&(!perms.includes("w")||146&node.mode)&&(!perms.includes("x")||73&node.mode)?0:2,mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");return errCode||(dir.node_ops.lookup?0:2)},mayCreate:(dir,name)=>{try{return FS.lookupNode(dir,name),20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode)return errCode;if(isdir){if(!FS.isDir(node.mode))return 54;if(FS.isRoot(node)||FS.getPath(node)===FS.cwd())return 10}else if(FS.isDir(node.mode))return 31;return 0},mayOpen:(node,flags)=>node?FS.isLink(node.mode)?32:FS.isDir(node.mode)&&("r"!==FS.flagsToPermissionString(flags)||512&flags)?31:FS.nodePermissions(node,FS.flagsToPermissionString(flags)):44,MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++)if(!FS.streams[fd])return fd;throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{FS.FSStream||(FS.FSStream=function(){this.shared={}},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})),stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);return stream.fd=fd,FS.streams[fd]=stream,stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops,stream.stream_ops.open&&stream.stream_ops.open(stream)},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>255&dev,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{for(var mounts=[],check=[mount];check.length;){var m=check.pop();mounts.push(m),check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{"function"==typeof populate&&(callback=populate,populate=!1),FS.syncFSRequests++,FS.syncFSRequests>1&&err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var mounts=FS.getMounts(FS.root.mount),completed=0;function doCallback(errCode){return FS.syncFSRequests--,callback(errCode)}function done(errCode){if(errCode)return done.errored?void 0:(done.errored=!0,doCallback(errCode));++completed>=mounts.length&&doCallback(null)}mounts.forEach((mount=>{if(!mount.type.syncfs)return done(null);mount.type.syncfs(mount,populate,done)}))},mount:(type,opts,mountpoint)=>{var node,root="/"===mountpoint,pseudo=!mountpoint;if(root&&FS.root)throw new FS.ErrnoError(10);if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:!1});if(mountpoint=lookup.path,node=lookup.node,FS.isMountpoint(node))throw new FS.ErrnoError(10);if(!FS.isDir(node.mode))throw new FS.ErrnoError(54)}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]},mountRoot=type.mount(mount);return mountRoot.mount=mount,mount.root=mountRoot,root?FS.root=mountRoot:node&&(node.mounted=mount,node.mount&&node.mount.mounts.push(mount)),mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:!1});if(!FS.isMountpoint(lookup.node))throw new FS.ErrnoError(28);var node=lookup.node,mount=node.mounted,mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((hash=>{for(var current=FS.nameTable[hash];current;){var next=current.name_next;mounts.includes(current.mount)&&FS.destroyNode(current),current=next}})),node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>parent.node_ops.lookup(parent,name),mknod:(path,mode,dev)=>{var parent=FS.lookupPath(path,{parent:!0}).node,name=PATH.basename(path);if(!name||"."===name||".."===name)throw new FS.ErrnoError(28);var errCode=FS.mayCreate(parent,name);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.mknod)throw new FS.ErrnoError(63);return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>(mode=void 0!==mode?mode:438,mode&=4095,mode|=32768,FS.mknod(path,mode,0)),mkdir:(path,mode)=>(mode=void 0!==mode?mode:511,mode&=1023,mode|=16384,FS.mknod(path,mode,0)),mkdirTree:(path,mode)=>{for(var dirs=path.split("/"),d="",i=0;i(void 0===dev&&(dev=mode,mode=438),mode|=8192,FS.mknod(path,mode,dev)),symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath))throw new FS.ErrnoError(44);var parent=FS.lookupPath(newpath,{parent:!0}).node;if(!parent)throw new FS.ErrnoError(44);var newname=PATH.basename(newpath),errCode=FS.mayCreate(parent,newname);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.symlink)throw new FS.ErrnoError(63);return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dir,new_dir,old_dirname=PATH.dirname(old_path),new_dirname=PATH.dirname(new_path),old_name=PATH.basename(old_path),new_name=PATH.basename(new_path);if(old_dir=FS.lookupPath(old_path,{parent:!0}).node,new_dir=FS.lookupPath(new_path,{parent:!0}).node,!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount)throw new FS.ErrnoError(75);var new_node,old_node=FS.lookupNode(old_dir,old_name),relative=PATH_FS.relative(old_path,new_dirname);if("."!==relative.charAt(0))throw new FS.ErrnoError(28);if("."!==(relative=PATH_FS.relative(new_path,old_dirname)).charAt(0))throw new FS.ErrnoError(55);try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node!==new_node){var isdir=FS.isDir(old_node.mode),errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode)throw new FS.ErrnoError(errCode);if(errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name))throw new FS.ErrnoError(errCode);if(!old_dir.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node))throw new FS.ErrnoError(10);if(new_dir!==old_dir&&(errCode=FS.nodePermissions(old_dir,"w")))throw new FS.ErrnoError(errCode);FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}}},rmdir:path=>{var parent=FS.lookupPath(path,{parent:!0}).node,name=PATH.basename(path),node=FS.lookupNode(parent,name),errCode=FS.mayDelete(parent,name,!0);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(node))throw new FS.ErrnoError(10);parent.node_ops.rmdir(parent,name),FS.destroyNode(node)},readdir:path=>{var node=FS.lookupPath(path,{follow:!0}).node;if(!node.node_ops.readdir)throw new FS.ErrnoError(54);return node.node_ops.readdir(node)},unlink:path=>{var parent=FS.lookupPath(path,{parent:!0}).node;if(!parent)throw new FS.ErrnoError(44);var name=PATH.basename(path),node=FS.lookupNode(parent,name),errCode=FS.mayDelete(parent,name,!1);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(node))throw new FS.ErrnoError(10);parent.node_ops.unlink(parent,name),FS.destroyNode(node)},readlink:path=>{var link=FS.lookupPath(path).node;if(!link)throw new FS.ErrnoError(44);if(!link.node_ops.readlink)throw new FS.ErrnoError(28);return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var node=FS.lookupPath(path,{follow:!dontFollow}).node;if(!node)throw new FS.ErrnoError(44);if(!node.node_ops.getattr)throw new FS.ErrnoError(63);return node.node_ops.getattr(node)},lstat:path=>FS.stat(path,!0),chmod:(path,mode,dontFollow)=>{var node;if(!(node="string"==typeof path?FS.lookupPath(path,{follow:!dontFollow}).node:path).node_ops.setattr)throw new FS.ErrnoError(63);node.node_ops.setattr(node,{mode:4095&mode|-4096&node.mode,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,!0)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(!(node="string"==typeof path?FS.lookupPath(path,{follow:!dontFollow}).node:path).node_ops.setattr)throw new FS.ErrnoError(63);node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,!0)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0)throw new FS.ErrnoError(28);var node;if(!(node="string"==typeof path?FS.lookupPath(path,{follow:!0}).node:path).node_ops.setattr)throw new FS.ErrnoError(63);if(FS.isDir(node.mode))throw new FS.ErrnoError(31);if(!FS.isFile(node.mode))throw new FS.ErrnoError(28);var errCode=FS.nodePermissions(node,"w");if(errCode)throw new FS.ErrnoError(errCode);node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);if(0==(2097155&stream.flags))throw new FS.ErrnoError(28);FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var node=FS.lookupPath(path,{follow:!0}).node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(""===path)throw new FS.ErrnoError(44);var node;if(mode=void 0===mode?438:mode,mode=64&(flags="string"==typeof flags?FS.modeStringToFlags(flags):flags)?4095&mode|32768:0,"object"==typeof path)node=path;else{path=PATH.normalize(path);try{node=FS.lookupPath(path,{follow:!(131072&flags)}).node}catch(e){}}var created=!1;if(64&flags)if(node){if(128&flags)throw new FS.ErrnoError(20)}else node=FS.mknod(path,mode,0),created=!0;if(!node)throw new FS.ErrnoError(44);if(FS.isChrdev(node.mode)&&(flags&=-513),65536&flags&&!FS.isDir(node.mode))throw new FS.ErrnoError(54);if(!created){var errCode=FS.mayOpen(node,flags);if(errCode)throw new FS.ErrnoError(errCode)}512&flags&&!created&&FS.truncate(node,0),flags&=-131713;var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:!0,position:0,stream_ops:node.stream_ops,ungotten:[],error:!1});return stream.stream_ops.open&&stream.stream_ops.open(stream),!Module.logReadFiles||1&flags||(FS.readFiles||(FS.readFiles={}),path in FS.readFiles||(FS.readFiles[path]=1)),stream},close:stream=>{if(FS.isClosed(stream))throw new FS.ErrnoError(8);stream.getdents&&(stream.getdents=null);try{stream.stream_ops.close&&stream.stream_ops.close(stream)}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>null===stream.fd,llseek:(stream,offset,whence)=>{if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(!stream.seekable||!stream.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=whence&&1!=whence&&2!=whence)throw new FS.ErrnoError(28);return stream.position=stream.stream_ops.llseek(stream,offset,whence),stream.ungotten=[],stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(1==(2097155&stream.flags))throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.read)throw new FS.ErrnoError(28);var seeking=void 0!==position;if(seeking){if(!stream.seekable)throw new FS.ErrnoError(70)}else position=stream.position;var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);return seeking||(stream.position+=bytesRead),bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(0==(2097155&stream.flags))throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.write)throw new FS.ErrnoError(28);stream.seekable&&1024&stream.flags&&FS.llseek(stream,0,2);var seeking=void 0!==position;if(seeking){if(!stream.seekable)throw new FS.ErrnoError(70)}else position=stream.position;var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);return seeking||(stream.position+=bytesWritten),bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(offset<0||length<=0)throw new FS.ErrnoError(28);if(0==(2097155&stream.flags))throw new FS.ErrnoError(8);if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode))throw new FS.ErrnoError(43);if(!stream.stream_ops.allocate)throw new FS.ErrnoError(138);stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if(0!=(2&prot)&&0==(2&flags)&&2!=(2097155&stream.flags))throw new FS.ErrnoError(2);if(1==(2097155&stream.flags))throw new FS.ErrnoError(2);if(!stream.stream_ops.mmap)throw new FS.ErrnoError(43);return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>stream.stream_ops.msync?stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags):0,munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl)throw new FS.ErrnoError(59);return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{if(opts.flags=opts.flags||0,opts.encoding=opts.encoding||"binary","utf8"!==opts.encoding&&"binary"!==opts.encoding)throw new Error('Invalid encoding type "'+opts.encoding+'"');var ret,stream=FS.open(path,opts.flags),length=FS.stat(path).size,buf=new Uint8Array(length);return FS.read(stream,buf,0,length,0),"utf8"===opts.encoding?ret=UTF8ArrayToString(buf,0):"binary"===opts.encoding&&(ret=buf),FS.close(stream),ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if("string"==typeof data){var buf=new Uint8Array(lengthBytesUTF8(data)+1),actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,void 0,opts.canOwn)}else{if(!ArrayBuffer.isView(data))throw new Error("Unsupported data type");FS.write(stream,data,0,data.byteLength,void 0,opts.canOwn)}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:!0});if(null===lookup.node)throw new FS.ErrnoError(44);if(!FS.isDir(lookup.node.mode))throw new FS.ErrnoError(54);var errCode=FS.nodePermissions(lookup.node,"x");if(errCode)throw new FS.ErrnoError(errCode);FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var randomBuffer=new Uint8Array(1);return()=>(crypto.getRandomValues(randomBuffer),randomBuffer[0])}if(ENVIRONMENT_IS_NODE)try{var crypto_module=require("crypto");return()=>crypto_module.randomBytes(1)[0]}catch(e){}return()=>abort("randomDevice")}();FS.createDevice("/dev","random",random_device),FS.createDevice("/dev","urandom",random_device),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd"),FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16895,73);return node.node_ops={lookup:(parent,name)=>{var fd=+name,stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};return ret.parent=ret,ret}},node}},{},"/proc/self/fd")},createStandardStreams:()=>{Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr"),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1)},ensureErrnoError:()=>{FS.ErrnoError||(FS.ErrnoError=function(errno,node){this.node=node,this.setErrno=function(errno){this.errno=errno},this.setErrno(errno),this.message="FS error"},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach((code=>{FS.genericErrors[code]=new FS.ErrnoError(code),FS.genericErrors[code].stack=""})))},staticInit:()=>{FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS}},init:(input,output,error)=>{FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=input||Module.stdin,Module.stdout=output||Module.stdout,Module.stderr=error||Module.stderr,FS.createStandardStreams()},quit:()=>{FS.init.initialized=!1;for(var i=0;i{var mode=0;return canRead&&(mode|=365),canWrite&&(mode|=146),mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);return ret.exists?ret.object:null},analyzePath:(path,dontResolveLastLink)=>{try{path=(lookup=FS.lookupPath(path,{follow:!dontResolveLastLink})).path}catch(e){}var ret={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:!0});ret.parentExists=!0,ret.parentPath=lookup.path,ret.parentObject=lookup.node,ret.name=PATH.basename(path),lookup=FS.lookupPath(path,{follow:!dontResolveLastLink}),ret.exists=!0,ret.path=lookup.path,ret.object=lookup.node,ret.name=lookup.node.name,ret.isRoot="/"===lookup.path}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent="string"==typeof parent?parent:FS.getPath(parent);for(var parts=path.split("/").reverse();parts.length;){var part=parts.pop();if(part){var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2("string"==typeof parent?parent:FS.getPath(parent),name),mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;parent&&(parent="string"==typeof parent?parent:FS.getPath(parent),path=name?PATH.join2(parent,name):parent);var mode=FS.getMode(canRead,canWrite),node=FS.create(path,mode);if(data){if("string"==typeof data){for(var arr=new Array(data.length),i=0,len=data.length;i{var path=PATH.join2("string"==typeof parent?parent:FS.getPath(parent),name),mode=FS.getMode(!!input,!!output);FS.createDevice.major||(FS.createDevice.major=64);var dev=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(dev,{open:stream=>{stream.seekable=!1},close:stream=>{output&&output.buffer&&output.buffer.length&&output(10)},read:(stream,buffer,offset,length,pos)=>{for(var bytesRead=0,i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!read_)throw new Error("Cannot load without read() or XMLHttpRequest.");try{obj.contents=intArrayFromString(read_(obj.url),!0),obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=!1,this.chunks=[]}if(LazyUint8Array.prototype.get=function(idx){if(!(idx>this.length-1||idx<0)){var chunkOffset=idx%this.chunkSize,chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}},LazyUint8Array.prototype.setDataGetter=function(getter){this.getter=getter},LazyUint8Array.prototype.cacheLength=function(){var xhr=new XMLHttpRequest;if(xhr.open("HEAD",url,!1),xhr.send(null),!(xhr.status>=200&&xhr.status<300||304===xhr.status))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var header,datalength=Number(xhr.getResponseHeader("Content-length")),hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&"bytes"===header,usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&"gzip"===header,chunkSize=1048576;hasByteServing||(chunkSize=datalength);var lazyArray=this;lazyArray.setDataGetter((chunkNum=>{var start=chunkNum*chunkSize,end=(chunkNum+1)*chunkSize-1;if(end=Math.min(end,datalength-1),void 0===lazyArray.chunks[chunkNum]&&(lazyArray.chunks[chunkNum]=((from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;if(xhr.open("GET",url,!1),datalength!==chunkSize&&xhr.setRequestHeader("Range","bytes="+from+"-"+to),xhr.responseType="arraybuffer",xhr.overrideMimeType&&xhr.overrideMimeType("text/plain; charset=x-user-defined"),xhr.send(null),!(xhr.status>=200&&xhr.status<300||304===xhr.status))throw new Error("Couldn't load "+url+". Status: "+xhr.status);return void 0!==xhr.response?new Uint8Array(xhr.response||[]):intArrayFromString(xhr.responseText||"",!0)})(start,end)),void 0===lazyArray.chunks[chunkNum])throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]})),!usesGzip&&datalength||(chunkSize=datalength=1,datalength=this.getter(0).length,chunkSize=datalength,out("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=datalength,this._chunkSize=chunkSize,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var properties={isDevice:!1,contents:lazyArray}}else properties={isDevice:!1,url:url};var node=FS.createFile(parent,name,properties,canRead,canWrite);properties.contents?node.contents=properties.contents:properties.url&&(node.contents=null,node.url=properties.url),Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice)for(var i=0;i{var fn=node.stream_ops[key];stream_ops[key]=function(){return FS.forceLoadFile(node),fn.apply(null,arguments)}})),stream_ops.read=(stream,buffer,offset,length,position)=>(FS.forceLoadFile(node),writeChunks(stream,buffer,offset,length,position)),stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc();if(!ptr)throw new FS.ErrnoError(48);return writeChunks(stream,HEAP8,ptr,length,position),{ptr:ptr,allocated:!0}},node.stream_ops=stream_ops,node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray){preFinish&&preFinish(),dontCreateFile||FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn),onload&&onload(),removeRunDependency()}Browser.handledByPreloadPlugin(byteArray,fullname,finish,(()=>{onerror&&onerror(),removeRunDependency()}))||finish(byteArray)}addRunDependency(),"string"==typeof url?asyncLoad(url,(byteArray=>processData(byteArray)),onerror):processData(url)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db"),openRequest.result.createObjectStore(FS.DB_STORE_NAME)},openRequest.onsuccess=()=>{var transaction=openRequest.result.transaction([FS.DB_STORE_NAME],"readwrite"),files=transaction.objectStore(FS.DB_STORE_NAME),ok=0,fail=0,total=paths.length;function finish(){0==fail?onload():onerror()}paths.forEach((path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{++ok+fail==total&&finish()},putRequest.onerror=()=>{fail++,ok+fail==total&&finish()}})),transaction.onerror=onerror},openRequest.onerror=onerror},loadFilesFromDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror,openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void onerror(e)}var files=transaction.objectStore(FS.DB_STORE_NAME),ok=0,fail=0,total=paths.length;function finish(){0==fail?onload():onerror()}paths.forEach((path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{FS.analyzePath(path).exists&&FS.unlink(path),FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,!0,!0,!0),++ok+fail==total&&finish()},getRequest.onerror=()=>{fail++,ok+fail==total&&finish()}})),transaction.onerror=onerror},openRequest.onerror=onerror}},SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path))return path;var dir;if(dir=-100===dirfd?FS.cwd():SYSCALLS.getStreamFromFD(dirfd).path,0==path.length){if(!allowEmpty)throw new FS.ErrnoError(44);return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}HEAP32[buf>>2]=stat.dev,HEAP32[buf+8>>2]=stat.ino,HEAP32[buf+12>>2]=stat.mode,HEAPU32[buf+16>>2]=stat.nlink,HEAP32[buf+20>>2]=stat.uid,HEAP32[buf+24>>2]=stat.gid,HEAP32[buf+28>>2]=stat.rdev,tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1],HEAP32[buf+48>>2]=4096,HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime(),mtime=stat.mtime.getTime(),ctime=stat.ctime.getTime();return tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1],HEAPU32[buf+64>>2]=atime%1e3*1e3,tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1],HEAPU32[buf+80>>2]=mtime%1e3*1e3,tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1],HEAPU32[buf+96>>2]=ctime%1e3*1e3,tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1],0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode))throw new FS.ErrnoError(43);if(2&flags)return 0;var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(ptr){return UTF8ToString(ptr)},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}},MAX_INT53=9007199254740992,MIN_INT53=-9007199254740992;function __isLeapYear(year){return year%4==0&&(year%100!=0||year%400==0)}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2],date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""},pattern=UTF8ToString(format),EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1)pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule]);var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){for(var str="number"==typeof value?value.toString():value||"";str.length0?1:0}var compare;return 0===(compare=sgn(date1.getFullYear()-date2.getFullYear()))&&0===(compare=sgn(date1.getMonth()-date2.getMonth()))&&(compare=sgn(date1.getDate()-date2.getDate())),compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=function(date,days){for(var newDate=new Date(date.getTime());days>0;){var leap=__isLeapYear(newDate.getFullYear()),currentMonth=newDate.getMonth(),daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(!(days>daysInCurrentMonth-newDate.getDate()))return newDate.setDate(newDate.getDate()+days),newDate;days-=daysInCurrentMonth-newDate.getDate()+1,newDate.setDate(1),currentMonth<11?newDate.setMonth(currentMonth+1):(newDate.setMonth(0),newDate.setFullYear(newDate.getFullYear()+1))}return newDate}(new Date(date.tm_year+1900,0,1),date.tm_yday),janFourthThisYear=new Date(thisDate.getFullYear(),0,4),janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4),firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear),firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);return compareByDay(firstWeekStartThisYear,thisDate)<=0?compareByDay(firstWeekStartNextYear,thisDate)<=0?thisDate.getFullYear()+1:thisDate.getFullYear():thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){return leadingNulls((date.tm_year+1900)/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;return 0==twelveHour?twelveHour=12:twelveHour>12&&(twelveHour-=12),leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+function(array,index){for(var sum=0,i=0;i<=index;sum+=array[i++]);return sum}(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){return date.tm_hour>=0&&date.tm_hour<12?"AM":"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2&&val++,val){if(53==val){var jan1=(date.tm_wday+371-date.tm_yday)%7;4==jan1||3==jan1&&__isLeapYear(date.tm_year)||(val=1)}}else{val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;(4==dec31||5==dec31&&__isLeapYear(date.tm_year%400-1))&&val++}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff,ahead=off>=0;return off=(off=Math.abs(off)/60)/60*100+off%60,(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in pattern=pattern.replace(/%%/g,"\0\0"),EXPANSION_RULES_2)pattern.includes(rule)&&(pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date)));var bytes=intArrayFromString(pattern=pattern.replace(/\0\0/g,"%"),!1);return bytes.length>maxsize?0:(writeArrayToMemory(bytes,s),bytes.length-1)}function exitJS(status,implicit){var code;EXITSTATUS=status,EXITSTATUS=code=status,keepRuntimeAlive()||(Module.onExit&&Module.onExit(code),ABORT=!0),quit_(code,new ExitStatus(code))}function getCFunc(ident){return Module["_"+ident]}function ccall(ident,returnType,argTypes,args,opts){var toC={string:str=>{var ret=0;if(null!=str&&0!==str){var len=1+(str.length<<2);!function(str,outPtr,maxBytesToWrite){stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}(str,ret=stackAlloc(len),len)}return ret},array:arr=>{var ret=stackAlloc(arr.length);return writeArrayToMemory(arr,ret),ret}},func=getCFunc(ident),cArgs=[],stack=0;if(args)for(var i=0;i>7)}function convertJsFunctionToWasm(func,sig){if("function"==typeof WebAssembly.Function)return new WebAssembly.Function(function(sig){for(var typeNames={i:"i32",j:"i32",f:"f32",d:"f64",p:"i32"},type={parameters:[],results:"v"==sig[0]?[]:[typeNames[sig[0]]]},i=1;i>>=0)>2147483648)return!1;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);if(overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296),emscripten_realloc_buffer(Math.min(2147483648,(x=Math.max(requestedSize,overGrownHeapSize))+((multiple=65536)-x%multiple)%multiple)))return!0}return!1},d:function(__environ,environ_buf){var bufSize=0;return getEnvStrings().forEach((function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+4*i>>2]=ptr,function(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i);dontAddNull||(HEAP8[buffer>>0]=0)}(string,ptr),bufSize+=string.length+1})),0},e:function(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;return strings.forEach((function(string){bufSize+=string.length+1})),HEAPU32[penviron_buf_size>>2]=bufSize,0},f:function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return FS.close(stream),0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}},g:function(fd,iov,iovcnt,pnum){try{var num=function(stream,iov,iovcnt,offset){for(var ret=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;if(ret+=curr,curr>2]=num,0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}},h:function(fd,offset,whence,newOffset){try{if(offset=(num=offset)MAX_INT53?NaN:Number(num),isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);return FS.llseek(stream,offset,whence),tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1],stream.getdents&&0===offset&&0===whence&&(stream.getdents=null),0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}var num},b:function(fd,iov,iovcnt,pnum){try{var num=function(stream,iov,iovcnt,offset){for(var ret=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr,void 0!==offset&&(offset+=curr)}return ret}(SYSCALLS.getStreamFromFD(fd),iov,iovcnt);return HEAPU32[pnum>>2]=num,0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}},c:function(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}},_main=(function(){var info={a:wasmImports};function receiveInstance(instance,module){var cb,exports=instance.exports;Module.asm=exports,wasmMemory=Module.asm.k,updateMemoryViews(),wasmTable=Module.asm.r,cb=Module.asm.l,__ATINIT__.unshift(cb),removeRunDependency()}function receiveInstantiationResult(result){receiveInstance(result.instance)}function instantiateArrayBuffer(receiver){return function(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if("function"==typeof fetch&&!isFileURI(wasmBinaryFile))return fetch(wasmBinaryFile,{credentials:"same-origin"}).then((function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()})).catch((function(){return getBinary(wasmBinaryFile)}));if(readAsync)return new Promise((function(resolve,reject){readAsync(wasmBinaryFile,(function(response){resolve(new Uint8Array(response))}),reject)}))}return Promise.resolve().then((function(){return getBinary(wasmBinaryFile)}))}().then((function(binary){return WebAssembly.instantiate(binary,info)})).then((function(instance){return instance})).then(receiver,(function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)}))}if(addRunDependency(),Module.instantiateWasm)try{return Module.instantiateWasm(info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e),readyPromiseReject(e)}(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||ENVIRONMENT_IS_NODE||"function"!=typeof fetch?instantiateArrayBuffer(receiveInstantiationResult):fetch(wasmBinaryFile,{credentials:"same-origin"}).then((function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiationResult,(function(reason){return err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiationResult)}))}))).catch(readyPromiseReject)}(),Module._init=function(){return(Module._init=Module.asm.m).apply(null,arguments)},Module._execute=function(){return(Module._execute=Module.asm.n).apply(null,arguments)},Module._setTrigger=function(){return(Module._setTrigger=Module.asm.o).apply(null,arguments)},Module._getTime=function(){return(Module._getTime=Module.asm.p).apply(null,arguments)},Module._main=function(){return(_main=Module._main=Module.asm.q).apply(null,arguments)}),stackSave=function(){return(stackSave=Module.asm.s).apply(null,arguments)},stackRestore=function(){return(stackRestore=Module.asm.t).apply(null,arguments)},stackAlloc=function(){return(stackAlloc=Module.asm.u).apply(null,arguments)};function callMain(){var entryFunction=_main;try{var ret=entryFunction(0,0);return exitJS(ret),ret}catch(e){return function(e){if(e instanceof ExitStatus||"unwind"==e)return EXITSTATUS;quit_(1,e)}(e)}}function run(){function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(Module.noFSInit||FS.init.initialized||FS.init(),FS.ignorePermissions=!1,TTY.init(),callRuntimeCallbacks(__ATINIT__),callRuntimeCallbacks(__ATMAIN__),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(),function(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}()))}runDependencies>0||(function(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)cb=Module.preRun.shift(),__ATPRERUN__.unshift(cb);var cb;callRuntimeCallbacks(__ATPRERUN__)}(),runDependencies>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),doRun()}),1)):doRun()))}if(Module.addOnPostRun=addOnPostRun,Module.ccall=ccall,Module.cwrap=function(ident,returnType,argTypes,opts){var numericArgs=!argTypes||argTypes.every((type=>"number"===type||"boolean"===type));return"string"!==returnType&&numericArgs&&!opts?getCFunc(ident):function(){return ccall(ident,returnType,argTypes,arguments)}},Module.addFunction=function(func,sig){var rtn=getFunctionAddress(func);if(rtn)return rtn;var ret=function(){if(freeTableIndexes.length)return freeTableIndexes.pop();try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError))throw err;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1}();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError))throw err;setWasmTableEntry(ret,convertJsFunctionToWasm(func,sig))}return functionsInTableMap.set(func,ret),ret},Module.setValue=function(ptr,value,type="i8"){switch(type.endsWith("*")&&(type="*"),type){case"i1":case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort("invalid type for setValue: "+type)}},Module.getValue=function(ptr,type="i8"){switch(type.endsWith("*")&&(type="*"),type){case"i1":case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort("invalid type for getValue: "+type)}return null},dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)},Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),run(),Module.ready});"object"==typeof exports&&"object"==typeof module?module.exports=Module:"function"==typeof define&&define.amd?define([],(function(){return Module})):"object"==typeof exports&&(exports.Module=Module)}).call(this)}).call(this,require("_process"),require("buffer").Buffer,"/out/vcd.js",arguments[3],arguments[4],arguments[5],arguments[6],"/out")},{_process:151,buffer:64,crypto:72,fs:1,path:144}]},{},[189]); \ No newline at end of file diff --git a/public/vcd.wasm b/public/vcd.wasm new file mode 100644 index 0000000000000000000000000000000000000000..941033bf56e66ade5f5d811db0318ea9bf44d059 GIT binary patch literal 126822 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 literal 0 HcmV?d00001 diff --git a/public/vscode.css b/public/vscode.css new file mode 100644 index 0000000..1ea0bed --- /dev/null +++ b/public/vscode.css @@ -0,0 +1,149 @@ +:root { + --font-monospace-family: var(--vscode-editor-font-family); + --font-monospace-weight: var(--vscode-editor-font-weight); + --font-monospace-size: var(--vscode-editor-font-size); + + --link-foreground: var(--vscode-textLink-foreground); + --link-active: var(--vscode-textLink-activeForeground); + + /* UI & Control */ + --input-active-background: var(--vscode-input-background); + --input-active-border: var(--vscode-focusBorder); + --input-active-foreground: var(--vscode-input-foreground); + + --input-error-background: var(--vscode-inputValidation-errorBackground); + --input-error-border: var(--vscode-inputValidation-errorBorder); + --input-error-foreground: var(--vscode-inputValidation-errorForeground); + + --input-foreground: var(--vscode-input-foreground); + --input-background: var(--vscode-input-background); + --input-border: var(--vscode-input-border); + --input-hover: var(--vscode-input-background); + --input-placeholder: var(--vscode-input-placeholderForeground); + --input-radius: 0px; + + --scrollbar-background: var(--vscode-scrollbarSlider-background); + --scrollbar-hover: var(--vscode-scrollbarSlider-hoverBackground); + --scrollbar-active: var(--vscode-scrollbarSlider-activeBackground); + + /* Window */ + --title-bar: #1f1f1f; + --title-color: #fff; + --foreground: var(--vscode-editor-foreground); + --background: var(--vscode-editor-background); + --label: rgb(189, 189, 189); + --shadow: #000; + --border: var(--vscode-input-border); + --window-button-hover: rgba(255,255,255,0.1); + --window-button-active: rgba(255,255,255,0.2); + --window-blur-background: rgba(0,0,0,0.25); + + --window-title-foreground: var(--foreground); + --window-background: var(--sidebar); + --window-border: transparent; + --window-radius: 0px; + + /* Sidebar */ + --sidebar: var(--vscode-sideBar-background); + --sidebar-border: var(--vscode-sideBar-border); + --sidebar-min-width: 280px; + + --sidebar-item-text: var(--vscode-list-inactiveSelectionForeground); + --sidebar-item-border: var(--vscode-input-border); + --sidebar-item-background: var(--sidebar); + --sidebar-item-selected: var(--vscode-list-inactiveSelectionBackground); + --sidebar-item-hover: var(--vscode-list-hoverBackground); + --sidebar-item-max-height: 40px; + --sidebar-item-radix-background: var(--vscode-breadcrumb-background); + + --sidebar-group-text: var(--vscode-sideBarSectionHeader-foreground); + --sidebar-group-border: var(--vscode-sideBarSectionHeader-border); + --sidebar-group-background: var(--vscode-sideBarSectionHeader-background); + + /* Labels */ + --signalSize-background: rgba(0,0,0,0.5); + --signalSize-border: rgba(255,255,255,0.2); + --signalSize-color: var(--foreground); + + /* Color Picker */ + --picker-swatch-size: 15px; + --picker-swatch-cols: 8; + --picker-background: var(--vscode-breadcrumbPicker-background); + --picker-border: var(--vscode-dropdown-border); + + /* Search */ + --search-background: var(--vscode-quickInput-background); + --search-border: var(--border); + --search-panel-background: transparent; + --search-panel-border: var(--vscode-pickerGroup-border); + --search-panel-text: var(--vscode-quickInput-foreground); + --search-label: var(--foreground); + --search-selected-background: var(--vscode-list-inactiveSelectionBackground); + + /* Properties */ + --properties-background: var(--vscode-breadcrumb-background); + --properties-border: var(--border); + + /* Navbar */ + --navBar-background: var(--sidebar); + --navBar-height: 32px; + --navBar-button: transparent; + --navBar-button-text: var(--foreground); + --navBar-group-background: var(--background); + --navBar-preview-background: var(--vscode-scrollbarSlider-background); + --navBar-slider-border: var(--foreground); + + /* Buttons */ + --button: var(--vscode-button-background); + --button-text: var(--vscode-button-foreground); + --button-hover: var(--vscode-button-hoverBackground); + --button-active: var(--vscode-button-hoverBackground); + --button-disabled: var(--vscode-activityBar-background); + --button-disabled-text: var(--vscode-activityBar-inactiveForeground); + + /* Grid Lines */ + --grid-dash: 2; + --grid-space: 4; + --grid-line: var(--vscode-editorIndentGuide-background); + --grid-tick: var(--vscode-editorIndentGuide-activeBackground); + + /* Cursor */ + --cursor: var(--vscode-editorCursor-foreground); + --cursor-ghost: rgba(255, 255, 255, 0.2); + --cursor-width: 2; + + /* X-Axis */ + --axis-height: 38px; + --axis-line: var(--border); + --axis-background: var(--vscode-sideBar-background); + --axis-foreground: var(--foreground); + + /* Signals */ + --signal-highlight: var(--vscode-list-inactiveSelectionBackground); + + /* Colors */ + --accent: var(--vscode-button-background); + --accent-dim: #234175; + --accent-bright: #24c5f7; + --accent-hover: var(--vscode-button-hoverBackground); + + --color-red: #ff5252; + --color-pink: #ff4081; + --color-purple: #e040fb; + --color-deepPurple: #7c4dff; + --color-indigo: #536dfe; + --color-blue: #448aff; + --color-lightBlue: #40c4ff; + --color-cyan: #18ffff; + --color-teal: #64ffda; + --color-green: #69f0ae; + --color-lightGreen: #b2ff59; + --color-lime: #eeff41; + --color-yellow: #ffff00; + --color-amber: #ffd740; + --color-orange: #ffab40; + --color-deepOrange: #ff6e40; + + /* Settings */ + --settings-action-background: var(--background); +} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 591a031..159ed64 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,26 +1,57 @@ - diff --git a/src/assets/logo.png b/src/assets/logo.png deleted file mode 100644 index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6849 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 -
-

{{ msg }}

-

- For a guide and recipes on how to configure / customize this project,
- check out the - vue-cli documentation. -

-

Installed CLI Plugins

- -

Essential Links

- -

Ecosystem

- -
- - - - - - diff --git a/src/hook/utils.js b/src/hook/utils.js new file mode 100644 index 0000000..2f425eb --- /dev/null +++ b/src/hook/utils.js @@ -0,0 +1,34 @@ +/* eslint-disable no-undef */ + +import { Stream } from "stream"; + +/** + * + * @returns {Promise} + */ +async function getVcdStream() { + const ostream = await window.getVcdStream(); + return ostream; +} + +/** + * @returns {Promise} + */ +async function readVcdFile() { + const response = await fetch('cpu.vcd'); + const blob = await response.blob(); + const reader = new FileReader(); + return new Promise((resolve, reject) => { + reader.onload = event => { + const fileContent = event.target.result; + const unintarray = new Uint8Array(fileContent); + resolve(unintarray); + }; + reader.readAsArrayBuffer(blob); + }); +} + +export { + getVcdStream, + readVcdFile +}; \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index 910e297..7664cf5 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,4 +1,14 @@ const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ - transpileDependencies: true + transpileDependencies: true, + chainWebpack: (config) => { + config.plugin('define').tap((definitions) => { + Object.assign(definitions[0], { + __VUE_OPTIONS_API__: 'true', + __VUE_PROD_DEVTOOLS__: 'false', + __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false' + }) + return definitions; + }) + } })