@pooflabs/web 0.0.81 → 0.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/{index-B2WGCssJ.js → index-BicMkamC.js} +221 -116
  2. package/dist/index-BicMkamC.js.map +1 -0
  3. package/dist/{index-nt_HQVrk.esm.js → index-BsY_Lgiu.esm.js} +222 -116
  4. package/dist/index-BsY_Lgiu.esm.js.map +1 -0
  5. package/dist/index-CHWmdXHE.esm.js +6 -0
  6. package/dist/index-CHWmdXHE.esm.js.map +1 -0
  7. package/dist/{index-CjHbp7Dq.esm.js → index-CK_2Zn89.esm.js} +135 -8
  8. package/dist/index-CK_2Zn89.esm.js.map +1 -0
  9. package/dist/{index-DXPkkq81.js → index-Ci3m3diI.js} +134 -7
  10. package/dist/index-Ci3m3diI.js.map +1 -0
  11. package/dist/{index-dcJIjFrs.esm.js → index-DWf2AOhe.esm.js} +134 -7
  12. package/dist/index-DWf2AOhe.esm.js.map +1 -0
  13. package/dist/{index-D_DiP8XQ.js → index-DlKo76M3.js} +135 -8
  14. package/dist/index-DlKo76M3.js.map +1 -0
  15. package/dist/index-Dz0bPXrU.js +8 -0
  16. package/dist/index-Dz0bPXrU.js.map +1 -0
  17. package/dist/{index.browser-CT6PUv9G.js → index.browser-BkMiHSON.js} +1366 -1569
  18. package/dist/index.browser-BkMiHSON.js.map +1 -0
  19. package/dist/index.browser-C-_FEr5M.esm.js +1134 -0
  20. package/dist/index.browser-C-_FEr5M.esm.js.map +1 -0
  21. package/dist/index.browser-C9bFQZyQ.esm.js +1373 -0
  22. package/dist/index.browser-C9bFQZyQ.esm.js.map +1 -0
  23. package/dist/{index.browser-BNdFfyIg.esm.js → index.browser-DCOvqSUT.esm.js} +1366 -1569
  24. package/dist/index.browser-DCOvqSUT.esm.js.map +1 -0
  25. package/dist/index.browser-Dbq5Qf1G.esm.js +242 -0
  26. package/dist/index.browser-Dbq5Qf1G.esm.js.map +1 -0
  27. package/dist/index.browser-Df7yN8D5.js +245 -0
  28. package/dist/index.browser-Df7yN8D5.js.map +1 -0
  29. package/dist/index.browser-DjEZSiqI.js +1137 -0
  30. package/dist/index.browser-DjEZSiqI.js.map +1 -0
  31. package/dist/index.browser-dszs5oe5.js +1376 -0
  32. package/dist/index.browser-dszs5oe5.js.map +1 -0
  33. package/dist/index.esm.js +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/{index.native-CyA-RdvW.js → index.native-11supFRU.js} +2683 -207
  36. package/dist/index.native-11supFRU.js.map +1 -0
  37. package/dist/{index.native-BqYr--vb.esm.js → index.native-CLaHKvDv.esm.js} +2682 -207
  38. package/dist/index.native-CLaHKvDv.esm.js.map +1 -0
  39. package/dist/index.native.esm.js +1 -1
  40. package/dist/index.native.js +1 -1
  41. package/dist/{phantom-wallet-provider-K2V96G-G.esm.js → phantom-wallet-provider-BN47klTp.esm.js} +4 -4
  42. package/dist/{phantom-wallet-provider-K2V96G-G.esm.js.map → phantom-wallet-provider-BN47klTp.esm.js.map} +1 -1
  43. package/dist/{phantom-wallet-provider-DWCaMkyz.js → phantom-wallet-provider-Xb070-O6.js} +4 -4
  44. package/dist/{phantom-wallet-provider-DWCaMkyz.js.map → phantom-wallet-provider-Xb070-O6.js.map} +1 -1
  45. package/dist/{privy-wallet-provider-BMg_S_d0.js → privy-wallet-provider-Ch22rj_G.js} +4 -4
  46. package/dist/privy-wallet-provider-Ch22rj_G.js.map +1 -0
  47. package/dist/{privy-wallet-provider-DoX8q99w.esm.js → privy-wallet-provider-DUJS5viU.esm.js} +4 -4
  48. package/dist/privy-wallet-provider-DUJS5viU.esm.js.map +1 -0
  49. package/dist/{solana-mobile-wallet-provider-Cmphb3oB.esm.js → solana-mobile-wallet-provider-BF04Xp8P.esm.js} +4 -4
  50. package/dist/{solana-mobile-wallet-provider-Cmphb3oB.esm.js.map → solana-mobile-wallet-provider-BF04Xp8P.esm.js.map} +1 -1
  51. package/dist/{solana-mobile-wallet-provider-t22Ie8lY.js → solana-mobile-wallet-provider-BXm94fqW.js} +4 -4
  52. package/dist/{solana-mobile-wallet-provider-t22Ie8lY.js.map → solana-mobile-wallet-provider-BXm94fqW.js.map} +1 -1
  53. package/package.json +2 -2
  54. package/dist/index-B2WGCssJ.js.map +0 -1
  55. package/dist/index-Bdcc5821.js +0 -2375
  56. package/dist/index-Bdcc5821.js.map +0 -1
  57. package/dist/index-CjHbp7Dq.esm.js.map +0 -1
  58. package/dist/index-CrOVJFX9.esm.js +0 -2373
  59. package/dist/index-CrOVJFX9.esm.js.map +0 -1
  60. package/dist/index-DXPkkq81.js.map +0 -1
  61. package/dist/index-D_DiP8XQ.js.map +0 -1
  62. package/dist/index-dcJIjFrs.esm.js.map +0 -1
  63. package/dist/index-nt_HQVrk.esm.js.map +0 -1
  64. package/dist/index.browser-BNdFfyIg.esm.js.map +0 -1
  65. package/dist/index.browser-CT6PUv9G.js.map +0 -1
  66. package/dist/index.browser-Cy21yaX0.esm.js +0 -1096
  67. package/dist/index.browser-Cy21yaX0.esm.js.map +0 -1
  68. package/dist/index.browser-OvGNsMPu.esm.js +0 -1002
  69. package/dist/index.browser-OvGNsMPu.esm.js.map +0 -1
  70. package/dist/index.browser-ZD7Tz2bn.js +0 -1099
  71. package/dist/index.browser-ZD7Tz2bn.js.map +0 -1
  72. package/dist/index.browser-d0PlOXpF.js +0 -105
  73. package/dist/index.browser-d0PlOXpF.js.map +0 -1
  74. package/dist/index.browser-pE1s68e9.esm.js +0 -102
  75. package/dist/index.browser-pE1s68e9.esm.js.map +0 -1
  76. package/dist/index.browser-vuTr40so.js +0 -1008
  77. package/dist/index.browser-vuTr40so.js.map +0 -1
  78. package/dist/index.native-BqYr--vb.esm.js.map +0 -1
  79. package/dist/index.native-CyA-RdvW.js.map +0 -1
  80. package/dist/privy-wallet-provider-BMg_S_d0.js.map +0 -1
  81. package/dist/privy-wallet-provider-DoX8q99w.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-nt_HQVrk.esm.js","sources":["../node_modules/@pooflabs/core/node_modules/tweetnacl/nacl-fast.js","../node_modules/@pooflabs/core/node_modules/bn.js/lib/bn.js","../node_modules/@pooflabs/core/node_modules/reconnecting-websocket/dist/reconnecting-websocket-mjs.js","../node_modules/@pooflabs/core/dist/index.mjs","../.rollup-tmp/platform.js","../.rollup-tmp/auth/providers/mock-auth-provider.js","../.rollup-tmp/auth/providers/offchain-auth-provider.js","../.rollup-tmp/auth/index.js","../.rollup-tmp/global.js","../.rollup-tmp/auth/hooks/useAuth.js","../.rollup-tmp/auth/providers/sol/sol-utils.js","../.rollup-tmp/utils.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../.rollup-tmp/auth/providers/transaction-utils.js","../.rollup-tmp/auth/providers/phantom-wallet-provider.js","../node_modules/@solana/kit/node_modules/@solana/errors/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/functional/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/promises/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-spec-types/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-spec/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-transformers/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-api/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-transport-http/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/fast-stable-stringify/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/subscribable/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-subscriptions-spec/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-subscriptions-api/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-subscriptions-channel-websocket/dist/index.browser.mjs","../node_modules/@solana/kit/node_modules/@solana/rpc-subscriptions/dist/index.browser.mjs","../node_modules/bs58/node_modules/base-x/src/cjs/index.cjs","../node_modules/bs58/index.js","../.rollup-tmp/auth/providers/privy-wallet-provider.js","../.rollup-tmp/auth/providers/solana-mobile-wallet-provider.js","../.rollup-tmp/auth/providers/privy-expo-provider.js"],"sourcesContent":["(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n this.length = num === 0 ? 1 : this.length;\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nvar Event = /** @class */ (function () {\r\n function Event(type, target) {\r\n this.target = target;\r\n this.type = type;\r\n }\r\n return Event;\r\n}());\r\nvar ErrorEvent = /** @class */ (function (_super) {\r\n __extends(ErrorEvent, _super);\r\n function ErrorEvent(error, target) {\r\n var _this = _super.call(this, 'error', target) || this;\r\n _this.message = error.message;\r\n _this.error = error;\r\n return _this;\r\n }\r\n return ErrorEvent;\r\n}(Event));\r\nvar CloseEvent = /** @class */ (function (_super) {\r\n __extends(CloseEvent, _super);\r\n function CloseEvent(code, reason, target) {\r\n if (code === void 0) { code = 1000; }\r\n if (reason === void 0) { reason = ''; }\r\n var _this = _super.call(this, 'close', target) || this;\r\n _this.wasClean = true;\r\n _this.code = code;\r\n _this.reason = reason;\r\n return _this;\r\n }\r\n return CloseEvent;\r\n}(Event));\n\n/*!\r\n * Reconnecting WebSocket\r\n * by Pedro Ladaria <pedro.ladaria@gmail.com>\r\n * https://github.com/pladaria/reconnecting-websocket\r\n * License MIT\r\n */\r\nvar getGlobalWebSocket = function () {\r\n if (typeof WebSocket !== 'undefined') {\r\n // @ts-ignore\r\n return WebSocket;\r\n }\r\n};\r\n/**\r\n * Returns true if given argument looks like a WebSocket class\r\n */\r\nvar isWebSocket = function (w) { return typeof w !== 'undefined' && !!w && w.CLOSING === 2; };\r\nvar DEFAULT = {\r\n maxReconnectionDelay: 10000,\r\n minReconnectionDelay: 1000 + Math.random() * 4000,\r\n minUptime: 5000,\r\n reconnectionDelayGrowFactor: 1.3,\r\n connectionTimeout: 4000,\r\n maxRetries: Infinity,\r\n maxEnqueuedMessages: Infinity,\r\n startClosed: false,\r\n debug: false,\r\n};\r\nvar ReconnectingWebSocket = /** @class */ (function () {\r\n function ReconnectingWebSocket(url, protocols, options) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n this._listeners = {\r\n error: [],\r\n message: [],\r\n open: [],\r\n close: [],\r\n };\r\n this._retryCount = -1;\r\n this._shouldReconnect = true;\r\n this._connectLock = false;\r\n this._binaryType = 'blob';\r\n this._closeCalled = false;\r\n this._messageQueue = [];\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to CLOSED\r\n */\r\n this.onclose = null;\r\n /**\r\n * An event listener to be called when an error occurs\r\n */\r\n this.onerror = null;\r\n /**\r\n * An event listener to be called when a message is received from the server\r\n */\r\n this.onmessage = null;\r\n /**\r\n * An event listener to be called when the WebSocket connection's readyState changes to OPEN;\r\n * this indicates that the connection is ready to send and receive data\r\n */\r\n this.onopen = null;\r\n this._handleOpen = function (event) {\r\n _this._debug('open event');\r\n var _a = _this._options.minUptime, minUptime = _a === void 0 ? DEFAULT.minUptime : _a;\r\n clearTimeout(_this._connectTimeout);\r\n _this._uptimeTimeout = setTimeout(function () { return _this._acceptOpen(); }, minUptime);\r\n _this._ws.binaryType = _this._binaryType;\r\n // send enqueued messages (messages sent before websocket open event)\r\n _this._messageQueue.forEach(function (message) { return _this._ws.send(message); });\r\n _this._messageQueue = [];\r\n if (_this.onopen) {\r\n _this.onopen(event);\r\n }\r\n _this._listeners.open.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleMessage = function (event) {\r\n _this._debug('message event');\r\n if (_this.onmessage) {\r\n _this.onmessage(event);\r\n }\r\n _this._listeners.message.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._handleError = function (event) {\r\n _this._debug('error event', event.message);\r\n _this._disconnect(undefined, event.message === 'TIMEOUT' ? 'timeout' : undefined);\r\n if (_this.onerror) {\r\n _this.onerror(event);\r\n }\r\n _this._debug('exec error listeners');\r\n _this._listeners.error.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n _this._connect();\r\n };\r\n this._handleClose = function (event) {\r\n _this._debug('close event');\r\n _this._clearTimeouts();\r\n if (_this._shouldReconnect) {\r\n _this._connect();\r\n }\r\n if (_this.onclose) {\r\n _this.onclose(event);\r\n }\r\n _this._listeners.close.forEach(function (listener) { return _this._callEventListener(event, listener); });\r\n };\r\n this._url = url;\r\n this._protocols = protocols;\r\n this._options = options;\r\n if (this._options.startClosed) {\r\n this._shouldReconnect = false;\r\n }\r\n this._connect();\r\n }\r\n Object.defineProperty(ReconnectingWebSocket, \"CONNECTING\", {\r\n get: function () {\r\n return 0;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"OPEN\", {\r\n get: function () {\r\n return 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSING\", {\r\n get: function () {\r\n return 2;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket, \"CLOSED\", {\r\n get: function () {\r\n return 3;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CONNECTING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"OPEN\", {\r\n get: function () {\r\n return ReconnectingWebSocket.OPEN;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSING\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"CLOSED\", {\r\n get: function () {\r\n return ReconnectingWebSocket.CLOSED;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"binaryType\", {\r\n get: function () {\r\n return this._ws ? this._ws.binaryType : this._binaryType;\r\n },\r\n set: function (value) {\r\n this._binaryType = value;\r\n if (this._ws) {\r\n this._ws.binaryType = value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"retryCount\", {\r\n /**\r\n * Returns the number or connection retries\r\n */\r\n get: function () {\r\n return Math.max(this._retryCount, 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"bufferedAmount\", {\r\n /**\r\n * The number of bytes of data that have been queued using calls to send() but not yet\r\n * transmitted to the network. This value resets to zero once all queued data has been sent.\r\n * This value does not reset to zero when the connection is closed; if you keep calling send(),\r\n * this will continue to climb. Read only\r\n */\r\n get: function () {\r\n var bytes = this._messageQueue.reduce(function (acc, message) {\r\n if (typeof message === 'string') {\r\n acc += message.length; // not byte size\r\n }\r\n else if (message instanceof Blob) {\r\n acc += message.size;\r\n }\r\n else {\r\n acc += message.byteLength;\r\n }\r\n return acc;\r\n }, 0);\r\n return bytes + (this._ws ? this._ws.bufferedAmount : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"extensions\", {\r\n /**\r\n * The extensions selected by the server. This is currently only the empty string or a list of\r\n * extensions as negotiated by the connection\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.extensions : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"protocol\", {\r\n /**\r\n * A string indicating the name of the sub-protocol the server selected;\r\n * this will be one of the strings specified in the protocols parameter when creating the\r\n * WebSocket object\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.protocol : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"readyState\", {\r\n /**\r\n * The current state of the connection; this is one of the Ready state constants\r\n */\r\n get: function () {\r\n if (this._ws) {\r\n return this._ws.readyState;\r\n }\r\n return this._options.startClosed\r\n ? ReconnectingWebSocket.CLOSED\r\n : ReconnectingWebSocket.CONNECTING;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReconnectingWebSocket.prototype, \"url\", {\r\n /**\r\n * The URL as resolved by the constructor\r\n */\r\n get: function () {\r\n return this._ws ? this._ws.url : '';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Closes the WebSocket connection or connection attempt, if any. If the connection is already\r\n * CLOSED, this method does nothing\r\n */\r\n ReconnectingWebSocket.prototype.close = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._closeCalled = true;\r\n this._shouldReconnect = false;\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n this._debug('close enqueued: no ws instance');\r\n return;\r\n }\r\n if (this._ws.readyState === this.CLOSED) {\r\n this._debug('close: already closed');\r\n return;\r\n }\r\n this._ws.close(code, reason);\r\n };\r\n /**\r\n * Closes the WebSocket connection or connection attempt and connects again.\r\n * Resets retry counter;\r\n */\r\n ReconnectingWebSocket.prototype.reconnect = function (code, reason) {\r\n this._shouldReconnect = true;\r\n this._closeCalled = false;\r\n this._retryCount = -1;\r\n if (!this._ws || this._ws.readyState === this.CLOSED) {\r\n this._connect();\r\n }\r\n else {\r\n this._disconnect(code, reason);\r\n this._connect();\r\n }\r\n };\r\n /**\r\n * Enqueue specified data to be transmitted to the server over the WebSocket connection\r\n */\r\n ReconnectingWebSocket.prototype.send = function (data) {\r\n if (this._ws && this._ws.readyState === this.OPEN) {\r\n this._debug('send', data);\r\n this._ws.send(data);\r\n }\r\n else {\r\n var _a = this._options.maxEnqueuedMessages, maxEnqueuedMessages = _a === void 0 ? DEFAULT.maxEnqueuedMessages : _a;\r\n if (this._messageQueue.length < maxEnqueuedMessages) {\r\n this._debug('enqueue', data);\r\n this._messageQueue.push(data);\r\n }\r\n }\r\n };\r\n /**\r\n * Register an event handler of a specific event type\r\n */\r\n ReconnectingWebSocket.prototype.addEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type].push(listener);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype.dispatchEvent = function (event) {\r\n var e_1, _a;\r\n var listeners = this._listeners[event.type];\r\n if (listeners) {\r\n try {\r\n for (var listeners_1 = __values(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {\r\n var listener = listeners_1_1.value;\r\n this._callEventListener(event, listener);\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes an event listener\r\n */\r\n ReconnectingWebSocket.prototype.removeEventListener = function (type, listener) {\r\n if (this._listeners[type]) {\r\n // @ts-ignore\r\n this._listeners[type] = this._listeners[type].filter(function (l) { return l !== listener; });\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this._options.debug) {\r\n // not using spread because compiled version uses Symbols\r\n // tslint:disable-next-line\r\n console.log.apply(console, __spread(['RWS>'], args));\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._getNextDelay = function () {\r\n var _a = this._options, _b = _a.reconnectionDelayGrowFactor, reconnectionDelayGrowFactor = _b === void 0 ? DEFAULT.reconnectionDelayGrowFactor : _b, _c = _a.minReconnectionDelay, minReconnectionDelay = _c === void 0 ? DEFAULT.minReconnectionDelay : _c, _d = _a.maxReconnectionDelay, maxReconnectionDelay = _d === void 0 ? DEFAULT.maxReconnectionDelay : _d;\r\n var delay = 0;\r\n if (this._retryCount > 0) {\r\n delay =\r\n minReconnectionDelay * Math.pow(reconnectionDelayGrowFactor, this._retryCount - 1);\r\n if (delay > maxReconnectionDelay) {\r\n delay = maxReconnectionDelay;\r\n }\r\n }\r\n this._debug('next delay', delay);\r\n return delay;\r\n };\r\n ReconnectingWebSocket.prototype._wait = function () {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve, _this._getNextDelay());\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._getNextUrl = function (urlProvider) {\r\n if (typeof urlProvider === 'string') {\r\n return Promise.resolve(urlProvider);\r\n }\r\n if (typeof urlProvider === 'function') {\r\n var url = urlProvider();\r\n if (typeof url === 'string') {\r\n return Promise.resolve(url);\r\n }\r\n if (!!url.then) {\r\n return url;\r\n }\r\n }\r\n throw Error('Invalid URL');\r\n };\r\n ReconnectingWebSocket.prototype._connect = function () {\r\n var _this = this;\r\n if (this._connectLock || !this._shouldReconnect) {\r\n return;\r\n }\r\n this._connectLock = true;\r\n var _a = this._options, _b = _a.maxRetries, maxRetries = _b === void 0 ? DEFAULT.maxRetries : _b, _c = _a.connectionTimeout, connectionTimeout = _c === void 0 ? DEFAULT.connectionTimeout : _c, _d = _a.WebSocket, WebSocket = _d === void 0 ? getGlobalWebSocket() : _d;\r\n if (this._retryCount >= maxRetries) {\r\n this._debug('max retries reached', this._retryCount, '>=', maxRetries);\r\n return;\r\n }\r\n this._retryCount++;\r\n this._debug('connect', this._retryCount);\r\n this._removeListeners();\r\n if (!isWebSocket(WebSocket)) {\r\n throw Error('No valid WebSocket class provided');\r\n }\r\n this._wait()\r\n .then(function () { return _this._getNextUrl(_this._url); })\r\n .then(function (url) {\r\n // close could be called before creating the ws\r\n if (_this._closeCalled) {\r\n return;\r\n }\r\n _this._debug('connect', { url: url, protocols: _this._protocols });\r\n _this._ws = _this._protocols\r\n ? new WebSocket(url, _this._protocols)\r\n : new WebSocket(url);\r\n _this._ws.binaryType = _this._binaryType;\r\n _this._connectLock = false;\r\n _this._addListeners();\r\n _this._connectTimeout = setTimeout(function () { return _this._handleTimeout(); }, connectionTimeout);\r\n });\r\n };\r\n ReconnectingWebSocket.prototype._handleTimeout = function () {\r\n this._debug('timeout event');\r\n this._handleError(new ErrorEvent(Error('TIMEOUT'), this));\r\n };\r\n ReconnectingWebSocket.prototype._disconnect = function (code, reason) {\r\n if (code === void 0) { code = 1000; }\r\n this._clearTimeouts();\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._removeListeners();\r\n try {\r\n this._ws.close(code, reason);\r\n this._handleClose(new CloseEvent(code, reason, this));\r\n }\r\n catch (error) {\r\n // ignore\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._acceptOpen = function () {\r\n this._debug('accept open');\r\n this._retryCount = 0;\r\n };\r\n ReconnectingWebSocket.prototype._callEventListener = function (event, listener) {\r\n if ('handleEvent' in listener) {\r\n // @ts-ignore\r\n listener.handleEvent(event);\r\n }\r\n else {\r\n // @ts-ignore\r\n listener(event);\r\n }\r\n };\r\n ReconnectingWebSocket.prototype._removeListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('removeListeners');\r\n this._ws.removeEventListener('open', this._handleOpen);\r\n this._ws.removeEventListener('close', this._handleClose);\r\n this._ws.removeEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.removeEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._addListeners = function () {\r\n if (!this._ws) {\r\n return;\r\n }\r\n this._debug('addListeners');\r\n this._ws.addEventListener('open', this._handleOpen);\r\n this._ws.addEventListener('close', this._handleClose);\r\n this._ws.addEventListener('message', this._handleMessage);\r\n // @ts-ignore\r\n this._ws.addEventListener('error', this._handleError);\r\n };\r\n ReconnectingWebSocket.prototype._clearTimeouts = function () {\r\n clearTimeout(this._connectTimeout);\r\n clearTimeout(this._uptimeTimeout);\r\n };\r\n return ReconnectingWebSocket;\r\n}());\n\nexport default ReconnectingWebSocket;\n","import axios from 'axios';\nimport { ComputeBudgetProgram, PublicKey, VersionedTransaction, TransactionMessage, Keypair, SystemProgram, TransactionInstruction } from '@solana/web3.js';\nimport nacl from 'tweetnacl';\nimport * as anchor from '@coral-xyz/anchor';\nimport { Program } from '@coral-xyz/anchor';\nimport BN from 'bn.js';\nimport ReconnectingWebSocket from 'reconnecting-websocket';\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar isRetryAllowed$1;\nvar hasRequiredIsRetryAllowed;\n\nfunction requireIsRetryAllowed () {\n\tif (hasRequiredIsRetryAllowed) return isRetryAllowed$1;\n\thasRequiredIsRetryAllowed = 1;\n\n\tconst denyList = new Set([\n\t\t'ENOTFOUND',\n\t\t'ENETUNREACH',\n\n\t\t// SSL errors from https://github.com/nodejs/node/blob/fc8e3e2cdc521978351de257030db0076d79e0ab/src/crypto/crypto_common.cc#L301-L328\n\t\t'UNABLE_TO_GET_ISSUER_CERT',\n\t\t'UNABLE_TO_GET_CRL',\n\t\t'UNABLE_TO_DECRYPT_CERT_SIGNATURE',\n\t\t'UNABLE_TO_DECRYPT_CRL_SIGNATURE',\n\t\t'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY',\n\t\t'CERT_SIGNATURE_FAILURE',\n\t\t'CRL_SIGNATURE_FAILURE',\n\t\t'CERT_NOT_YET_VALID',\n\t\t'CERT_HAS_EXPIRED',\n\t\t'CRL_NOT_YET_VALID',\n\t\t'CRL_HAS_EXPIRED',\n\t\t'ERROR_IN_CERT_NOT_BEFORE_FIELD',\n\t\t'ERROR_IN_CERT_NOT_AFTER_FIELD',\n\t\t'ERROR_IN_CRL_LAST_UPDATE_FIELD',\n\t\t'ERROR_IN_CRL_NEXT_UPDATE_FIELD',\n\t\t'OUT_OF_MEM',\n\t\t'DEPTH_ZERO_SELF_SIGNED_CERT',\n\t\t'SELF_SIGNED_CERT_IN_CHAIN',\n\t\t'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',\n\t\t'UNABLE_TO_VERIFY_LEAF_SIGNATURE',\n\t\t'CERT_CHAIN_TOO_LONG',\n\t\t'CERT_REVOKED',\n\t\t'INVALID_CA',\n\t\t'PATH_LENGTH_EXCEEDED',\n\t\t'INVALID_PURPOSE',\n\t\t'CERT_UNTRUSTED',\n\t\t'CERT_REJECTED',\n\t\t'HOSTNAME_MISMATCH'\n\t]);\n\n\t// TODO: Use `error?.code` when targeting Node.js 14\n\tisRetryAllowed$1 = error => !denyList.has(error && error.code);\n\treturn isRetryAllowed$1;\n}\n\nvar isRetryAllowedExports = requireIsRetryAllowed();\nvar isRetryAllowed = /*@__PURE__*/getDefaultExportFromCjs(isRetryAllowedExports);\n\nconst namespace = 'axios-retry';\nfunction isNetworkError(error) {\n const CODE_EXCLUDE_LIST = ['ERR_CANCELED', 'ECONNABORTED'];\n if (error.response) {\n return false;\n }\n if (!error.code) {\n return false;\n }\n // Prevents retrying timed out & cancelled requests\n if (CODE_EXCLUDE_LIST.includes(error.code)) {\n return false;\n }\n // Prevents retrying unsafe errors\n return isRetryAllowed(error);\n}\nconst SAFE_HTTP_METHODS = ['get', 'head', 'options'];\nconst IDEMPOTENT_HTTP_METHODS = SAFE_HTTP_METHODS.concat(['put', 'delete']);\nfunction isRetryableError(error) {\n return (error.code !== 'ECONNABORTED' &&\n (!error.response ||\n error.response.status === 429 ||\n (error.response.status >= 500 && error.response.status <= 599)));\n}\nfunction isSafeRequestError(error) {\n if (!error.config?.method) {\n // Cannot determine if the request can be retried\n return false;\n }\n return isRetryableError(error) && SAFE_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nfunction isIdempotentRequestError(error) {\n if (!error.config?.method) {\n // Cannot determine if the request can be retried\n return false;\n }\n return isRetryableError(error) && IDEMPOTENT_HTTP_METHODS.indexOf(error.config.method) !== -1;\n}\nfunction isNetworkOrIdempotentRequestError(error) {\n return isNetworkError(error) || isIdempotentRequestError(error);\n}\nfunction retryAfter(error = undefined) {\n const retryAfterHeader = error?.response?.headers['retry-after'];\n if (!retryAfterHeader) {\n return 0;\n }\n // if the retry after header is a number, convert it to milliseconds\n let retryAfterMs = (Number(retryAfterHeader) || 0) * 1000;\n // If the retry after header is a date, get the number of milliseconds until that date\n if (retryAfterMs === 0) {\n retryAfterMs = (new Date(retryAfterHeader).valueOf() || 0) - Date.now();\n }\n return Math.max(0, retryAfterMs);\n}\nfunction noDelay(_retryNumber = 0, error = undefined) {\n return Math.max(0, retryAfter(error));\n}\nfunction exponentialDelay(retryNumber = 0, error = undefined, delayFactor = 100) {\n const calculatedDelay = 2 ** retryNumber * delayFactor;\n const delay = Math.max(calculatedDelay, retryAfter(error));\n const randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay\n return delay + randomSum;\n}\n/**\n * Linear delay\n * @param {number | undefined} delayFactor - delay factor in milliseconds (default: 100)\n * @returns {function} (retryNumber: number, error: AxiosError | undefined) => number\n */\nfunction linearDelay(delayFactor = 100) {\n return (retryNumber = 0, error = undefined) => {\n const delay = retryNumber * delayFactor;\n return Math.max(delay, retryAfter(error));\n };\n}\nconst DEFAULT_OPTIONS = {\n retries: 3,\n retryCondition: isNetworkOrIdempotentRequestError,\n retryDelay: noDelay,\n shouldResetTimeout: false,\n onRetry: () => { },\n onMaxRetryTimesExceeded: () => { },\n validateResponse: null\n};\nfunction getRequestOptions(config, defaultOptions) {\n return { ...DEFAULT_OPTIONS, ...defaultOptions, ...config[namespace] };\n}\nfunction setCurrentState(config, defaultOptions, resetLastRequestTime = false) {\n const currentState = getRequestOptions(config, defaultOptions || {});\n currentState.retryCount = currentState.retryCount || 0;\n if (!currentState.lastRequestTime || resetLastRequestTime) {\n currentState.lastRequestTime = Date.now();\n }\n config[namespace] = currentState;\n return currentState;\n}\nfunction fixConfig(axiosInstance, config) {\n // @ts-ignore\n if (axiosInstance.defaults.agent === config.agent) {\n // @ts-ignore\n delete config.agent;\n }\n if (axiosInstance.defaults.httpAgent === config.httpAgent) {\n delete config.httpAgent;\n }\n if (axiosInstance.defaults.httpsAgent === config.httpsAgent) {\n delete config.httpsAgent;\n }\n}\nasync function shouldRetry(currentState, error) {\n const { retries, retryCondition } = currentState;\n const shouldRetryOrPromise = (currentState.retryCount || 0) < retries && retryCondition(error);\n // This could be a promise\n if (typeof shouldRetryOrPromise === 'object') {\n try {\n const shouldRetryPromiseResult = await shouldRetryOrPromise;\n // keep return true unless shouldRetryPromiseResult return false for compatibility\n return shouldRetryPromiseResult !== false;\n }\n catch (_err) {\n return false;\n }\n }\n return shouldRetryOrPromise;\n}\nasync function handleRetry(axiosInstance, currentState, error, config) {\n currentState.retryCount += 1;\n const { retryDelay, shouldResetTimeout, onRetry } = currentState;\n const delay = retryDelay(currentState.retryCount, error);\n // Axios fails merging this configuration to the default configuration because it has an issue\n // with circular structures: https://github.com/mzabriskie/axios/issues/370\n fixConfig(axiosInstance, config);\n if (!shouldResetTimeout && config.timeout && currentState.lastRequestTime) {\n const lastRequestDuration = Date.now() - currentState.lastRequestTime;\n const timeout = config.timeout - lastRequestDuration - delay;\n if (timeout <= 0) {\n return Promise.reject(error);\n }\n config.timeout = timeout;\n }\n config.transformRequest = [(data) => data];\n await onRetry(currentState.retryCount, error, config);\n if (config.signal?.aborted) {\n return Promise.resolve(axiosInstance(config));\n }\n return new Promise((resolve) => {\n const abortListener = () => {\n clearTimeout(timeout);\n resolve(axiosInstance(config));\n };\n const timeout = setTimeout(() => {\n resolve(axiosInstance(config));\n if (config.signal?.removeEventListener) {\n config.signal.removeEventListener('abort', abortListener);\n }\n }, delay);\n if (config.signal?.addEventListener) {\n config.signal.addEventListener('abort', abortListener, { once: true });\n }\n });\n}\nasync function handleMaxRetryTimesExceeded(currentState, error) {\n if (currentState.retryCount >= currentState.retries)\n await currentState.onMaxRetryTimesExceeded(error, currentState.retryCount);\n}\nconst axiosRetry = (axiosInstance, defaultOptions) => {\n const requestInterceptorId = axiosInstance.interceptors.request.use((config) => {\n setCurrentState(config, defaultOptions, true);\n if (config[namespace]?.validateResponse) {\n // by setting this, all HTTP responses will be go through the error interceptor first\n config.validateStatus = () => false;\n }\n return config;\n });\n const responseInterceptorId = axiosInstance.interceptors.response.use(null, async (error) => {\n const { config } = error;\n // If we have no information to retry the request\n if (!config) {\n return Promise.reject(error);\n }\n const currentState = setCurrentState(config, defaultOptions);\n if (error.response && currentState.validateResponse?.(error.response)) {\n // no issue with response\n return error.response;\n }\n if (await shouldRetry(currentState, error)) {\n return handleRetry(axiosInstance, currentState, error, config);\n }\n await handleMaxRetryTimesExceeded(currentState, error);\n return Promise.reject(error);\n });\n return { requestInterceptorId, responseInterceptorId };\n};\n// Compatibility with CommonJS\naxiosRetry.isNetworkError = isNetworkError;\naxiosRetry.isSafeRequestError = isSafeRequestError;\naxiosRetry.isIdempotentRequestError = isIdempotentRequestError;\naxiosRetry.isNetworkOrIdempotentRequestError = isNetworkOrIdempotentRequestError;\naxiosRetry.exponentialDelay = exponentialDelay;\naxiosRetry.linearDelay = linearDelay;\naxiosRetry.isRetryableError = isRetryableError;\n\nlet axiosClient;\nasync function getAxiosAuthClient() {\n if (!axiosClient) {\n const config = await getConfig();\n axiosClient = axios.create({\n baseURL: config.authApiUrl,\n headers: {\n 'Content-Type': 'application/json',\n },\n timeout: 30000, // 30s timeout, matching makeApiRequest\n });\n }\n return axiosClient;\n}\nasync function genAuthNonce() {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/auth/nonce', {\n appId\n });\n return response.data.nonce;\n}\nasync function createSessionWithSignature(address, message, signature) {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/session', {\n appId,\n address,\n message,\n signature,\n authMethod: config.authMethod\n });\n return response.data;\n}\nasync function createSessionWithPrivy(authToken, address, privyIdToken) {\n var _a;\n // Block in true SSR/Node.js. Allow in browser (window exists) and React Native (no window,\n // but not Node — detected via process.versions.node). Node 21+ defines navigator globally,\n // so we can't rely on navigator alone.\n const isNode = typeof process !== 'undefined' && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\n if (typeof window === 'undefined' && isNode)\n return;\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/session', {\n appId,\n authMethod: config.authMethod,\n authToken,\n idToken: privyIdToken,\n address\n });\n return response.data;\n}\n// Deduplicate concurrent refreshSession calls to prevent multiple code paths\n// (WebSocket reconnection, periodic refresh, API 401 retry) from all hitting\n// /session/refresh simultaneously.\n// Note: module-level state is shared across requests in SSR/Node — acceptable\n// since there is only one active session per server instance (same pattern as\n// refreshInFlight in api.ts).\nlet refreshInFlight$1 = null;\nlet refreshInFlightToken = null;\nasync function refreshSession(refreshToken) {\n if (refreshInFlight$1 && refreshInFlightToken === refreshToken) {\n return refreshInFlight$1;\n }\n refreshInFlightToken = refreshToken;\n let currentFlight;\n currentFlight = refreshInFlight$1 = (async () => {\n try {\n const client = await getAxiosAuthClient();\n const config = await getConfig();\n const appId = config.appId;\n const response = await client.post('/session/refresh', {\n refreshToken,\n appId\n });\n return response.data;\n }\n finally {\n // Only clear if we're still the active in-flight request.\n // A second call with a different token may have replaced us.\n if (refreshInFlight$1 === currentFlight) {\n refreshInFlight$1 = null;\n refreshInFlightToken = null;\n }\n }\n })();\n return refreshInFlight$1;\n}\nasync function signSessionCreateMessage(_signMessageFunction) {\n}\n\nclass WebSessionManager {\n /**\n * Decode a base64url-encoded string (used by JWT payloads).\n * Normalises base64url → standard base64 before calling browser atob().\n */\n static decodeBase64Url(input) {\n let b64 = input.replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return atob(b64);\n }\n /* ------------------------------------------------------------------ */\n /* STORE */\n /* ------------------------------------------------------------------ */\n static async storeSession(address, accessToken, idToken, refreshToken) {\n if (typeof window === \"undefined\")\n return;\n const config = await getConfig();\n const currentAppId = config.appId;\n localStorage.setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify({\n address,\n accessToken,\n idToken,\n refreshToken,\n appId: currentAppId,\n }));\n }\n /* ------------------------------------------------------------------ */\n /* GET */\n /* ------------------------------------------------------------------ */\n static async getSession() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!session)\n return null;\n const sessionObj = JSON.parse(session);\n /* ---------- validate app-id ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return null;\n }\n /* ---------- check JWT expiration ---------- */\n try {\n const { accessToken } = sessionObj;\n const { exp } = JSON.parse(this.decodeBase64Url(accessToken.split(\".\")[1]));\n if (Date.now() > exp * 1000) {\n const { refreshToken } = sessionObj;\n if (!refreshToken)\n return null;\n const refreshed = await refreshSession(refreshToken);\n if ((refreshed === null || refreshed === void 0 ? void 0 : refreshed.idToken) && (refreshed === null || refreshed === void 0 ? void 0 : refreshed.accessToken)) {\n await this.updateIdTokenAndAccessToken(refreshed.idToken, refreshed.accessToken);\n const newSession = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!newSession)\n return null;\n const newObj = JSON.parse(newSession);\n return { address: newObj.address, session: newObj };\n }\n // Refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n }\n catch (err) {\n // Token decode or refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n return { address: sessionObj.address, session: sessionObj };\n }\n /* ------------------------------------------------------------------ */\n /* CLEAR */\n /* ------------------------------------------------------------------ */\n static clearSession() {\n if (typeof window === \"undefined\")\n return;\n localStorage.removeItem(this.TAROBASE_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* IS-AUTH */\n /* ------------------------------------------------------------------ */\n static isAuthenticated() {\n // NOTE: this remains synchronous to stay backward compatible\n return !!localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* TOKEN HELPERS */\n /* ------------------------------------------------------------------ */\n static getIdToken() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).idToken : null;\n }\n static getRefreshToken() {\n if (typeof window === \"undefined\")\n return null;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).refreshToken : null;\n }\n /* ------------------------------------------------------------------ */\n /* UPDATE TOKENS */\n /* ------------------------------------------------------------------ */\n static async updateIdTokenAndAccessToken(idToken, accessToken) {\n var _a;\n if (typeof window === \"undefined\")\n return;\n if (typeof window === \"undefined\")\n return;\n const session = localStorage.getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!session)\n return;\n const sessionObj = JSON.parse(session);\n /* ---------- app-id guard ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return;\n }\n sessionObj.idToken = idToken;\n sessionObj.accessToken = accessToken;\n (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);\n localStorage.setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));\n }\n}\nWebSessionManager.TAROBASE_SESSION_STORAGE_KEY = \"tarobase_session_storage\";\n\nvar webSessionManager = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tWebSessionManager: WebSessionManager\n});\n\nvar buffer = {};\n\nvar base64Js = {};\n\nvar hasRequiredBase64Js;\n\nfunction requireBase64Js () {\n\tif (hasRequiredBase64Js) return base64Js;\n\thasRequiredBase64Js = 1;\n\n\tbase64Js.byteLength = byteLength;\n\tbase64Js.toByteArray = toByteArray;\n\tbase64Js.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\treturn base64Js;\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nvar hasRequiredIeee754;\n\nfunction requireIeee754 () {\n\tif (hasRequiredIeee754) return ieee754;\n\thasRequiredIeee754 = 1;\n\tieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\tieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\treturn ieee754;\n}\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nvar hasRequiredBuffer;\n\nfunction requireBuffer () {\n\tif (hasRequiredBuffer) return buffer;\n\thasRequiredBuffer = 1;\n\t(function (exports$1) {\n\n\t\tconst base64 = requireBase64Js();\n\t\tconst ieee754 = requireIeee754();\n\t\tconst customInspectSymbol =\n\t\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t\t : null;\n\n\t\texports$1.Buffer = Buffer;\n\t\texports$1.SlowBuffer = SlowBuffer;\n\t\texports$1.INSPECT_MAX_BYTES = 50;\n\n\t\tconst K_MAX_LENGTH = 0x7fffffff;\n\t\texports$1.kMaxLength = K_MAX_LENGTH;\n\n\t\t/**\n\t\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t\t * === true Use Uint8Array implementation (fastest)\n\t\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t\t * implementation (most compatible, even IE6)\n\t\t *\n\t\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t\t * Opera 11.6+, iOS 4.2+.\n\t\t *\n\t\t * We report that the browser does not support typed arrays if the are not subclassable\n\t\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t\t * for __proto__ and has a buggy typed array implementation.\n\t\t */\n\t\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\t\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t\t typeof console.error === 'function') {\n\t\t console.error(\n\t\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t\t );\n\t\t}\n\n\t\tfunction typedArraySupport () {\n\t\t // Can typed array instances can be augmented?\n\t\t try {\n\t\t const arr = new Uint8Array(1);\n\t\t const proto = { foo: function () { return 42 } };\n\t\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t\t Object.setPrototypeOf(arr, proto);\n\t\t return arr.foo() === 42\n\t\t } catch (e) {\n\t\t return false\n\t\t }\n\t\t}\n\n\t\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t\t enumerable: true,\n\t\t get: function () {\n\t\t if (!Buffer.isBuffer(this)) return undefined\n\t\t return this.buffer\n\t\t }\n\t\t});\n\n\t\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t\t enumerable: true,\n\t\t get: function () {\n\t\t if (!Buffer.isBuffer(this)) return undefined\n\t\t return this.byteOffset\n\t\t }\n\t\t});\n\n\t\tfunction createBuffer (length) {\n\t\t if (length > K_MAX_LENGTH) {\n\t\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t\t }\n\t\t // Return an augmented `Uint8Array` instance\n\t\t const buf = new Uint8Array(length);\n\t\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t\t return buf\n\t\t}\n\n\t\t/**\n\t\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t\t * returns a single octet.\n\t\t *\n\t\t * The `Uint8Array` prototype remains unmodified.\n\t\t */\n\n\t\tfunction Buffer (arg, encodingOrOffset, length) {\n\t\t // Common case.\n\t\t if (typeof arg === 'number') {\n\t\t if (typeof encodingOrOffset === 'string') {\n\t\t throw new TypeError(\n\t\t 'The \"string\" argument must be of type string. Received type number'\n\t\t )\n\t\t }\n\t\t return allocUnsafe(arg)\n\t\t }\n\t\t return from(arg, encodingOrOffset, length)\n\t\t}\n\n\t\tBuffer.poolSize = 8192; // not used by this implementation\n\n\t\tfunction from (value, encodingOrOffset, length) {\n\t\t if (typeof value === 'string') {\n\t\t return fromString(value, encodingOrOffset)\n\t\t }\n\n\t\t if (ArrayBuffer.isView(value)) {\n\t\t return fromArrayView(value)\n\t\t }\n\n\t\t if (value == null) {\n\t\t throw new TypeError(\n\t\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t\t 'or Array-like Object. Received type ' + (typeof value)\n\t\t )\n\t\t }\n\n\t\t if (isInstance(value, ArrayBuffer) ||\n\t\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t\t }\n\n\t\t if (typeof SharedArrayBuffer !== 'undefined' &&\n\t\t (isInstance(value, SharedArrayBuffer) ||\n\t\t (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n\t\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t\t }\n\n\t\t if (typeof value === 'number') {\n\t\t throw new TypeError(\n\t\t 'The \"value\" argument must not be of type number. Received type number'\n\t\t )\n\t\t }\n\n\t\t const valueOf = value.valueOf && value.valueOf();\n\t\t if (valueOf != null && valueOf !== value) {\n\t\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t\t }\n\n\t\t const b = fromObject(value);\n\t\t if (b) return b\n\n\t\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t\t typeof value[Symbol.toPrimitive] === 'function') {\n\t\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t\t }\n\n\t\t throw new TypeError(\n\t\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t\t 'or Array-like Object. Received type ' + (typeof value)\n\t\t )\n\t\t}\n\n\t\t/**\n\t\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t\t * if value is a number.\n\t\t * Buffer.from(str[, encoding])\n\t\t * Buffer.from(array)\n\t\t * Buffer.from(buffer)\n\t\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t\t **/\n\t\tBuffer.from = function (value, encodingOrOffset, length) {\n\t\t return from(value, encodingOrOffset, length)\n\t\t};\n\n\t\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t\t// https://github.com/feross/buffer/pull/148\n\t\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\t\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\t\tfunction assertSize (size) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('\"size\" argument must be of type number')\n\t\t } else if (size < 0) {\n\t\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t\t }\n\t\t}\n\n\t\tfunction alloc (size, fill, encoding) {\n\t\t assertSize(size);\n\t\t if (size <= 0) {\n\t\t return createBuffer(size)\n\t\t }\n\t\t if (fill !== undefined) {\n\t\t // Only pay attention to encoding if it's a string. This\n\t\t // prevents accidentally sending in a number that would\n\t\t // be interpreted as a start offset.\n\t\t return typeof encoding === 'string'\n\t\t ? createBuffer(size).fill(fill, encoding)\n\t\t : createBuffer(size).fill(fill)\n\t\t }\n\t\t return createBuffer(size)\n\t\t}\n\n\t\t/**\n\t\t * Creates a new filled Buffer instance.\n\t\t * alloc(size[, fill[, encoding]])\n\t\t **/\n\t\tBuffer.alloc = function (size, fill, encoding) {\n\t\t return alloc(size, fill, encoding)\n\t\t};\n\n\t\tfunction allocUnsafe (size) {\n\t\t assertSize(size);\n\t\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t\t}\n\n\t\t/**\n\t\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t\t * */\n\t\tBuffer.allocUnsafe = function (size) {\n\t\t return allocUnsafe(size)\n\t\t};\n\t\t/**\n\t\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t\t */\n\t\tBuffer.allocUnsafeSlow = function (size) {\n\t\t return allocUnsafe(size)\n\t\t};\n\n\t\tfunction fromString (string, encoding) {\n\t\t if (typeof encoding !== 'string' || encoding === '') {\n\t\t encoding = 'utf8';\n\t\t }\n\n\t\t if (!Buffer.isEncoding(encoding)) {\n\t\t throw new TypeError('Unknown encoding: ' + encoding)\n\t\t }\n\n\t\t const length = byteLength(string, encoding) | 0;\n\t\t let buf = createBuffer(length);\n\n\t\t const actual = buf.write(string, encoding);\n\n\t\t if (actual !== length) {\n\t\t // Writing a hex string, for example, that contains invalid characters will\n\t\t // cause everything after the first invalid character to be ignored. (e.g.\n\t\t // 'abxxcd' will be treated as 'ab')\n\t\t buf = buf.slice(0, actual);\n\t\t }\n\n\t\t return buf\n\t\t}\n\n\t\tfunction fromArrayLike (array) {\n\t\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t\t const buf = createBuffer(length);\n\t\t for (let i = 0; i < length; i += 1) {\n\t\t buf[i] = array[i] & 255;\n\t\t }\n\t\t return buf\n\t\t}\n\n\t\tfunction fromArrayView (arrayView) {\n\t\t if (isInstance(arrayView, Uint8Array)) {\n\t\t const copy = new Uint8Array(arrayView);\n\t\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t\t }\n\t\t return fromArrayLike(arrayView)\n\t\t}\n\n\t\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t\t }\n\n\t\t if (array.byteLength < byteOffset + (length || 0)) {\n\t\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t\t }\n\n\t\t let buf;\n\t\t if (byteOffset === undefined && length === undefined) {\n\t\t buf = new Uint8Array(array);\n\t\t } else if (length === undefined) {\n\t\t buf = new Uint8Array(array, byteOffset);\n\t\t } else {\n\t\t buf = new Uint8Array(array, byteOffset, length);\n\t\t }\n\n\t\t // Return an augmented `Uint8Array` instance\n\t\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t\t return buf\n\t\t}\n\n\t\tfunction fromObject (obj) {\n\t\t if (Buffer.isBuffer(obj)) {\n\t\t const len = checked(obj.length) | 0;\n\t\t const buf = createBuffer(len);\n\n\t\t if (buf.length === 0) {\n\t\t return buf\n\t\t }\n\n\t\t obj.copy(buf, 0, 0, len);\n\t\t return buf\n\t\t }\n\n\t\t if (obj.length !== undefined) {\n\t\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t\t return createBuffer(0)\n\t\t }\n\t\t return fromArrayLike(obj)\n\t\t }\n\n\t\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t\t return fromArrayLike(obj.data)\n\t\t }\n\t\t}\n\n\t\tfunction checked (length) {\n\t\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t\t // length is NaN (which is otherwise coerced to zero.)\n\t\t if (length >= K_MAX_LENGTH) {\n\t\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t\t }\n\t\t return length | 0\n\t\t}\n\n\t\tfunction SlowBuffer (length) {\n\t\t if (+length != length) { // eslint-disable-line eqeqeq\n\t\t length = 0;\n\t\t }\n\t\t return Buffer.alloc(+length)\n\t\t}\n\n\t\tBuffer.isBuffer = function isBuffer (b) {\n\t\t return b != null && b._isBuffer === true &&\n\t\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t\t};\n\n\t\tBuffer.compare = function compare (a, b) {\n\t\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t\t throw new TypeError(\n\t\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t\t )\n\t\t }\n\n\t\t if (a === b) return 0\n\n\t\t let x = a.length;\n\t\t let y = b.length;\n\n\t\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t\t if (a[i] !== b[i]) {\n\t\t x = a[i];\n\t\t y = b[i];\n\t\t break\n\t\t }\n\t\t }\n\n\t\t if (x < y) return -1\n\t\t if (y < x) return 1\n\t\t return 0\n\t\t};\n\n\t\tBuffer.isEncoding = function isEncoding (encoding) {\n\t\t switch (String(encoding).toLowerCase()) {\n\t\t case 'hex':\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t case 'ascii':\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t case 'base64':\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return true\n\t\t default:\n\t\t return false\n\t\t }\n\t\t};\n\n\t\tBuffer.concat = function concat (list, length) {\n\t\t if (!Array.isArray(list)) {\n\t\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t\t }\n\n\t\t if (list.length === 0) {\n\t\t return Buffer.alloc(0)\n\t\t }\n\n\t\t let i;\n\t\t if (length === undefined) {\n\t\t length = 0;\n\t\t for (i = 0; i < list.length; ++i) {\n\t\t length += list[i].length;\n\t\t }\n\t\t }\n\n\t\t const buffer = Buffer.allocUnsafe(length);\n\t\t let pos = 0;\n\t\t for (i = 0; i < list.length; ++i) {\n\t\t let buf = list[i];\n\t\t if (isInstance(buf, Uint8Array)) {\n\t\t if (pos + buf.length > buffer.length) {\n\t\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t\t buf.copy(buffer, pos);\n\t\t } else {\n\t\t Uint8Array.prototype.set.call(\n\t\t buffer,\n\t\t buf,\n\t\t pos\n\t\t );\n\t\t }\n\t\t } else if (!Buffer.isBuffer(buf)) {\n\t\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t\t } else {\n\t\t buf.copy(buffer, pos);\n\t\t }\n\t\t pos += buf.length;\n\t\t }\n\t\t return buffer\n\t\t};\n\n\t\tfunction byteLength (string, encoding) {\n\t\t if (Buffer.isBuffer(string)) {\n\t\t return string.length\n\t\t }\n\t\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t\t return string.byteLength\n\t\t }\n\t\t if (typeof string !== 'string') {\n\t\t throw new TypeError(\n\t\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t\t 'Received type ' + typeof string\n\t\t )\n\t\t }\n\n\t\t const len = string.length;\n\t\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t\t if (!mustMatch && len === 0) return 0\n\n\t\t // Use a for loop to avoid recursion\n\t\t let loweredCase = false;\n\t\t for (;;) {\n\t\t switch (encoding) {\n\t\t case 'ascii':\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t return len\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t return utf8ToBytes(string).length\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return len * 2\n\t\t case 'hex':\n\t\t return len >>> 1\n\t\t case 'base64':\n\t\t return base64ToBytes(string).length\n\t\t default:\n\t\t if (loweredCase) {\n\t\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t\t }\n\t\t encoding = ('' + encoding).toLowerCase();\n\t\t loweredCase = true;\n\t\t }\n\t\t }\n\t\t}\n\t\tBuffer.byteLength = byteLength;\n\n\t\tfunction slowToString (encoding, start, end) {\n\t\t let loweredCase = false;\n\n\t\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t\t // property of a typed array.\n\n\t\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t\t // to their upper/lower bounds if the value passed is out of range.\n\t\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t\t if (start === undefined || start < 0) {\n\t\t start = 0;\n\t\t }\n\t\t // Return early if start > this.length. Done here to prevent potential uint32\n\t\t // coercion fail below.\n\t\t if (start > this.length) {\n\t\t return ''\n\t\t }\n\n\t\t if (end === undefined || end > this.length) {\n\t\t end = this.length;\n\t\t }\n\n\t\t if (end <= 0) {\n\t\t return ''\n\t\t }\n\n\t\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t\t end >>>= 0;\n\t\t start >>>= 0;\n\n\t\t if (end <= start) {\n\t\t return ''\n\t\t }\n\n\t\t if (!encoding) encoding = 'utf8';\n\n\t\t while (true) {\n\t\t switch (encoding) {\n\t\t case 'hex':\n\t\t return hexSlice(this, start, end)\n\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t return utf8Slice(this, start, end)\n\n\t\t case 'ascii':\n\t\t return asciiSlice(this, start, end)\n\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t return latin1Slice(this, start, end)\n\n\t\t case 'base64':\n\t\t return base64Slice(this, start, end)\n\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return utf16leSlice(this, start, end)\n\n\t\t default:\n\t\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t\t encoding = (encoding + '').toLowerCase();\n\t\t loweredCase = true;\n\t\t }\n\t\t }\n\t\t}\n\n\t\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t\t// reliably in a browserify context because there could be multiple different\n\t\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t\t// instances that were created from another copy of the `buffer` package.\n\t\t// See: https://github.com/feross/buffer/issues/154\n\t\tBuffer.prototype._isBuffer = true;\n\n\t\tfunction swap (b, n, m) {\n\t\t const i = b[n];\n\t\t b[n] = b[m];\n\t\t b[m] = i;\n\t\t}\n\n\t\tBuffer.prototype.swap16 = function swap16 () {\n\t\t const len = this.length;\n\t\t if (len % 2 !== 0) {\n\t\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t\t }\n\t\t for (let i = 0; i < len; i += 2) {\n\t\t swap(this, i, i + 1);\n\t\t }\n\t\t return this\n\t\t};\n\n\t\tBuffer.prototype.swap32 = function swap32 () {\n\t\t const len = this.length;\n\t\t if (len % 4 !== 0) {\n\t\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t\t }\n\t\t for (let i = 0; i < len; i += 4) {\n\t\t swap(this, i, i + 3);\n\t\t swap(this, i + 1, i + 2);\n\t\t }\n\t\t return this\n\t\t};\n\n\t\tBuffer.prototype.swap64 = function swap64 () {\n\t\t const len = this.length;\n\t\t if (len % 8 !== 0) {\n\t\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t\t }\n\t\t for (let i = 0; i < len; i += 8) {\n\t\t swap(this, i, i + 7);\n\t\t swap(this, i + 1, i + 6);\n\t\t swap(this, i + 2, i + 5);\n\t\t swap(this, i + 3, i + 4);\n\t\t }\n\t\t return this\n\t\t};\n\n\t\tBuffer.prototype.toString = function toString () {\n\t\t const length = this.length;\n\t\t if (length === 0) return ''\n\t\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t\t return slowToString.apply(this, arguments)\n\t\t};\n\n\t\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\t\tBuffer.prototype.equals = function equals (b) {\n\t\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t\t if (this === b) return true\n\t\t return Buffer.compare(this, b) === 0\n\t\t};\n\n\t\tBuffer.prototype.inspect = function inspect () {\n\t\t let str = '';\n\t\t const max = exports$1.INSPECT_MAX_BYTES;\n\t\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t\t if (this.length > max) str += ' ... ';\n\t\t return '<Buffer ' + str + '>'\n\t\t};\n\t\tif (customInspectSymbol) {\n\t\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t\t}\n\n\t\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t\t if (isInstance(target, Uint8Array)) {\n\t\t target = Buffer.from(target, target.offset, target.byteLength);\n\t\t }\n\t\t if (!Buffer.isBuffer(target)) {\n\t\t throw new TypeError(\n\t\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t\t 'Received type ' + (typeof target)\n\t\t )\n\t\t }\n\n\t\t if (start === undefined) {\n\t\t start = 0;\n\t\t }\n\t\t if (end === undefined) {\n\t\t end = target ? target.length : 0;\n\t\t }\n\t\t if (thisStart === undefined) {\n\t\t thisStart = 0;\n\t\t }\n\t\t if (thisEnd === undefined) {\n\t\t thisEnd = this.length;\n\t\t }\n\n\t\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t\t throw new RangeError('out of range index')\n\t\t }\n\n\t\t if (thisStart >= thisEnd && start >= end) {\n\t\t return 0\n\t\t }\n\t\t if (thisStart >= thisEnd) {\n\t\t return -1\n\t\t }\n\t\t if (start >= end) {\n\t\t return 1\n\t\t }\n\n\t\t start >>>= 0;\n\t\t end >>>= 0;\n\t\t thisStart >>>= 0;\n\t\t thisEnd >>>= 0;\n\n\t\t if (this === target) return 0\n\n\t\t let x = thisEnd - thisStart;\n\t\t let y = end - start;\n\t\t const len = Math.min(x, y);\n\n\t\t const thisCopy = this.slice(thisStart, thisEnd);\n\t\t const targetCopy = target.slice(start, end);\n\n\t\t for (let i = 0; i < len; ++i) {\n\t\t if (thisCopy[i] !== targetCopy[i]) {\n\t\t x = thisCopy[i];\n\t\t y = targetCopy[i];\n\t\t break\n\t\t }\n\t\t }\n\n\t\t if (x < y) return -1\n\t\t if (y < x) return 1\n\t\t return 0\n\t\t};\n\n\t\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t\t//\n\t\t// Arguments:\n\t\t// - buffer - a Buffer to search\n\t\t// - val - a string, Buffer, or number\n\t\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t\t// - encoding - an optional encoding, relevant is val is a string\n\t\t// - dir - true for indexOf, false for lastIndexOf\n\t\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t\t // Empty buffer means no match\n\t\t if (buffer.length === 0) return -1\n\n\t\t // Normalize byteOffset\n\t\t if (typeof byteOffset === 'string') {\n\t\t encoding = byteOffset;\n\t\t byteOffset = 0;\n\t\t } else if (byteOffset > 0x7fffffff) {\n\t\t byteOffset = 0x7fffffff;\n\t\t } else if (byteOffset < -2147483648) {\n\t\t byteOffset = -2147483648;\n\t\t }\n\t\t byteOffset = +byteOffset; // Coerce to Number.\n\t\t if (numberIsNaN(byteOffset)) {\n\t\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t\t }\n\n\t\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t\t if (byteOffset >= buffer.length) {\n\t\t if (dir) return -1\n\t\t else byteOffset = buffer.length - 1;\n\t\t } else if (byteOffset < 0) {\n\t\t if (dir) byteOffset = 0;\n\t\t else return -1\n\t\t }\n\n\t\t // Normalize val\n\t\t if (typeof val === 'string') {\n\t\t val = Buffer.from(val, encoding);\n\t\t }\n\n\t\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t\t if (Buffer.isBuffer(val)) {\n\t\t // Special case: looking for empty string/buffer always fails\n\t\t if (val.length === 0) {\n\t\t return -1\n\t\t }\n\t\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t\t } else if (typeof val === 'number') {\n\t\t val = val & 0xFF; // Search for a byte value [0-255]\n\t\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t\t if (dir) {\n\t\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t\t } else {\n\t\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t\t }\n\t\t }\n\t\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t\t }\n\n\t\t throw new TypeError('val must be string, number or Buffer')\n\t\t}\n\n\t\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t\t let indexSize = 1;\n\t\t let arrLength = arr.length;\n\t\t let valLength = val.length;\n\n\t\t if (encoding !== undefined) {\n\t\t encoding = String(encoding).toLowerCase();\n\t\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t\t if (arr.length < 2 || val.length < 2) {\n\t\t return -1\n\t\t }\n\t\t indexSize = 2;\n\t\t arrLength /= 2;\n\t\t valLength /= 2;\n\t\t byteOffset /= 2;\n\t\t }\n\t\t }\n\n\t\t function read (buf, i) {\n\t\t if (indexSize === 1) {\n\t\t return buf[i]\n\t\t } else {\n\t\t return buf.readUInt16BE(i * indexSize)\n\t\t }\n\t\t }\n\n\t\t let i;\n\t\t if (dir) {\n\t\t let foundIndex = -1;\n\t\t for (i = byteOffset; i < arrLength; i++) {\n\t\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t\t if (foundIndex === -1) foundIndex = i;\n\t\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t\t } else {\n\t\t if (foundIndex !== -1) i -= i - foundIndex;\n\t\t foundIndex = -1;\n\t\t }\n\t\t }\n\t\t } else {\n\t\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t\t for (i = byteOffset; i >= 0; i--) {\n\t\t let found = true;\n\t\t for (let j = 0; j < valLength; j++) {\n\t\t if (read(arr, i + j) !== read(val, j)) {\n\t\t found = false;\n\t\t break\n\t\t }\n\t\t }\n\t\t if (found) return i\n\t\t }\n\t\t }\n\n\t\t return -1\n\t\t}\n\n\t\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t\t};\n\n\t\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t\t};\n\n\t\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t\t};\n\n\t\tfunction hexWrite (buf, string, offset, length) {\n\t\t offset = Number(offset) || 0;\n\t\t const remaining = buf.length - offset;\n\t\t if (!length) {\n\t\t length = remaining;\n\t\t } else {\n\t\t length = Number(length);\n\t\t if (length > remaining) {\n\t\t length = remaining;\n\t\t }\n\t\t }\n\n\t\t const strLen = string.length;\n\n\t\t if (length > strLen / 2) {\n\t\t length = strLen / 2;\n\t\t }\n\t\t let i;\n\t\t for (i = 0; i < length; ++i) {\n\t\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t\t if (numberIsNaN(parsed)) return i\n\t\t buf[offset + i] = parsed;\n\t\t }\n\t\t return i\n\t\t}\n\n\t\tfunction utf8Write (buf, string, offset, length) {\n\t\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t\t}\n\n\t\tfunction asciiWrite (buf, string, offset, length) {\n\t\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t\t}\n\n\t\tfunction base64Write (buf, string, offset, length) {\n\t\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t\t}\n\n\t\tfunction ucs2Write (buf, string, offset, length) {\n\t\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t\t}\n\n\t\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t\t // Buffer#write(string)\n\t\t if (offset === undefined) {\n\t\t encoding = 'utf8';\n\t\t length = this.length;\n\t\t offset = 0;\n\t\t // Buffer#write(string, encoding)\n\t\t } else if (length === undefined && typeof offset === 'string') {\n\t\t encoding = offset;\n\t\t length = this.length;\n\t\t offset = 0;\n\t\t // Buffer#write(string, offset[, length][, encoding])\n\t\t } else if (isFinite(offset)) {\n\t\t offset = offset >>> 0;\n\t\t if (isFinite(length)) {\n\t\t length = length >>> 0;\n\t\t if (encoding === undefined) encoding = 'utf8';\n\t\t } else {\n\t\t encoding = length;\n\t\t length = undefined;\n\t\t }\n\t\t } else {\n\t\t throw new Error(\n\t\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t\t )\n\t\t }\n\n\t\t const remaining = this.length - offset;\n\t\t if (length === undefined || length > remaining) length = remaining;\n\n\t\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t\t throw new RangeError('Attempt to write outside buffer bounds')\n\t\t }\n\n\t\t if (!encoding) encoding = 'utf8';\n\n\t\t let loweredCase = false;\n\t\t for (;;) {\n\t\t switch (encoding) {\n\t\t case 'hex':\n\t\t return hexWrite(this, string, offset, length)\n\n\t\t case 'utf8':\n\t\t case 'utf-8':\n\t\t return utf8Write(this, string, offset, length)\n\n\t\t case 'ascii':\n\t\t case 'latin1':\n\t\t case 'binary':\n\t\t return asciiWrite(this, string, offset, length)\n\n\t\t case 'base64':\n\t\t // Warning: maxLength not taken into account in base64Write\n\t\t return base64Write(this, string, offset, length)\n\n\t\t case 'ucs2':\n\t\t case 'ucs-2':\n\t\t case 'utf16le':\n\t\t case 'utf-16le':\n\t\t return ucs2Write(this, string, offset, length)\n\n\t\t default:\n\t\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t\t encoding = ('' + encoding).toLowerCase();\n\t\t loweredCase = true;\n\t\t }\n\t\t }\n\t\t};\n\n\t\tBuffer.prototype.toJSON = function toJSON () {\n\t\t return {\n\t\t type: 'Buffer',\n\t\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t\t }\n\t\t};\n\n\t\tfunction base64Slice (buf, start, end) {\n\t\t if (start === 0 && end === buf.length) {\n\t\t return base64.fromByteArray(buf)\n\t\t } else {\n\t\t return base64.fromByteArray(buf.slice(start, end))\n\t\t }\n\t\t}\n\n\t\tfunction utf8Slice (buf, start, end) {\n\t\t end = Math.min(buf.length, end);\n\t\t const res = [];\n\n\t\t let i = start;\n\t\t while (i < end) {\n\t\t const firstByte = buf[i];\n\t\t let codePoint = null;\n\t\t let bytesPerSequence = (firstByte > 0xEF)\n\t\t ? 4\n\t\t : (firstByte > 0xDF)\n\t\t ? 3\n\t\t : (firstByte > 0xBF)\n\t\t ? 2\n\t\t : 1;\n\n\t\t if (i + bytesPerSequence <= end) {\n\t\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t\t switch (bytesPerSequence) {\n\t\t case 1:\n\t\t if (firstByte < 0x80) {\n\t\t codePoint = firstByte;\n\t\t }\n\t\t break\n\t\t case 2:\n\t\t secondByte = buf[i + 1];\n\t\t if ((secondByte & 0xC0) === 0x80) {\n\t\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t\t if (tempCodePoint > 0x7F) {\n\t\t codePoint = tempCodePoint;\n\t\t }\n\t\t }\n\t\t break\n\t\t case 3:\n\t\t secondByte = buf[i + 1];\n\t\t thirdByte = buf[i + 2];\n\t\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t\t codePoint = tempCodePoint;\n\t\t }\n\t\t }\n\t\t break\n\t\t case 4:\n\t\t secondByte = buf[i + 1];\n\t\t thirdByte = buf[i + 2];\n\t\t fourthByte = buf[i + 3];\n\t\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t\t codePoint = tempCodePoint;\n\t\t }\n\t\t }\n\t\t }\n\t\t }\n\n\t\t if (codePoint === null) {\n\t\t // we did not generate a valid codePoint so insert a\n\t\t // replacement char (U+FFFD) and advance only 1 byte\n\t\t codePoint = 0xFFFD;\n\t\t bytesPerSequence = 1;\n\t\t } else if (codePoint > 0xFFFF) {\n\t\t // encode to utf16 (surrogate pair dance)\n\t\t codePoint -= 0x10000;\n\t\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t }\n\n\t\t res.push(codePoint);\n\t\t i += bytesPerSequence;\n\t\t }\n\n\t\t return decodeCodePointsArray(res)\n\t\t}\n\n\t\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t\t// the lowest limit is Chrome, with 0x10000 args.\n\t\t// We go 1 magnitude less, for safety\n\t\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\t\tfunction decodeCodePointsArray (codePoints) {\n\t\t const len = codePoints.length;\n\t\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t\t }\n\n\t\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t\t let res = '';\n\t\t let i = 0;\n\t\t while (i < len) {\n\t\t res += String.fromCharCode.apply(\n\t\t String,\n\t\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t\t );\n\t\t }\n\t\t return res\n\t\t}\n\n\t\tfunction asciiSlice (buf, start, end) {\n\t\t let ret = '';\n\t\t end = Math.min(buf.length, end);\n\n\t\t for (let i = start; i < end; ++i) {\n\t\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t\t }\n\t\t return ret\n\t\t}\n\n\t\tfunction latin1Slice (buf, start, end) {\n\t\t let ret = '';\n\t\t end = Math.min(buf.length, end);\n\n\t\t for (let i = start; i < end; ++i) {\n\t\t ret += String.fromCharCode(buf[i]);\n\t\t }\n\t\t return ret\n\t\t}\n\n\t\tfunction hexSlice (buf, start, end) {\n\t\t const len = buf.length;\n\n\t\t if (!start || start < 0) start = 0;\n\t\t if (!end || end < 0 || end > len) end = len;\n\n\t\t let out = '';\n\t\t for (let i = start; i < end; ++i) {\n\t\t out += hexSliceLookupTable[buf[i]];\n\t\t }\n\t\t return out\n\t\t}\n\n\t\tfunction utf16leSlice (buf, start, end) {\n\t\t const bytes = buf.slice(start, end);\n\t\t let res = '';\n\t\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t\t }\n\t\t return res\n\t\t}\n\n\t\tBuffer.prototype.slice = function slice (start, end) {\n\t\t const len = this.length;\n\t\t start = ~~start;\n\t\t end = end === undefined ? len : ~~end;\n\n\t\t if (start < 0) {\n\t\t start += len;\n\t\t if (start < 0) start = 0;\n\t\t } else if (start > len) {\n\t\t start = len;\n\t\t }\n\n\t\t if (end < 0) {\n\t\t end += len;\n\t\t if (end < 0) end = 0;\n\t\t } else if (end > len) {\n\t\t end = len;\n\t\t }\n\n\t\t if (end < start) end = start;\n\n\t\t const newBuf = this.subarray(start, end);\n\t\t // Return an augmented `Uint8Array` instance\n\t\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t\t return newBuf\n\t\t};\n\n\t\t/*\n\t\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t\t */\n\t\tfunction checkOffset (offset, ext, length) {\n\t\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t\t}\n\n\t\tBuffer.prototype.readUintLE =\n\t\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t\t let val = this[offset];\n\t\t let mul = 1;\n\t\t let i = 0;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t val += this[offset + i] * mul;\n\t\t }\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readUintBE =\n\t\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) {\n\t\t checkOffset(offset, byteLength, this.length);\n\t\t }\n\n\t\t let val = this[offset + --byteLength];\n\t\t let mul = 1;\n\t\t while (byteLength > 0 && (mul *= 0x100)) {\n\t\t val += this[offset + --byteLength] * mul;\n\t\t }\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readUint8 =\n\t\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t\t return this[offset]\n\t\t};\n\n\t\tBuffer.prototype.readUint16LE =\n\t\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t return this[offset] | (this[offset + 1] << 8)\n\t\t};\n\n\t\tBuffer.prototype.readUint16BE =\n\t\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t return (this[offset] << 8) | this[offset + 1]\n\t\t};\n\n\t\tBuffer.prototype.readUint32LE =\n\t\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return ((this[offset]) |\n\t\t (this[offset + 1] << 8) |\n\t\t (this[offset + 2] << 16)) +\n\t\t (this[offset + 3] * 0x1000000)\n\t\t};\n\n\t\tBuffer.prototype.readUint32BE =\n\t\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return (this[offset] * 0x1000000) +\n\t\t ((this[offset + 1] << 16) |\n\t\t (this[offset + 2] << 8) |\n\t\t this[offset + 3])\n\t\t};\n\n\t\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const lo = first +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 24;\n\n\t\t const hi = this[++offset] +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t last * 2 ** 24;\n\n\t\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t\t});\n\n\t\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const hi = first * 2 ** 24 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset];\n\n\t\t const lo = this[++offset] * 2 ** 24 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t last;\n\n\t\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t\t});\n\n\t\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t\t let val = this[offset];\n\t\t let mul = 1;\n\t\t let i = 0;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t val += this[offset + i] * mul;\n\t\t }\n\t\t mul *= 0x80;\n\n\t\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t\t let i = byteLength;\n\t\t let mul = 1;\n\t\t let val = this[offset + --i];\n\t\t while (i > 0 && (mul *= 0x100)) {\n\t\t val += this[offset + --i] * mul;\n\t\t }\n\t\t mul *= 0x80;\n\n\t\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t\t return val\n\t\t};\n\n\t\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t\t if (!(this[offset] & 0x80)) return (this[offset])\n\t\t return ((0xff - this[offset] + 1) * -1)\n\t\t};\n\n\t\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t const val = this[offset] | (this[offset + 1] << 8);\n\t\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t\t};\n\n\t\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t\t const val = this[offset + 1] | (this[offset] << 8);\n\t\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t\t};\n\n\t\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return (this[offset]) |\n\t\t (this[offset + 1] << 8) |\n\t\t (this[offset + 2] << 16) |\n\t\t (this[offset + 3] << 24)\n\t\t};\n\n\t\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t\t return (this[offset] << 24) |\n\t\t (this[offset + 1] << 16) |\n\t\t (this[offset + 2] << 8) |\n\t\t (this[offset + 3])\n\t\t};\n\n\t\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const val = this[offset + 4] +\n\t\t this[offset + 5] * 2 ** 8 +\n\t\t this[offset + 6] * 2 ** 16 +\n\t\t (last << 24); // Overflow\n\n\t\t return (BigInt(val) << BigInt(32)) +\n\t\t BigInt(first +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 24)\n\t\t});\n\n\t\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t\t offset = offset >>> 0;\n\t\t validateNumber(offset, 'offset');\n\t\t const first = this[offset];\n\t\t const last = this[offset + 7];\n\t\t if (first === undefined || last === undefined) {\n\t\t boundsError(offset, this.length - 8);\n\t\t }\n\n\t\t const val = (first << 24) + // Overflow\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t this[++offset];\n\n\t\t return (BigInt(val) << BigInt(32)) +\n\t\t BigInt(this[++offset] * 2 ** 24 +\n\t\t this[++offset] * 2 ** 16 +\n\t\t this[++offset] * 2 ** 8 +\n\t\t last)\n\t\t});\n\n\t\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t\t return ieee754.read(this, offset, true, 23, 4)\n\t\t};\n\n\t\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t\t return ieee754.read(this, offset, false, 23, 4)\n\t\t};\n\n\t\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t\t return ieee754.read(this, offset, true, 52, 8)\n\t\t};\n\n\t\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t\t return ieee754.read(this, offset, false, 52, 8)\n\t\t};\n\n\t\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t\t}\n\n\t\tBuffer.prototype.writeUintLE =\n\t\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) {\n\t\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t\t }\n\n\t\t let mul = 1;\n\t\t let i = 0;\n\t\t this[offset] = value & 0xFF;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t this[offset + i] = (value / mul) & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeUintBE =\n\t\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t byteLength = byteLength >>> 0;\n\t\t if (!noAssert) {\n\t\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t\t }\n\n\t\t let i = byteLength - 1;\n\t\t let mul = 1;\n\t\t this[offset + i] = value & 0xFF;\n\t\t while (--i >= 0 && (mul *= 0x100)) {\n\t\t this[offset + i] = (value / mul) & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeUint8 =\n\t\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t\t this[offset] = (value & 0xff);\n\t\t return offset + 1\n\t\t};\n\n\t\tBuffer.prototype.writeUint16LE =\n\t\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t\t this[offset] = (value & 0xff);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeUint16BE =\n\t\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t\t this[offset] = (value >>> 8);\n\t\t this[offset + 1] = (value & 0xff);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeUint32LE =\n\t\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t\t this[offset + 3] = (value >>> 24);\n\t\t this[offset + 2] = (value >>> 16);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t this[offset] = (value & 0xff);\n\t\t return offset + 4\n\t\t};\n\n\t\tBuffer.prototype.writeUint32BE =\n\t\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t\t this[offset] = (value >>> 24);\n\t\t this[offset + 1] = (value >>> 16);\n\t\t this[offset + 2] = (value >>> 8);\n\t\t this[offset + 3] = (value & 0xff);\n\t\t return offset + 4\n\t\t};\n\n\t\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t\t let lo = Number(value & BigInt(0xffffffff));\n\t\t buf[offset++] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset++] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset++] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset++] = lo;\n\t\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t\t buf[offset++] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset++] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset++] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset++] = hi;\n\t\t return offset\n\t\t}\n\n\t\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t\t let lo = Number(value & BigInt(0xffffffff));\n\t\t buf[offset + 7] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset + 6] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset + 5] = lo;\n\t\t lo = lo >> 8;\n\t\t buf[offset + 4] = lo;\n\t\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t\t buf[offset + 3] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset + 2] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset + 1] = hi;\n\t\t hi = hi >> 8;\n\t\t buf[offset] = hi;\n\t\t return offset + 8\n\t\t}\n\n\t\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t\t});\n\n\t\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t\t});\n\n\t\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t\t }\n\n\t\t let i = 0;\n\t\t let mul = 1;\n\t\t let sub = 0;\n\t\t this[offset] = value & 0xFF;\n\t\t while (++i < byteLength && (mul *= 0x100)) {\n\t\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t\t sub = 1;\n\t\t }\n\t\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t\t }\n\n\t\t let i = byteLength - 1;\n\t\t let mul = 1;\n\t\t let sub = 0;\n\t\t this[offset + i] = value & 0xFF;\n\t\t while (--i >= 0 && (mul *= 0x100)) {\n\t\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t\t sub = 1;\n\t\t }\n\t\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t\t }\n\n\t\t return offset + byteLength\n\t\t};\n\n\t\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -128);\n\t\t if (value < 0) value = 0xff + value + 1;\n\t\t this[offset] = (value & 0xff);\n\t\t return offset + 1\n\t\t};\n\n\t\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -32768);\n\t\t this[offset] = (value & 0xff);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -32768);\n\t\t this[offset] = (value >>> 8);\n\t\t this[offset + 1] = (value & 0xff);\n\t\t return offset + 2\n\t\t};\n\n\t\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -2147483648);\n\t\t this[offset] = (value & 0xff);\n\t\t this[offset + 1] = (value >>> 8);\n\t\t this[offset + 2] = (value >>> 16);\n\t\t this[offset + 3] = (value >>> 24);\n\t\t return offset + 4\n\t\t};\n\n\t\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -2147483648);\n\t\t if (value < 0) value = 0xffffffff + value + 1;\n\t\t this[offset] = (value >>> 24);\n\t\t this[offset + 1] = (value >>> 16);\n\t\t this[offset + 2] = (value >>> 8);\n\t\t this[offset + 3] = (value & 0xff);\n\t\t return offset + 4\n\t\t};\n\n\t\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t\t});\n\n\t\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t\t});\n\n\t\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t\t if (offset < 0) throw new RangeError('Index out of range')\n\t\t}\n\n\t\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t checkIEEE754(buf, value, offset, 4);\n\t\t }\n\t\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t\t return offset + 4\n\t\t}\n\n\t\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t\t return writeFloat(this, value, offset, true, noAssert)\n\t\t};\n\n\t\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t\t return writeFloat(this, value, offset, false, noAssert)\n\t\t};\n\n\t\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t\t value = +value;\n\t\t offset = offset >>> 0;\n\t\t if (!noAssert) {\n\t\t checkIEEE754(buf, value, offset, 8);\n\t\t }\n\t\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t\t return offset + 8\n\t\t}\n\n\t\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t\t return writeDouble(this, value, offset, true, noAssert)\n\t\t};\n\n\t\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t\t return writeDouble(this, value, offset, false, noAssert)\n\t\t};\n\n\t\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\t\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t\t if (!start) start = 0;\n\t\t if (!end && end !== 0) end = this.length;\n\t\t if (targetStart >= target.length) targetStart = target.length;\n\t\t if (!targetStart) targetStart = 0;\n\t\t if (end > 0 && end < start) end = start;\n\n\t\t // Copy 0 bytes; we're done\n\t\t if (end === start) return 0\n\t\t if (target.length === 0 || this.length === 0) return 0\n\n\t\t // Fatal error conditions\n\t\t if (targetStart < 0) {\n\t\t throw new RangeError('targetStart out of bounds')\n\t\t }\n\t\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t\t // Are we oob?\n\t\t if (end > this.length) end = this.length;\n\t\t if (target.length - targetStart < end - start) {\n\t\t end = target.length - targetStart + start;\n\t\t }\n\n\t\t const len = end - start;\n\n\t\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t\t // Use built-in when available, missing from IE11\n\t\t this.copyWithin(targetStart, start, end);\n\t\t } else {\n\t\t Uint8Array.prototype.set.call(\n\t\t target,\n\t\t this.subarray(start, end),\n\t\t targetStart\n\t\t );\n\t\t }\n\n\t\t return len\n\t\t};\n\n\t\t// Usage:\n\t\t// buffer.fill(number[, offset[, end]])\n\t\t// buffer.fill(buffer[, offset[, end]])\n\t\t// buffer.fill(string[, offset[, end]][, encoding])\n\t\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t\t // Handle string cases:\n\t\t if (typeof val === 'string') {\n\t\t if (typeof start === 'string') {\n\t\t encoding = start;\n\t\t start = 0;\n\t\t end = this.length;\n\t\t } else if (typeof end === 'string') {\n\t\t encoding = end;\n\t\t end = this.length;\n\t\t }\n\t\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t\t throw new TypeError('encoding must be a string')\n\t\t }\n\t\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t\t throw new TypeError('Unknown encoding: ' + encoding)\n\t\t }\n\t\t if (val.length === 1) {\n\t\t const code = val.charCodeAt(0);\n\t\t if ((encoding === 'utf8' && code < 128) ||\n\t\t encoding === 'latin1') {\n\t\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t\t val = code;\n\t\t }\n\t\t }\n\t\t } else if (typeof val === 'number') {\n\t\t val = val & 255;\n\t\t } else if (typeof val === 'boolean') {\n\t\t val = Number(val);\n\t\t }\n\n\t\t // Invalid ranges are not set to a default, so can range check early.\n\t\t if (start < 0 || this.length < start || this.length < end) {\n\t\t throw new RangeError('Out of range index')\n\t\t }\n\n\t\t if (end <= start) {\n\t\t return this\n\t\t }\n\n\t\t start = start >>> 0;\n\t\t end = end === undefined ? this.length : end >>> 0;\n\n\t\t if (!val) val = 0;\n\n\t\t let i;\n\t\t if (typeof val === 'number') {\n\t\t for (i = start; i < end; ++i) {\n\t\t this[i] = val;\n\t\t }\n\t\t } else {\n\t\t const bytes = Buffer.isBuffer(val)\n\t\t ? val\n\t\t : Buffer.from(val, encoding);\n\t\t const len = bytes.length;\n\t\t if (len === 0) {\n\t\t throw new TypeError('The value \"' + val +\n\t\t '\" is invalid for argument \"value\"')\n\t\t }\n\t\t for (i = 0; i < end - start; ++i) {\n\t\t this[i + start] = bytes[i % len];\n\t\t }\n\t\t }\n\n\t\t return this\n\t\t};\n\n\t\t// CUSTOM ERRORS\n\t\t// =============\n\n\t\t// Simplified versions from Node, changed for Buffer-only usage\n\t\tconst errors = {};\n\t\tfunction E (sym, getMessage, Base) {\n\t\t errors[sym] = class NodeError extends Base {\n\t\t constructor () {\n\t\t super();\n\n\t\t Object.defineProperty(this, 'message', {\n\t\t value: getMessage.apply(this, arguments),\n\t\t writable: true,\n\t\t configurable: true\n\t\t });\n\n\t\t // Add the error code to the name to include it in the stack trace.\n\t\t this.name = `${this.name} [${sym}]`;\n\t\t // Access the stack to generate the error message including the error code\n\t\t // from the name.\n\t\t this.stack; // eslint-disable-line no-unused-expressions\n\t\t // Reset the name to the actual name.\n\t\t delete this.name;\n\t\t }\n\n\t\t get code () {\n\t\t return sym\n\t\t }\n\n\t\t set code (value) {\n\t\t Object.defineProperty(this, 'code', {\n\t\t configurable: true,\n\t\t enumerable: true,\n\t\t value,\n\t\t writable: true\n\t\t });\n\t\t }\n\n\t\t toString () {\n\t\t return `${this.name} [${sym}]: ${this.message}`\n\t\t }\n\t\t };\n\t\t}\n\n\t\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t\t function (name) {\n\t\t if (name) {\n\t\t return `${name} is outside of buffer bounds`\n\t\t }\n\n\t\t return 'Attempt to access memory outside buffer bounds'\n\t\t }, RangeError);\n\t\tE('ERR_INVALID_ARG_TYPE',\n\t\t function (name, actual) {\n\t\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t\t }, TypeError);\n\t\tE('ERR_OUT_OF_RANGE',\n\t\t function (str, range, input) {\n\t\t let msg = `The value of \"${str}\" is out of range.`;\n\t\t let received = input;\n\t\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t\t received = addNumericalSeparator(String(input));\n\t\t } else if (typeof input === 'bigint') {\n\t\t received = String(input);\n\t\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t\t received = addNumericalSeparator(received);\n\t\t }\n\t\t received += 'n';\n\t\t }\n\t\t msg += ` It must be ${range}. Received ${received}`;\n\t\t return msg\n\t\t }, RangeError);\n\n\t\tfunction addNumericalSeparator (val) {\n\t\t let res = '';\n\t\t let i = val.length;\n\t\t const start = val[0] === '-' ? 1 : 0;\n\t\t for (; i >= start + 4; i -= 3) {\n\t\t res = `_${val.slice(i - 3, i)}${res}`;\n\t\t }\n\t\t return `${val.slice(0, i)}${res}`\n\t\t}\n\n\t\t// CHECK FUNCTIONS\n\t\t// ===============\n\n\t\tfunction checkBounds (buf, offset, byteLength) {\n\t\t validateNumber(offset, 'offset');\n\t\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t\t boundsError(offset, buf.length - (byteLength + 1));\n\t\t }\n\t\t}\n\n\t\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t\t if (value > max || value < min) {\n\t\t const n = typeof min === 'bigint' ? 'n' : '';\n\t\t let range;\n\t\t {\n\t\t if (min === 0 || min === BigInt(0)) {\n\t\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t\t } else {\n\t\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t\t }\n\t\t }\n\t\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t\t }\n\t\t checkBounds(buf, offset, byteLength);\n\t\t}\n\n\t\tfunction validateNumber (value, name) {\n\t\t if (typeof value !== 'number') {\n\t\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t\t }\n\t\t}\n\n\t\tfunction boundsError (value, length, type) {\n\t\t if (Math.floor(value) !== value) {\n\t\t validateNumber(value, type);\n\t\t throw new errors.ERR_OUT_OF_RANGE('offset', 'an integer', value)\n\t\t }\n\n\t\t if (length < 0) {\n\t\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t\t }\n\n\t\t throw new errors.ERR_OUT_OF_RANGE('offset',\n\t\t `>= ${0} and <= ${length}`,\n\t\t value)\n\t\t}\n\n\t\t// HELPER FUNCTIONS\n\t\t// ================\n\n\t\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\t\tfunction base64clean (str) {\n\t\t // Node takes equal signs as end of the Base64 encoding\n\t\t str = str.split('=')[0];\n\t\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t\t // Node converts strings with length < 2 to ''\n\t\t if (str.length < 2) return ''\n\t\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t\t while (str.length % 4 !== 0) {\n\t\t str = str + '=';\n\t\t }\n\t\t return str\n\t\t}\n\n\t\tfunction utf8ToBytes (string, units) {\n\t\t units = units || Infinity;\n\t\t let codePoint;\n\t\t const length = string.length;\n\t\t let leadSurrogate = null;\n\t\t const bytes = [];\n\n\t\t for (let i = 0; i < length; ++i) {\n\t\t codePoint = string.charCodeAt(i);\n\n\t\t // is surrogate component\n\t\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t\t // last char was a lead\n\t\t if (!leadSurrogate) {\n\t\t // no lead yet\n\t\t if (codePoint > 0xDBFF) {\n\t\t // unexpected trail\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t continue\n\t\t } else if (i + 1 === length) {\n\t\t // unpaired lead\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t continue\n\t\t }\n\n\t\t // valid lead\n\t\t leadSurrogate = codePoint;\n\n\t\t continue\n\t\t }\n\n\t\t // 2 leads in a row\n\t\t if (codePoint < 0xDC00) {\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t leadSurrogate = codePoint;\n\t\t continue\n\t\t }\n\n\t\t // valid surrogate pair\n\t\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t\t } else if (leadSurrogate) {\n\t\t // valid bmp char, but last char was a lead\n\t\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t\t }\n\n\t\t leadSurrogate = null;\n\n\t\t // encode utf8\n\t\t if (codePoint < 0x80) {\n\t\t if ((units -= 1) < 0) break\n\t\t bytes.push(codePoint);\n\t\t } else if (codePoint < 0x800) {\n\t\t if ((units -= 2) < 0) break\n\t\t bytes.push(\n\t\t codePoint >> 0x6 | 0xC0,\n\t\t codePoint & 0x3F | 0x80\n\t\t );\n\t\t } else if (codePoint < 0x10000) {\n\t\t if ((units -= 3) < 0) break\n\t\t bytes.push(\n\t\t codePoint >> 0xC | 0xE0,\n\t\t codePoint >> 0x6 & 0x3F | 0x80,\n\t\t codePoint & 0x3F | 0x80\n\t\t );\n\t\t } else if (codePoint < 0x110000) {\n\t\t if ((units -= 4) < 0) break\n\t\t bytes.push(\n\t\t codePoint >> 0x12 | 0xF0,\n\t\t codePoint >> 0xC & 0x3F | 0x80,\n\t\t codePoint >> 0x6 & 0x3F | 0x80,\n\t\t codePoint & 0x3F | 0x80\n\t\t );\n\t\t } else {\n\t\t throw new Error('Invalid code point')\n\t\t }\n\t\t }\n\n\t\t return bytes\n\t\t}\n\n\t\tfunction asciiToBytes (str) {\n\t\t const byteArray = [];\n\t\t for (let i = 0; i < str.length; ++i) {\n\t\t // Node's code seems to be doing this and not & 0x7F..\n\t\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t\t }\n\t\t return byteArray\n\t\t}\n\n\t\tfunction utf16leToBytes (str, units) {\n\t\t let c, hi, lo;\n\t\t const byteArray = [];\n\t\t for (let i = 0; i < str.length; ++i) {\n\t\t if ((units -= 2) < 0) break\n\n\t\t c = str.charCodeAt(i);\n\t\t hi = c >> 8;\n\t\t lo = c % 256;\n\t\t byteArray.push(lo);\n\t\t byteArray.push(hi);\n\t\t }\n\n\t\t return byteArray\n\t\t}\n\n\t\tfunction base64ToBytes (str) {\n\t\t return base64.toByteArray(base64clean(str))\n\t\t}\n\n\t\tfunction blitBuffer (src, dst, offset, length) {\n\t\t let i;\n\t\t for (i = 0; i < length; ++i) {\n\t\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t\t dst[i + offset] = src[i];\n\t\t }\n\t\t return i\n\t\t}\n\n\t\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t\t// the `instanceof` check but they should be treated as of that type.\n\t\t// See: https://github.com/feross/buffer/issues/166\n\t\tfunction isInstance (obj, type) {\n\t\t return obj instanceof type ||\n\t\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t\t obj.constructor.name === type.name)\n\t\t}\n\t\tfunction numberIsNaN (obj) {\n\t\t // For IE11 support\n\t\t return obj !== obj // eslint-disable-line no-self-compare\n\t\t}\n\n\t\t// Create lookup table for `toString('hex')`\n\t\t// See: https://github.com/feross/buffer/issues/219\n\t\tconst hexSliceLookupTable = (function () {\n\t\t const alphabet = '0123456789abcdef';\n\t\t const table = new Array(256);\n\t\t for (let i = 0; i < 16; ++i) {\n\t\t const i16 = i * 16;\n\t\t for (let j = 0; j < 16; ++j) {\n\t\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t\t }\n\t\t }\n\t\t return table\n\t\t})();\n\n\t\t// Return not function with Error if BigInt not supported\n\t\tfunction defineBigIntMethod (fn) {\n\t\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t\t}\n\n\t\tfunction BufferBigIntNotDefined () {\n\t\t throw new Error('BigInt not supported')\n\t\t} \n\t} (buffer));\n\treturn buffer;\n}\n\nvar bufferExports = requireBuffer();\n\nvar safeBuffer = {exports: {}};\n\n/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nvar hasRequiredSafeBuffer;\n\nfunction requireSafeBuffer () {\n\tif (hasRequiredSafeBuffer) return safeBuffer.exports;\n\thasRequiredSafeBuffer = 1;\n\t(function (module, exports$1) {\n\t\t/* eslint-disable node/no-deprecated-api */\n\t\tvar buffer = requireBuffer();\n\t\tvar Buffer = buffer.Buffer;\n\n\t\t// alternative to using Object.keys for old browsers\n\t\tfunction copyProps (src, dst) {\n\t\t for (var key in src) {\n\t\t dst[key] = src[key];\n\t\t }\n\t\t}\n\t\tif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n\t\t module.exports = buffer;\n\t\t} else {\n\t\t // Copy properties from require('buffer')\n\t\t copyProps(buffer, exports$1);\n\t\t exports$1.Buffer = SafeBuffer;\n\t\t}\n\n\t\tfunction SafeBuffer (arg, encodingOrOffset, length) {\n\t\t return Buffer(arg, encodingOrOffset, length)\n\t\t}\n\n\t\tSafeBuffer.prototype = Object.create(Buffer.prototype);\n\n\t\t// Copy static methods from Buffer\n\t\tcopyProps(Buffer, SafeBuffer);\n\n\t\tSafeBuffer.from = function (arg, encodingOrOffset, length) {\n\t\t if (typeof arg === 'number') {\n\t\t throw new TypeError('Argument must not be a number')\n\t\t }\n\t\t return Buffer(arg, encodingOrOffset, length)\n\t\t};\n\n\t\tSafeBuffer.alloc = function (size, fill, encoding) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('Argument must be a number')\n\t\t }\n\t\t var buf = Buffer(size);\n\t\t if (fill !== undefined) {\n\t\t if (typeof encoding === 'string') {\n\t\t buf.fill(fill, encoding);\n\t\t } else {\n\t\t buf.fill(fill);\n\t\t }\n\t\t } else {\n\t\t buf.fill(0);\n\t\t }\n\t\t return buf\n\t\t};\n\n\t\tSafeBuffer.allocUnsafe = function (size) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('Argument must be a number')\n\t\t }\n\t\t return Buffer(size)\n\t\t};\n\n\t\tSafeBuffer.allocUnsafeSlow = function (size) {\n\t\t if (typeof size !== 'number') {\n\t\t throw new TypeError('Argument must be a number')\n\t\t }\n\t\t return buffer.SlowBuffer(size)\n\t\t}; \n\t} (safeBuffer, safeBuffer.exports));\n\treturn safeBuffer.exports;\n}\n\nvar src;\nvar hasRequiredSrc;\n\nfunction requireSrc () {\n\tif (hasRequiredSrc) return src;\n\thasRequiredSrc = 1;\n\t// base-x encoding / decoding\n\t// Copyright (c) 2018 base-x contributors\n\t// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n\t// Distributed under the MIT software license, see the accompanying\n\t// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n\t// @ts-ignore\n\tvar _Buffer = requireSafeBuffer().Buffer;\n\tfunction base (ALPHABET) {\n\t if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n\t var BASE_MAP = new Uint8Array(256);\n\t for (var j = 0; j < BASE_MAP.length; j++) {\n\t BASE_MAP[j] = 255;\n\t }\n\t for (var i = 0; i < ALPHABET.length; i++) {\n\t var x = ALPHABET.charAt(i);\n\t var xc = x.charCodeAt(0);\n\t if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n\t BASE_MAP[xc] = i;\n\t }\n\t var BASE = ALPHABET.length;\n\t var LEADER = ALPHABET.charAt(0);\n\t var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n\t var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n\t function encode (source) {\n\t if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source); }\n\t if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n\t if (source.length === 0) { return '' }\n\t // Skip & count leading zeroes.\n\t var zeroes = 0;\n\t var length = 0;\n\t var pbegin = 0;\n\t var pend = source.length;\n\t while (pbegin !== pend && source[pbegin] === 0) {\n\t pbegin++;\n\t zeroes++;\n\t }\n\t // Allocate enough space in big-endian base58 representation.\n\t var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n\t var b58 = new Uint8Array(size);\n\t // Process the bytes.\n\t while (pbegin !== pend) {\n\t var carry = source[pbegin];\n\t // Apply \"b58 = b58 * 256 + ch\".\n\t var i = 0;\n\t for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n\t carry += (256 * b58[it1]) >>> 0;\n\t b58[it1] = (carry % BASE) >>> 0;\n\t carry = (carry / BASE) >>> 0;\n\t }\n\t if (carry !== 0) { throw new Error('Non-zero carry') }\n\t length = i;\n\t pbegin++;\n\t }\n\t // Skip leading zeroes in base58 result.\n\t var it2 = size - length;\n\t while (it2 !== size && b58[it2] === 0) {\n\t it2++;\n\t }\n\t // Translate the result into a string.\n\t var str = LEADER.repeat(zeroes);\n\t for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n\t return str\n\t }\n\t function decodeUnsafe (source) {\n\t if (typeof source !== 'string') { throw new TypeError('Expected String') }\n\t if (source.length === 0) { return _Buffer.alloc(0) }\n\t var psz = 0;\n\t // Skip and count leading '1's.\n\t var zeroes = 0;\n\t var length = 0;\n\t while (source[psz] === LEADER) {\n\t zeroes++;\n\t psz++;\n\t }\n\t // Allocate enough space in big-endian base256 representation.\n\t var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n\t var b256 = new Uint8Array(size);\n\t // Process the characters.\n\t while (psz < source.length) {\n\t // Find code of next character\n\t var charCode = source.charCodeAt(psz);\n\t // Base map can not be indexed using char code\n\t if (charCode > 255) { return }\n\t // Decode character\n\t var carry = BASE_MAP[charCode];\n\t // Invalid character\n\t if (carry === 255) { return }\n\t var i = 0;\n\t for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n\t carry += (BASE * b256[it3]) >>> 0;\n\t b256[it3] = (carry % 256) >>> 0;\n\t carry = (carry / 256) >>> 0;\n\t }\n\t if (carry !== 0) { throw new Error('Non-zero carry') }\n\t length = i;\n\t psz++;\n\t }\n\t // Skip leading zeroes in b256.\n\t var it4 = size - length;\n\t while (it4 !== size && b256[it4] === 0) {\n\t it4++;\n\t }\n\t var vch = _Buffer.allocUnsafe(zeroes + (size - it4));\n\t vch.fill(0x00, 0, zeroes);\n\t var j = zeroes;\n\t while (it4 !== size) {\n\t vch[j++] = b256[it4++];\n\t }\n\t return vch\n\t }\n\t function decode (string) {\n\t var buffer = decodeUnsafe(string);\n\t if (buffer) { return buffer }\n\t throw new Error('Non-base' + BASE + ' character')\n\t }\n\t return {\n\t encode: encode,\n\t decodeUnsafe: decodeUnsafe,\n\t decode: decode\n\t }\n\t}\n\tsrc = base;\n\treturn src;\n}\n\nvar bs58$1;\nvar hasRequiredBs58;\n\nfunction requireBs58 () {\n\tif (hasRequiredBs58) return bs58$1;\n\thasRequiredBs58 = 1;\n\tvar basex = requireSrc();\n\tvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\n\n\tbs58$1 = basex(ALPHABET);\n\treturn bs58$1;\n}\n\nvar bs58Exports = requireBs58();\nvar bs58 = /*@__PURE__*/getDefaultExportFromCjs(bs58Exports);\n\n// ─────────────────────────────────────────────────────────────\n// Local implementation of getSimulationComputeUnits\n// (Replaces @solana-developers/helpers to avoid Wallet import issue in browser/ESM builds)\n// Source: https://github.com/solana-developers/helpers/blob/main/src/lib/transaction.ts\n// ─────────────────────────────────────────────────────────────\n/**\n * Check if a given instruction is a SetComputeUnitLimit instruction\n * See https://github.com/solana-program/compute-budget/blob/main/clients/js/src/generated/programs/computeBudget.ts#L29\n */\nfunction isSetComputeLimitInstruction(ix) {\n return (ix.programId.equals(ComputeBudgetProgram.programId) &&\n ix.data[0] === 2 // opcode for setComputeUnitLimit is 2\n );\n}\n/**\n * Get the compute units required for a set of instructions via simulation.\n * Credit https://twitter.com/stegabob, originally from https://x.com/stegaBOB/status/1766662289392889920\n */\nasync function getSimulationComputeUnits(connection, instructions, payer, lookupTables, commitment = \"confirmed\") {\n var _a, _b, _c;\n const simulationInstructions = [...instructions];\n // Replace or add compute limit instruction\n const computeLimitIndex = simulationInstructions.findIndex(isSetComputeLimitInstruction);\n const simulationLimitIx = ComputeBudgetProgram.setComputeUnitLimit({\n units: 1400000,\n });\n if (computeLimitIndex >= 0) {\n simulationInstructions[computeLimitIndex] = simulationLimitIx;\n }\n else {\n simulationInstructions.unshift(simulationLimitIx);\n }\n const testTransaction = new VersionedTransaction(new TransactionMessage({\n instructions: simulationInstructions,\n payerKey: payer,\n // RecentBlockhash can by any public key during simulation\n // since 'replaceRecentBlockhash' is set to 'true' below\n recentBlockhash: PublicKey.default.toString(),\n }).compileToV0Message(lookupTables));\n const rpcResponse = await connection.simulateTransaction(testTransaction, {\n replaceRecentBlockhash: true,\n sigVerify: false,\n commitment,\n });\n if ((_a = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) === null || _a === void 0 ? void 0 : _a.err) {\n const logs = ((_b = rpcResponse.value.logs) === null || _b === void 0 ? void 0 : _b.join(\"\\n • \")) || \"No logs available\";\n throw new Error(`Transaction simulation failed:\\n •${logs}` +\n JSON.stringify((_c = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) === null || _c === void 0 ? void 0 : _c.err));\n }\n return rpcResponse.value.unitsConsumed || null;\n}\n/* ------------------------------------------------------------------ */\n/* RFC-4501 message */\n/* ------------------------------------------------------------------ */\nasync function genSolanaMessage(address, nonce) {\n var _a, _b;\n /* Domain / origin aren't available server-side – fall back to envs\n or simple placeholders. */\n const domain = (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.SESSION_DOMAIN)) || \"server\";\n const origin = (typeof process !== 'undefined' && ((_b = process.env) === null || _b === void 0 ? void 0 : _b.SESSION_ORIGIN)) || \"server\";\n const statement = \"Sign this message to authenticate with our application.\";\n const currentDate = new Date();\n const issuedAt = currentDate.toISOString();\n const expirationDate = new Date(currentDate.getTime() + 5 * 60 * 1000);\n const expirationTime = expirationDate.toISOString();\n return `${statement}\\n\\n` +\n `Wallet address:\\n${address}\\n\\n` +\n `Domain: ${domain}\\n` +\n `Origin: ${origin}\\n` +\n `Nonce: ${nonce}\\n` +\n `Issued At: ${issuedAt}\\n` +\n `Expiration Time: ${expirationTime}`;\n}\n// ─────────────────────────────────────────────────────────────\n// Serialization Helpers\n// ─────────────────────────────────────────────────────────────\nfunction isHexString(value) {\n // Matches strings containing only 0-9, a-f, or A-F (optionally prefixed with 0x)\n let testValue = value;\n // Handle negative values\n if (value.startsWith(\"-\")) {\n testValue = value.slice(1);\n }\n const hexRegex = /^(0x)?[0-9a-fA-F]+$/;\n return hexRegex.test(testValue);\n}\nfunction prepareAnchorArgs(documents) {\n return documents.map((doc) => ({\n path: doc.path,\n operations: doc.operations.map((op) => {\n let preparedValue = null;\n if (op.value) {\n if (\"u64Val\" in op.value) {\n if (isHexString(op.value.u64Val.value)) {\n preparedValue = { u64Val: { value: new BN(op.value.u64Val.value, \"hex\") } };\n }\n else {\n preparedValue = { u64Val: { value: new BN(op.value.u64Val.value) } };\n }\n }\n else if (\"i64Val\" in op.value) {\n if (isHexString(op.value.i64Val.value)) {\n if (op.value.i64Val.value.startsWith(\"-\")) {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value.slice(1), \"hex\").mul(new BN(-1)) } };\n }\n else {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value, \"hex\") } };\n }\n }\n else {\n preparedValue = { i64Val: { value: new BN(op.value.i64Val.value) } };\n }\n }\n else if (op.value.boolVal) {\n preparedValue = { boolVal: { value: !!op.value.boolVal.value } };\n }\n else if (op.value.stringVal) {\n preparedValue = { stringVal: { value: String(op.value.stringVal.value) } };\n }\n else if (op.value.addressVal) {\n preparedValue = { addressVal: { value: new PublicKey(op.value.addressVal.value) } };\n }\n else {\n preparedValue = op.value;\n }\n }\n return {\n key: op.key,\n value: preparedValue,\n operation: op.operation,\n };\n }),\n }));\n}\nfunction convertRemainingAccounts(remainingAccounts) {\n return remainingAccounts.map(acc => {\n return {\n pubkey: new PublicKey(acc.pubkey),\n isWritable: acc.isWritable,\n isSigner: acc.isSigner\n };\n });\n}\n// ─────────────────────────────────────────────────────────────\n// Updated Transaction Builder: It now accepts a PublicKey for the payer\n// ─────────────────────────────────────────────────────────────\nasync function buildSetDocumentsTransaction(connection, idl, anchorProvider, payerPublicKey, args, remainingAccounts, lutKey, preInstructions, simulate, additionalLutAddresses) {\n const computeBudgetIx = ComputeBudgetProgram.setComputeUnitLimit({\n units: 1400000,\n });\n //TODO: Figure out long term solution to estimate heap frame size\n const requestHeapFrameIx = ComputeBudgetProgram.requestHeapFrame({\n bytes: 1024 * 160,\n });\n const instructions = [];\n instructions.unshift(requestHeapFrameIx);\n instructions.unshift(computeBudgetIx);\n instructions.push(...preInstructions);\n let tx = null;\n if (idl.address === \"taro6CvKqwrYrDc16ufYgzQ2NZcyyVKStffbtudrhRu\") {\n const program = new Program(idl, anchorProvider);\n tx = await program.methods\n .setDocuments(args.app_id, prepareAnchorArgs(args.documents), args.delete_paths, simulate)\n .preInstructions(instructions)\n .accounts({\n payer: payerPublicKey\n })\n .remainingAccounts(remainingAccounts)\n .transaction();\n }\n else if (idl.address === \"poof4b5pk1L9tmThvBmaABjcyjfhFGbMbQP5BXk2QZp\") {\n const program = new Program(idl, anchorProvider);\n tx = await program.methods\n .setDocuments(args.app_id, prepareAnchorArgs(args.documents), args.delete_paths, args.txData, simulate)\n .preInstructions(instructions)\n .accounts({\n payer: payerPublicKey\n })\n .remainingAccounts(remainingAccounts)\n .transaction();\n }\n else {\n throw new Error(`Invalid program id: ${idl.address}`);\n }\n tx.feePayer = payerPublicKey;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash(\"confirmed\");\n tx.recentBlockhash = blockhash;\n // Resolve LUTs: additionalLutAddresses (when present) is the authoritative set.\n // Falls back to lutKey alone for backwards compatibility.\n const lookupTables = [];\n const isSurfnet = anchorProvider.connection.rpcEndpoint == \"https://surfpool.fly.dev\";\n if (additionalLutAddresses && additionalLutAddresses.length > 0) {\n const results = await Promise.all(additionalLutAddresses.map(addr => connection.getAddressLookupTable(new PublicKey(addr)).catch(() => null)));\n for (const result of results) {\n if (result === null || result === void 0 ? void 0 : result.value) {\n lookupTables.push(result.value);\n }\n }\n }\n else if (lutKey != null) {\n // The LUT may have just been created server-side and the client's RPC node\n // may not have indexed it yet (load-balancer split). Retry with exponential\n // back-off; first retry at 100 ms almost always resolves it.\n let table = null;\n for (let attempt = 0; attempt < 5; attempt++) {\n const { value } = await connection.getAddressLookupTable(new PublicKey(lutKey));\n if (value) {\n table = value;\n break;\n }\n if (attempt < 4)\n await new Promise(r => setTimeout(r, 100 * Math.pow(2, attempt)));\n }\n if (!table)\n throw new Error('LUT not found after creation/extend');\n lookupTables.push(table);\n }\n if (lookupTables.length === 0) {\n const computeUnits = isSurfnet ? 1400000 : await getSimulationComputeUnits(connection, tx.instructions, payerPublicKey, []);\n const computeBudgetIxOptimized = ComputeBudgetProgram.setComputeUnitLimit({\n units: computeUnits ? computeUnits * 1.2 : 1400000,\n }); // 20% buffer\n tx.instructions[0] = computeBudgetIxOptimized;\n return { tx, blockhash, lastValidBlockHeight };\n }\n const computeUnits = isSurfnet ? 1400000 : await getSimulationComputeUnits(connection, tx.instructions, payerPublicKey, lookupTables);\n const computeBudgetIxOptimized = ComputeBudgetProgram.setComputeUnitLimit({\n units: computeUnits ? computeUnits * 1.2 : 1400000,\n }); // 20% buffer\n tx.instructions[0] = computeBudgetIxOptimized;\n const msgV0 = new anchor.web3.TransactionMessage({\n payerKey: payerPublicKey,\n recentBlockhash: blockhash,\n instructions: tx.instructions,\n }).compileToV0Message(lookupTables);\n const vTx = new anchor.web3.VersionedTransaction(msgV0);\n return { tx: vTx, blockhash, lastValidBlockHeight };\n}\n\n/* ------------------------------------------------------------------ */\n/* ENV helpers */\n/* ------------------------------------------------------------------ */\nconst ENV_KEYPAIR = \"TAROBASE_SOLANA_KEYPAIR\"; // required\nfunction loadKeypairFromEnv() {\n const secret = process.env[ENV_KEYPAIR];\n if (!secret) {\n throw new Error(`Missing ${ENV_KEYPAIR}. Export a base-58 or JSON array secret key.`);\n }\n try {\n const secretKey = secret.trim().startsWith(\"[\")\n ? Uint8Array.from(JSON.parse(secret))\n : bs58.decode(secret.trim());\n return Keypair.fromSecretKey(secretKey);\n }\n catch (err) {\n throw new Error(`Unable to parse ${ENV_KEYPAIR}. Ensure it is valid base-58 or JSON.`);\n }\n}\n/* ------------------------------------------------------------------ */\n/* SESSION MANAGER */\n/* ------------------------------------------------------------------ */\nclass ServerSessionManager {\n constructor(keypair) {\n /* Private cache (lives for the life of the instance) */\n this.session = null;\n /* Coalesce concurrent getSession() calls into a single in-flight request */\n this.pendingSession = null;\n this.keypair = keypair !== null && keypair !== void 0 ? keypair : null;\n }\n /**\n * Create a session manager for a specific keypair.\n * Each instance has its own independent session cache.\n */\n static forKeypair(keypair) {\n return new ServerSessionManager(keypair);\n }\n /* ---------------------------------------------- *\n * Session creation (instance method)\n * ---------------------------------------------- */\n async createSession() {\n var _a;\n const kp = (_a = this.keypair) !== null && _a !== void 0 ? _a : loadKeypairFromEnv();\n const address = kp.publicKey.toBase58();\n /* fetch nonce from auth API */\n const nonce = await genAuthNonce();\n const message = await genSolanaMessage(address, nonce);\n /* sign the message */\n const sigBytes = nacl.sign.detached(new TextEncoder().encode(message), kp.secretKey);\n const signature = bufferExports.Buffer.from(sigBytes).toString(\"base64\");\n /* call auth API */\n const { accessToken, idToken, refreshToken, } = await createSessionWithSignature(address, message, signature);\n return { address, accessToken, idToken, refreshToken };\n }\n /* ---------------------------------------------- *\n * GET (lazy-fetch)\n * ---------------------------------------------- */\n async getSession() {\n if (this.session !== null) {\n return this.session;\n }\n // If a session creation is already in-flight, reuse that promise\n // instead of firing a second concurrent request.\n if (this.pendingSession !== null) {\n return this.pendingSession;\n }\n this.pendingSession = this.createSession()\n .then((session) => {\n this.session = session;\n return session;\n })\n .finally(() => {\n this.pendingSession = null;\n });\n return this.pendingSession;\n }\n /* ---------------------------------------------- *\n * STORE (overwrites the cached value)\n * ---------------------------------------------- */\n setSession(session) {\n this.session = session;\n }\n /* ---------------------------------------------- *\n * CLEAR (e.g. after logout or 401 retry)\n * ---------------------------------------------- */\n clearSession() {\n this.session = null;\n this.pendingSession = null;\n }\n /* ---------------------------------------------- *\n * QUICK helpers\n * ---------------------------------------------- */\n isAuthenticated() {\n return this.session !== null;\n }\n getIdToken() {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.idToken) !== null && _b !== void 0 ? _b : null;\n }\n getRefreshToken() {\n var _a, _b;\n return (_b = (_a = this.session) === null || _a === void 0 ? void 0 : _a.refreshToken) !== null && _b !== void 0 ? _b : null;\n }\n}\n/* The default singleton instance (reads keypair from env) */\nServerSessionManager.instance = new ServerSessionManager();\n\nvar serverSessionManager = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tServerSessionManager: ServerSessionManager\n});\n\n/**\n * Safe base64 helpers for tarobase-core.\n *\n * Uses the global atob/btoa when available (browser, RN with polyfill),\n * falls back to the 'buffer' package (Node.js / SSR / RN without polyfill).\n *\n * These are used instead of bare `atob()`/`btoa()` so the core package\n * works in React Native without requiring the consumer to polyfill globals.\n */\nfunction safeAtob(input) {\n if (typeof globalThis.atob === 'function') {\n return globalThis.atob(input);\n }\n return bufferExports.Buffer.from(input, 'base64').toString('binary');\n}\nfunction safeBtoa(input) {\n if (typeof globalThis.btoa === 'function') {\n return globalThis.btoa(input);\n }\n return bufferExports.Buffer.from(input, 'binary').toString('base64');\n}\n/**\n * Decode a base64url-encoded string (used by JWT payloads).\n * Normalises base64url → standard base64 before decoding.\n */\nfunction decodeBase64Url(input) {\n let b64 = input.replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return safeAtob(b64);\n}\n\nasync function createBearerToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n if (!(session === null || session === void 0 ? void 0 : session.idToken)) {\n return null;\n }\n return `Bearer ${session.idToken}`;\n }\n const idToken = WebSessionManager.getIdToken();\n if (!idToken) {\n return null;\n }\n return `Bearer ${idToken}`;\n}\nasync function createAuthHeader(isServer) {\n const bearerToken = await createBearerToken(isServer);\n if (!bearerToken) {\n return null;\n }\n return {\n Authorization: bearerToken\n };\n}\nasync function getIdToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return session === null || session === void 0 ? void 0 : session.idToken;\n }\n return WebSessionManager.getIdToken();\n}\nasync function getRefreshToken(isServer) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n const session = await sessionMgr.getSession();\n return session === null || session === void 0 ? void 0 : session.refreshToken;\n }\n return WebSessionManager.getRefreshToken();\n}\nasync function updateIdTokenAndAccessToken(idToken, accessToken, isServer = false) {\n if (isServer) {\n const sessionMgr = ServerSessionManager.instance;\n // Ensure we have a session to update; if missing, let lazy creation happen on next request.\n let session = null;\n try {\n session = await sessionMgr.getSession();\n }\n catch (_a) {\n return;\n }\n if (!session) {\n return;\n }\n sessionMgr.setSession(Object.assign(Object.assign({}, session), { idToken,\n accessToken }));\n return;\n }\n await WebSessionManager.updateIdTokenAndAccessToken(idToken, accessToken);\n}\n\nconst apiClient = axios.create();\naxiosRetry(apiClient, {\n retries: 2,\n retryCondition: (error) => {\n var _a, _b;\n // Only retry GET requests on network errors (ECONNRESET, ETIMEDOUT, etc.)\n // Writes (POST/PUT) are not retried — the server may have processed\n // the request before the connection was reset.\n return axiosRetry.isNetworkError(error) && ((_b = (_a = error.config) === null || _a === void 0 ? void 0 : _a.method) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'get';\n },\n retryDelay: axiosRetry.exponentialDelay,\n shouldResetTimeout: true,\n onRetry: (retryCount, error, requestConfig) => {\n var _a;\n console.warn(`[tarobase-sdk] retry ${retryCount} for ${(_a = requestConfig.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()} ${requestConfig.url} — ${error.code || error.message}`);\n },\n});\nconst refreshInFlight = new Map();\nasync function refreshAuthSessionOnce(appId, isServer) {\n const key = `${isServer ? \"server\" : \"web\"}:${appId}`;\n const existing = refreshInFlight.get(key);\n if (existing) {\n return existing;\n }\n const refreshPromise = (async () => {\n var _a, _b;\n try {\n const refreshToken = await getRefreshToken(isServer);\n if (!refreshToken) {\n return false;\n }\n const refreshData = await refreshSession(refreshToken);\n if (!(refreshData === null || refreshData === void 0 ? void 0 : refreshData.idToken) || !(refreshData === null || refreshData === void 0 ? void 0 : refreshData.accessToken)) {\n return false;\n }\n await updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken, isServer);\n return true;\n }\n catch (error) {\n if (!isServer && (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.status) === 403)) {\n const { WebSessionManager } = await Promise.resolve().then(function () { return webSessionManager; });\n WebSessionManager.clearSession();\n }\n return false;\n }\n finally {\n refreshInFlight.delete(key);\n }\n })();\n refreshInFlight.set(key, refreshPromise);\n return refreshPromise;\n}\nasync function makeApiRequest(method, urlPath, data, _overrides) {\n var _a, _b, _c, _d;\n const config = await getConfig();\n let hasRetriedAfterServerSessionReset = false;\n const clearServerSession = async () => {\n if (!config.isServer)\n return;\n const { ServerSessionManager } = await Promise.resolve().then(function () { return serverSessionManager; });\n ServerSessionManager.instance.clearSession();\n };\n async function executeRequest() {\n var _a;\n // When _getAuthHeaders is provided (wallet client), use it as the sole auth source.\n // Otherwise use the global createAuthHeader (default path).\n const authHeader = (_overrides === null || _overrides === void 0 ? void 0 : _overrides._getAuthHeaders)\n ? await _overrides._getAuthHeaders()\n : await createAuthHeader(config.isServer);\n const headers = Object.assign({ \"Content-Type\": \"application/json\", \"X-Public-App-Id\": config.appId, \"X-App-Id\": config.appId }, authHeader);\n if (typeof window !== \"undefined\" &&\n window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n const customAppId = window.CUSTOM_TAROBASE_APP_ID_HEADER;\n if (customAppId) {\n headers[\"X-App-Id\"] = customAppId;\n }\n }\n // Apply custom headers from _overrides\n if (_overrides === null || _overrides === void 0 ? void 0 : _overrides.headers) {\n Object.assign(headers, _overrides.headers);\n }\n const requestConfig = {\n method,\n url: `${config.apiUrl}${urlPath.startsWith(\"/\") ? urlPath : `/${urlPath}`}`,\n headers,\n timeout: (_a = _overrides === null || _overrides === void 0 ? void 0 : _overrides.timeout) !== null && _a !== void 0 ? _a : 30000,\n };\n if (method !== \"GET\" && method !== \"get\") {\n requestConfig.data = data ? JSON.stringify(data) : {};\n }\n const response = await apiClient(requestConfig);\n return { data: response.data, status: response.status, headers: response.headers };\n }\n try {\n return await executeRequest();\n }\n catch (error) {\n if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {\n // Wallet client path: use client-specific retry, skip global fallback entirely\n if (_overrides === null || _overrides === void 0 ? void 0 : _overrides._clearAuth) {\n await _overrides._clearAuth();\n return await executeRequest();\n // If this throws, let it propagate — do NOT clear global ServerSessionManager\n }\n // Default path (no wallet client): refresh global session\n try {\n const refreshed = await refreshAuthSessionOnce(config.appId, config.isServer);\n if (!refreshed) {\n throw new Error(\"Unable to refresh auth session\");\n }\n return await executeRequest();\n }\n catch (_refreshError) {\n // Server-side fallback: clear global session and retry once\n if (config.isServer && !hasRetriedAfterServerSessionReset) {\n hasRetriedAfterServerSessionReset = true;\n await clearServerSession();\n return await executeRequest();\n }\n throw error;\n }\n }\n if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) == 404) {\n return { data: null, status: 404 };\n }\n if ((_c = error.response) === null || _c === void 0 ? void 0 : _c.data) {\n const responseData = typeof error.response.data === 'object'\n ? error.response.data\n : { message: String(error.response.data) };\n const apiError = new Error(responseData.message || error.message || 'Request failed');\n Object.assign(apiError, responseData);\n apiError.statusCode = (_d = error.response) === null || _d === void 0 ? void 0 : _d.status;\n throw apiError;\n }\n throw error;\n }\n}\n\nlet clientConfig = {\n // User configured settings\n name: '',\n logoUrl: '',\n apiKey: '',\n wsApiUrl: 'wss://api.tarobase.com',\n apiUrl: 'https://api.tarobase.com',\n authApiUrl: 'https://auth.tarobase.com',\n appId: '',\n // Custom data from server\n authMethod: 'phantom',\n chain: '',\n rpcUrl: '',\n skipBackendInit: false,\n authProvider: null,\n isServer: false,\n};\nlet isInitialized = false;\nfunction init(newConfig) {\n return new Promise((resolve, reject) => {\n if (!newConfig.apiKey && !newConfig.appId) {\n reject(new Error('No API key or app ID provided.'));\n }\n clientConfig = Object.assign(Object.assign({}, clientConfig), newConfig);\n if (newConfig.skipBackendInit) {\n isInitialized = true;\n resolve();\n return;\n }\n isInitialized = true;\n makeApiRequest('GET', '/config').then((data) => {\n clientConfig = Object.assign(Object.assign(Object.assign({}, clientConfig), data.data), newConfig);\n isInitialized = true;\n resolve();\n }).catch((error) => {\n reject(new Error(\"Failed to initialize Tarobase app.\"));\n });\n });\n}\nfunction waitForInitialization() {\n return new Promise((resolve) => {\n if (isInitialized) {\n resolve();\n }\n else {\n const interval = setInterval(() => {\n if (isInitialized) {\n clearInterval(interval);\n resolve();\n }\n }, 50);\n }\n });\n}\nasync function getConfig() {\n await waitForInitialization();\n return clientConfig;\n}\n\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/**\n * Thrown when a user's wallet doesn't have enough SOL to cover the transaction.\n * Apps can catch this to trigger an onramp/funding flow.\n */\nclass InsufficientBalanceError extends Error {\n constructor(address, balanceLamports, estimatedCostLamports, deficitLamports, deficitSol) {\n super(`Insufficient balance: wallet ${address} needs ~${deficitSol.toFixed(6)} SOL more to complete this transaction.`);\n this.name = 'InsufficientBalanceError';\n this.address = address;\n this.balanceLamports = balanceLamports;\n this.estimatedCostLamports = estimatedCostLamports;\n this.deficitLamports = deficitLamports;\n this.deficitSol = deficitSol;\n }\n}\n// Cache for get responses\nconst getCache = {};\n// Track in-flight requests to coalesce multiple identical requests\nconst pendingRequests = {};\n// Default cache TTL (500ms = 0.5 seconds)\nconst GET_CACHE_TTL = 500; // Adjust this value as needed (in milliseconds)\n// Last time we cleaned up the cache\nlet lastCacheCleanup = Date.now();\nfunction hashForKey$1(value) {\n let h = 5381;\n for (let i = 0; i < value.length; i++) {\n h = ((h << 5) + h + value.charCodeAt(i)) & 0x7fffffff;\n }\n return h.toString(36);\n}\n/**\n * Validates that a field name is a safe identifier (alphanumeric, underscores, dots for nested paths).\n * Prevents prompt injection via crafted field names.\n */\nfunction validateFieldName(field) {\n if (!/^[a-zA-Z0-9_.]+$/.test(field)) {\n throw new Error(`Invalid field name \"${field}\". Field names must only contain letters, numbers, underscores, and dots.`);\n }\n}\n/**\n * Parses a raw aggregation result (e.g. [{ count: 42 }] or [{ _id: null, total: 100 }])\n * into a single numeric value.\n */\nfunction parseAggregateValue(result) {\n if (typeof result === 'number')\n return result;\n if (Array.isArray(result)) {\n if (result.length === 0)\n return 0;\n // Multiple elements — not a collapsed aggregate result\n if (result.length > 1) {\n throw new Error(`Unexpected aggregate result: got array with ${result.length} elements. The AI may have returned full documents instead of an aggregation.`);\n }\n const first = result[0];\n if (typeof first === 'number')\n return first;\n if (first && typeof first === 'object') {\n // $count stage returns { count: N }\n if (typeof first.count === 'number')\n return first.count;\n // $group stage returns { _id: null, result: N } — expect _id + one numeric field\n const numericEntries = Object.entries(first).filter(([key, val]) => key !== '_id' && typeof val === 'number');\n if (numericEntries.length === 1)\n return numericEntries[0][1];\n }\n // Avoid leaking document contents into error messages\n const shape = first && typeof first === 'object' ? `{${Object.keys(first).join(', ')}}` : String(first);\n throw new Error(`Unexpected aggregate result shape: ${shape}. Expected {count: N} or {_id: null, <field>: N}.`);\n }\n if (result && typeof result === 'object' && typeof result.count === 'number') {\n return result.count;\n }\n throw new Error(`Unexpected aggregate result type: ${typeof result}. Expected a number, array, or object with a count field.`);\n}\n/**\n * Count items in a collection path. Returns a numeric result.\n *\n * This uses the AI query engine with a count-specific prompt prefix,\n * so TaroBase will generate a $count aggregation pipeline and return\n * just the count rather than full documents.\n *\n * IMPORTANT: This only works for collections where the read policy is \"true\".\n * If the read policy requires per-document checks, the server will return\n * an error because aggregate counts cannot be performed without pulling all\n * documents for access control evaluation.\n *\n * @param path - Collection path (e.g., \"posts\", \"users/abc/comments\")\n * @param opts - Optional filter prompt and overrides\n * @returns AggregateResult with the count value\n */\nasync function count(path, opts = {}) {\n const prefix = 'Return ONLY the total count of matching documents. Use the $count stage to produce a field named \"count\". Do NOT return the documents themselves.';\n const fullPrompt = opts.prompt\n ? `${prefix} Filter: ${opts.prompt}`\n : prefix;\n const result = await get(path, { prompt: fullPrompt, bypassCache: true, _overrides: opts._overrides });\n return { value: parseAggregateValue(result) };\n}\n/**\n * Run an aggregate operation on a collection path. Returns a numeric result.\n *\n * Supported operations:\n * - count: Total number of documents\n * - uniqueCount: Number of distinct values for a field\n * - sum: Sum of a numeric field\n * - avg: Average of a numeric field\n * - min: Minimum value of a numeric field\n * - max: Maximum value of a numeric field\n *\n * IMPORTANT: This only works for collections where the read policy is \"true\".\n * If the read policy requires per-document checks, the server will return\n * an error because aggregate operations cannot be performed without pulling\n * all documents for access control evaluation.\n *\n * @param path - Collection path (e.g., \"posts\", \"users/abc/comments\")\n * @param operation - The aggregate operation to perform\n * @param opts - Options including optional filter prompt and field name\n * @returns AggregateResult with the computed numeric value\n */\nasync function aggregate(path, operation, opts = {}) {\n let prefix;\n switch (operation) {\n case 'count':\n prefix = 'Return ONLY the total count of matching documents. Use the $count stage to produce a field named \"count\". Do NOT return the documents themselves.';\n break;\n case 'uniqueCount':\n if (!opts.field)\n throw new Error('aggregate \"uniqueCount\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the count of unique/distinct values of the \"${opts.field}\" field. Use $group with _id set to \"$${opts.field}\" then $count to produce a field named \"count\". Do NOT return the documents themselves.`;\n break;\n case 'sum':\n if (!opts.field)\n throw new Error('aggregate \"sum\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the sum of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $sum: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n case 'avg':\n if (!opts.field)\n throw new Error('aggregate \"avg\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the average of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $avg: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n case 'min':\n if (!opts.field)\n throw new Error('aggregate \"min\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the minimum value of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $min: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n case 'max':\n if (!opts.field)\n throw new Error('aggregate \"max\" requires a field option');\n validateFieldName(opts.field);\n prefix = `Return ONLY the maximum value of the \"${opts.field}\" field across all matching documents. Use $group with _id: null and result: { $max: \"$${opts.field}\" }. Do NOT return the documents themselves.`;\n break;\n default:\n throw new Error(`Unsupported aggregate operation: ${operation}`);\n }\n const fullPrompt = opts.prompt\n ? `${prefix} Filter: ${opts.prompt}`\n : prefix;\n const result = await get(path, { prompt: fullPrompt, bypassCache: true, _overrides: opts._overrides });\n // For uniqueCount, the AI may return $group results without the final $count\n // stage, producing [{_id: \"val1\"}, {_id: \"val2\"}, ...]. Verify elements look\n // like $group output (only _id key) before using array length as the count.\n if (operation === 'uniqueCount' && Array.isArray(result) && result.length > 1) {\n const looksLikeGroupOutput = result.every((el) => el && typeof el === 'object' && Object.keys(el).length === 1 && '_id' in el);\n if (looksLikeGroupOutput) {\n return { value: result.length };\n }\n throw new Error(`Unexpected uniqueCount result: got ${result.length} elements that don't match $group output shape.`);\n }\n return { value: parseAggregateValue(result) };\n}\nasync function get(path, opts = {}) {\n var _a;\n try {\n let normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n // Remove last '*' if it exists in the path\n if (normalizedPath.endsWith(\"*\") && normalizedPath.length > 1) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n // Create cache key combining path, prompt, includeSubPaths, shape, limit, cursor, and wallet\n const shapeKey = opts.shape ? JSON.stringify(opts.shape) : '';\n const includeSubPathsKey = opts.includeSubPaths ? ':subpaths' : '';\n const limitKey = opts.limit !== undefined ? `:l${opts.limit}` : '';\n const cursorKey = opts.cursor ? `:c${hashForKey$1(opts.cursor)}` : '';\n const walletSuffix = ((_a = opts._overrides) === null || _a === void 0 ? void 0 : _a._walletAddress) ? `:w${opts._overrides._walletAddress}` : '';\n const cacheKey = `${normalizedPath}:${opts.prompt || ''}${includeSubPathsKey}:${shapeKey}${limitKey}${cursorKey}${walletSuffix}`;\n const now = Date.now();\n // Check for valid cache entry if not bypassing cache\n if (!opts.bypassCache && getCache[cacheKey] && now < getCache[cacheKey].expiresAt) {\n return getCache[cacheKey].data;\n }\n // If we're bypassing cache, we should still coalesce identical requests\n // but need a different key to avoid interfering with regular requests\n const requestKey = opts.bypassCache ? `bypass:${cacheKey}` : cacheKey;\n // Check if there's already an in-flight request for this key\n // Fix for TS error - use hasOwnProperty to explicitly check if key exists\n if (Object.prototype.hasOwnProperty.call(pendingRequests, requestKey)) {\n // Return the existing promise to coalesce requests\n return pendingRequests[requestKey];\n }\n // Create a new request promise and store it\n const requestPromise = (async () => {\n try {\n // Cache miss or bypass - proceed with API request\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n let response;\n // Build common query params\n const includeSubPathsParam = opts.includeSubPaths ? '&includeSubPaths=true' : '';\n const shapeParam = opts.shape ? `&shape=${encodeURIComponent(JSON.stringify(opts.shape))}` : '';\n const limitParam = opts.limit !== undefined ? `&limit=${opts.limit}` : '';\n const cursorParam = opts.cursor ? `&cursor=${encodeURIComponent(opts.cursor)}` : '';\n if (pathIsDocument) {\n const itemId = encodeURIComponent(normalizedPath);\n // For documents, query params go after the path\n const queryParams = [includeSubPathsParam, shapeParam].filter(p => p).join('');\n const apiPath = queryParams ? `items/${itemId}?${queryParams.substring(1)}` : `items/${itemId}`;\n response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n }\n else {\n const path = encodeURIComponent(normalizedPath);\n const promptQueryParam = (opts === null || opts === void 0 ? void 0 : opts.prompt) ? `&prompt=${safeBtoa(opts.prompt)}` : \"\";\n const apiPath = `items?path=${path}${promptQueryParam}${includeSubPathsParam}${shapeParam}${limitParam}${cursorParam}`;\n response = await makeApiRequest('GET', apiPath, null, opts._overrides);\n }\n const responseData = response.data;\n // Cache the response (unless bypassing cache)\n if (!opts.bypassCache) {\n getCache[cacheKey] = {\n data: responseData,\n expiresAt: now + GET_CACHE_TTL\n };\n // Periodically clean up expired cache entries (every 5 seconds)\n if (now - lastCacheCleanup > 5000) {\n cleanupExpiredCache();\n lastCacheCleanup = now;\n }\n }\n // Return the data from the response\n return responseData;\n }\n finally {\n // Remove this request from pendingRequests regardless of success/failure\n delete pendingRequests[requestKey];\n }\n })();\n // Store the promise so other calls can join it\n pendingRequests[requestKey] = requestPromise;\n // Return the promise\n return requestPromise;\n }\n catch (error) {\n throw error;\n }\n}\n// Helper to clean up expired cache entries\nfunction cleanupExpiredCache() {\n const now = Date.now();\n Object.keys(getCache).forEach(key => {\n if (getCache[key] && getCache[key].expiresAt < now) {\n delete getCache[key];\n }\n });\n lastCacheCleanup = now;\n}\nasync function getMany(paths, opts = {}) {\n if (paths.length === 0) {\n return [];\n }\n if (paths.length > 30) {\n throw new Error('Cannot fetch more than 30 documents at once');\n }\n const normalizedPaths = [];\n for (const path of paths) {\n let normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (normalizedPath.endsWith(\"*\") && normalizedPath.length > 1) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n if (!normalizedPath || normalizedPath.length === 0) {\n throw new Error(`Invalid path provided: ${path}`);\n }\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n if (!pathIsDocument) {\n throw new Error(`Path must point to a document (even number of segments): ${path}`);\n }\n normalizedPaths.push(normalizedPath);\n }\n const now = Date.now();\n const results = new Array(paths.length);\n const uncachedIndices = [];\n const uncachedPaths = [];\n for (let i = 0; i < normalizedPaths.length; i++) {\n const normalizedPath = normalizedPaths[i];\n const cacheKey = `${normalizedPath}:`;\n if (!opts.bypassCache && getCache[cacheKey] && now < getCache[cacheKey].expiresAt) {\n results[i] = { path: normalizedPath, data: getCache[cacheKey].data };\n }\n else {\n uncachedIndices.push(i);\n uncachedPaths.push(normalizedPath);\n }\n }\n if (uncachedPaths.length > 0) {\n try {\n const response = await makeApiRequest('POST', 'items/batch', { paths: uncachedPaths }, opts._overrides);\n const serverResults = response.data.results;\n const serverResultsMap = new Map();\n for (const result of serverResults) {\n serverResultsMap.set(result.path, result);\n }\n for (let i = 0; i < uncachedIndices.length; i++) {\n const originalIndex = uncachedIndices[i];\n const normalizedPath = uncachedPaths[i];\n const serverResult = serverResultsMap.get(normalizedPath);\n if (serverResult) {\n results[originalIndex] = serverResult;\n if (!serverResult.error && !opts.bypassCache) {\n const cacheKey = `${normalizedPath}:`;\n getCache[cacheKey] = {\n data: serverResult.data,\n expiresAt: now + GET_CACHE_TTL\n };\n }\n }\n else {\n results[originalIndex] = {\n path: normalizedPath,\n data: null,\n error: { code: 'NOT_FOUND', message: `No result returned for path ${normalizedPath}` }\n };\n }\n }\n if (now - lastCacheCleanup > 5000) {\n cleanupExpiredCache();\n lastCacheCleanup = now;\n }\n }\n catch (error) {\n for (const originalIndex of uncachedIndices) {\n results[originalIndex] = {\n path: normalizedPaths[originalIndex],\n data: null,\n error: { code: 'NOT_FOUND', message: error instanceof Error ? error.message : 'Unknown error' }\n };\n }\n }\n }\n return results;\n}\nasync function runQuery(absolutePath, queryName, queryArgs, opts) {\n const result = await runQueryMany([{ absolutePath, queryName, queryArgs }], opts);\n return result[0];\n}\nasync function runQueryMany(many, opts) {\n try {\n let queries = [];\n for (const { absolutePath, queryName, queryArgs } of many) {\n const normalizedPath = absolutePath.startsWith(\"/\") ? absolutePath.slice(1) : absolutePath;\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n if (!pathIsDocument) {\n throw new Error(`Invalid path provided make sure it is pointing to a document: ${absolutePath}`);\n }\n queries.push({ path: normalizedPath, queryName, queryArgs });\n }\n const response = await makeApiRequest('POST', 'queries', { queries }, opts === null || opts === void 0 ? void 0 : opts._overrides);\n return response.data.queries.map((result) => result.result);\n }\n catch (error) {\n throw error;\n }\n}\n// NEW: Ad-hoc expression execution - first-class feature\nasync function runExpression(expression, queryArgs, options) {\n const results = await runExpressionMany([Object.assign({ expression, queryArgs }, options)]);\n return results[0];\n}\nasync function runExpressionMany(many) {\n try {\n let queries = [];\n let overrides = undefined;\n for (const { expression, queryArgs, returnType, _overrides } of many) {\n // Collect overrides from first query that has them (all queries share same request)\n if (_overrides && !overrides) {\n overrides = _overrides;\n }\n queries.push({ queryArgs, expression, returnType });\n }\n const response = await makeApiRequest('POST', 'queries', { queries }, overrides);\n // Map results - trace is automatically included by server for non-mainnet networks\n return response.data.queries.map((queryResult) => {\n const result = { result: queryResult.result };\n // Include trace if present (server includes it for non-mainnet networks)\n if (queryResult.trace) {\n result.trace = queryResult.trace;\n }\n return result;\n });\n }\n catch (error) {\n throw error;\n }\n}\nasync function set(path, document, options) {\n const result = await setMany([{ path, document }], options);\n // Clear cache entries that might be affected by this update\n clearCacheByPrefix(path);\n return result;\n}\nasync function setMany(many, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n // Returns the data that was set, or undefined if the document was already set.\n try {\n const config = await getConfig();\n const authProvider = (_b = (_a = options === null || options === void 0 ? void 0 : options._overrides) === null || _a === void 0 ? void 0 : _a.authProvider) !== null && _b !== void 0 ? _b : config.authProvider;\n if (!authProvider) {\n throw new Error('Auth provider not initialized');\n }\n let documents = [];\n const pathsToInvalidate = new Set();\n for (const { path, document: documentWithReservedFields } of many) {\n // for setting, we should remove any pieces of the document that start with 'tarobase_' as they are internal and shouldn't be updated. The API would block it if it is one of the reserved ones\n let document = documentWithReservedFields;\n if (documentWithReservedFields) {\n document = Object.fromEntries(Object.entries(documentWithReservedFields).filter(([key]) => !key.startsWith('tarobase_')));\n }\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n pathsToInvalidate.add(normalizedPath);\n const pathIsDocument = normalizedPath.split(\"/\").length % 2 === 0;\n let curItemId = \"\";\n if (pathIsDocument) {\n curItemId = normalizedPath.split(\"/\").pop() ? normalizedPath.split(\"/\").pop() : \"\";\n }\n else {\n curItemId = Math.random().toString(36).slice(2).substring(0, 12);\n }\n // if the path is a document, we need to append the document id to the path\n const collectionPath = pathIsDocument ? normalizedPath.split(\"/\").slice(0, -1).join(\"/\") : normalizedPath;\n pathsToInvalidate.add(collectionPath);\n let destinationPath = collectionPath;\n if (curItemId && curItemId.length > 0) {\n destinationPath = `${destinationPath}/${curItemId}`;\n }\n documents.push({ destinationPath, document });\n }\n let setResponse;\n try {\n setResponse = await makeApiRequest('PUT', `items`, { documents }, options === null || options === void 0 ? void 0 : options._overrides);\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.statusCode) === 402 && (error === null || error === void 0 ? void 0 : error.error) === 'INSUFFICIENT_BALANCE') {\n const deficitLamports = Number((_c = error.deficitLamports) !== null && _c !== void 0 ? _c : 0);\n const deficitSol = Number((_d = error.deficitSol) !== null && _d !== void 0 ? _d : deficitLamports / 1000000000);\n throw new InsufficientBalanceError(String((_e = error.address) !== null && _e !== void 0 ? _e : ''), Number((_f = error.balanceLamports) !== null && _f !== void 0 ? _f : 0), Number((_g = error.estimatedCostLamports) !== null && _g !== void 0 ? _g : 0), deficitLamports, deficitSol);\n }\n throw error;\n }\n // Invalidate caches and pending requests for affected paths\n pathsToInvalidate.forEach(path => {\n clearCacheByPrefix(path);\n });\n if (setResponse.status === 202) {\n // This means that the document needs to be set on-chain (or signed for offchain),\n // the API did nothing and gave us the required info to run this transaction.\n const { transactions, offchainTransaction } = setResponse.data;\n // Handle offchain transaction flow (for 'offchain' protocol apps)\n if (offchainTransaction) {\n const transactionResult = await handleOffchainTransaction(offchainTransaction, authProvider, options);\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: transactionResult.signature, signedTransaction: transactionResult.signedTransaction });\n }\n // Handle Solana on-chain transaction flow\n let lastTxSignature = undefined;\n let signedTransaction = undefined;\n for (let i = 0; i < transactions.length; i++) {\n const curTx = transactions[i];\n const transactionResult = await handleSolanaTransaction(curTx, authProvider, options);\n lastTxSignature = transactionResult.transactionSignature;\n signedTransaction = transactionResult.signedTransaction;\n }\n // Sync items after all transactions are confirmed\n // Wait for 1.5 seconds to ensure all transactions are confirmed\n await new Promise(resolve => setTimeout(resolve, 1500));\n await syncItems(many.map(m => m.path), options);\n // TODO: Should we wait here or do the optimistic subscription updates like below?\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: lastTxSignature, signedTransaction: signedTransaction });\n }\n else if (setResponse.status === 200) {\n // This means that the document was set successfully.\n // TODO: If we're able to be smarter about it, we can return the document here, and get it back from the server\n // rather than just using what we set.\n // TODO: We can also trigger subscriptions here maybe? Can even recall all relevant subscriptions here.\n if (setResponse.data === true) {\n return Object.assign(Object.assign({}, documents.map(d => d.document)), { transactionId: null });\n }\n else if (setResponse.data &&\n typeof setResponse.data === 'object' &&\n setResponse.data.success === true) {\n const _h = setResponse.data, { success: _success } = _h, rest = __rest(_h, [\"success\"]);\n return Object.assign(Object.assign(Object.assign({}, documents.map(d => d.document)), rest), { transactionId: null });\n }\n else {\n return Object.assign(Object.assign({}, setResponse.data), { transactionId: null });\n }\n }\n else {\n throw new Error(`Failed to set document: ${setResponse}`);\n }\n }\n catch (error) {\n throw error;\n }\n async function handleSolanaTransaction(tx, authProvider, options) {\n var _a, _b, _c, _d, _e;\n const solTransactionData = {\n remainingAccounts: tx.remainingAccounts,\n setDocumentData: tx.transactionArgs.setDocumentData,\n deletePaths: tx.transactionArgs.deletePaths,\n idl: tx.idl,\n txData: (_b = (_a = tx.txData) === null || _a === void 0 ? void 0 : _a.map((txData) => {\n var _a;\n return ({\n pluginFunctionKey: txData.pluginFunctionKey,\n txData: bufferExports.Buffer.from(txData.txData),\n raIndices: (_a = txData.raIndices) === null || _a === void 0 ? void 0 : _a.map((raIndex) => {\n if (isHexString(raIndex)) {\n return new BN(raIndex, \"hex\");\n }\n else {\n return new BN(raIndex);\n }\n }),\n });\n })) !== null && _b !== void 0 ? _b : [],\n };\n const config = await getConfig();\n const solTransaction = {\n appId: config.appId,\n txArgs: [solTransactionData],\n lutKey: (_c = tx.lutAddress) !== null && _c !== void 0 ? _c : null,\n additionalLutAddresses: tx.additionalLutAddresses,\n network: tx.network,\n preInstructions: (_e = (_d = tx.preInstructions) === null || _d === void 0 ? void 0 : _d.map((ix) => {\n var _a;\n const keys = (_a = ix.keys) === null || _a === void 0 ? void 0 : _a.map((k) => ({\n pubkey: new PublicKey(k.pubkey),\n isSigner: k.isSigner,\n isWritable: k.isWritable,\n }));\n const programId = ix.programId === SystemProgram.programId.toBase58()\n ? SystemProgram.programId // prettier to use the constant\n : new PublicKey(ix.programId);\n const data = bufferExports.Buffer.from(ix.data);\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n })) !== null && _e !== void 0 ? _e : [],\n // Server co-signed transaction (when CPI tx_data is present)\n signedTransaction: tx.signedTransaction,\n };\n const transactionResult = await authProvider.runTransaction(undefined, solTransaction, options);\n return transactionResult;\n }\n async function handleOffchainTransaction(tx, authProvider, options) {\n var _a, _b, _c, _d, _e, _f;\n const config = await getConfig();\n // 1. Sign the transaction message using mock signing for offchain transactions\n // Use signMessageMock if available (OffchainAuthProvider), otherwise fall back to signMessage\n const signature = authProvider.signMessageMock\n ? await authProvider.signMessageMock(tx.message)\n : await authProvider.signMessage(tx.message);\n // 2. Create signed transaction\n const signedTx = {\n transaction: tx,\n signature\n };\n // 3. If shouldSubmitTx is false, return signed but not submitted\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n return {\n signature: '',\n signedTransaction: bufferExports.Buffer.from(JSON.stringify(signedTx)).toString('base64')\n };\n }\n // 4. Submit to RPC endpoint via makeApiRequest (gets auth headers + 401 retry)\n const appId = ((_b = (_a = options === null || options === void 0 ? void 0 : options._overrides) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b['x-app-id']) || ((_d = (_c = options === null || options === void 0 ? void 0 : options._overrides) === null || _c === void 0 ? void 0 : _c.headers) === null || _d === void 0 ? void 0 : _d['X-App-Id']) || config.appId;\n const rpcResponse = await makeApiRequest('POST', `/app/${appId}/rpc`, {\n jsonrpc: '2.0',\n id: 1,\n method: 'sendTransaction',\n params: [bufferExports.Buffer.from(JSON.stringify(signedTx)).toString('base64')]\n }, options === null || options === void 0 ? void 0 : options._overrides);\n if ((_e = rpcResponse.data) === null || _e === void 0 ? void 0 : _e.error) {\n throw new Error(rpcResponse.data.error.message);\n }\n return { signature: (_f = rpcResponse.data) === null || _f === void 0 ? void 0 : _f.result };\n }\n}\n// Helper to clear cache entries by prefix\nfunction clearCacheByPrefix(prefix) {\n // Fixed: Use prefix instead of undefined 'path' variable\n const normalizedPrefix = prefix.startsWith(\"/\") ? prefix.slice(1) : prefix;\n // Clear cache entries\n Object.keys(getCache).forEach(key => {\n const [path] = key.split(':');\n if (path === normalizedPrefix || path.startsWith(`${normalizedPrefix}/`)) {\n delete getCache[key];\n }\n });\n // Cancel pending requests for this path\n Object.keys(pendingRequests).forEach(key => {\n // Skip bypass-specific requests which have a different format\n if (key.startsWith('bypass:'))\n return;\n const [path] = key.split(':');\n if (path === normalizedPrefix || path.startsWith(`${normalizedPrefix}/`)) {\n // We don't actually abort the fetch (we could with AbortController),\n // but we remove it from pending so new requests won't coalesce with it\n delete pendingRequests[key];\n }\n });\n}\nasync function getFiles(path, options) {\n try {\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n if (!normalizedPath || normalizedPath.length === 0) {\n return new Error(\"Invalid path provided.\");\n }\n const apiPath = `storage?path=${normalizedPath}`;\n const response = await makeApiRequest('GET', apiPath, null, options === null || options === void 0 ? void 0 : options._overrides);\n return response.data;\n }\n catch (error) {\n throw error;\n }\n}\nasync function setFile(path, file, options) {\n var _a;\n // 1) Get the presigned URL from your backend\n const requestBody = {\n destinationPath: path,\n operation: file ? 'upload' : 'delete',\n };\n // Send file size so the server can enforce upload limits before issuing a presigned URL\n if (file) {\n requestBody.contentLength = file.size;\n }\n const response = await makeApiRequest('POST', 'storage/url', requestBody, options === null || options === void 0 ? void 0 : options._overrides);\n if (file == null) {\n return true;\n }\n if (!((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.s3Url)) {\n throw new Error(\"No s3Url in response\");\n }\n // Client-side size guard using the limit returned by the server\n const maxFileSize = response.data.maxFileSize;\n if (maxFileSize && file.size > maxFileSize) {\n throw new Error(`File size ${(file.size / (1024 * 1024)).toFixed(2)} MB exceeds the maximum upload size of ${(maxFileSize / (1024 * 1024)).toFixed(0)} MB.`);\n }\n const presignedUrl = response.data.s3Url;\n // 2) Upload the file directly to S3 with a PUT request\n const uploadResponse = await fetch(presignedUrl, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type,\n },\n body: file\n });\n // 3) Check if the upload was successful\n if (!uploadResponse.ok) {\n await uploadResponse.text();\n throw new Error(`Upload failed with status: ${uploadResponse.status}`);\n }\n return true;\n}\nasync function signMessage(message) {\n const config = await getConfig();\n if (!config.authProvider) {\n throw new Error('Auth provider not initialized. Please call init() first.');\n }\n return config.authProvider.signMessage(message);\n}\nasync function signTransaction(transaction) {\n const config = await getConfig();\n if (!config.authProvider) {\n throw new Error('Auth provider not initialized. Please call init() first.');\n }\n return config.authProvider.signTransaction(transaction);\n}\nasync function signAndSubmitTransaction(transaction, feePayer) {\n const config = await getConfig();\n if (!config.authProvider) {\n throw new Error('Auth provider not initialized. Please call init() first.');\n }\n return config.authProvider.signAndSubmitTransaction(transaction, feePayer);\n}\nasync function syncItems(paths, options) {\n try {\n const response = await makeApiRequest('PUT', 'items/sync', { paths }, options === null || options === void 0 ? void 0 : options._overrides);\n return response.data;\n }\n catch (error) {\n throw error;\n }\n}\n\n/**\n * WebSocket v2 Subscription Manager\n *\n * This module implements multiplexed subscriptions over a single WebSocket connection.\n * It maintains the same external API as v1 but uses the new v2 protocol internally.\n */\n// ============ Global State ============\n// One connection per appId\nconst connections = new Map();\nconst responseCache = new Map();\nconst CACHE_TTL = 5 * 60 * 1000; // 5 minutes\nconst TOKEN_REFRESH_BUFFER = 10 * 60 * 1000; // Refresh token 10 minutes before expiry\nconst TOKEN_CHECK_INTERVAL = 5 * 60 * 1000; // Check token freshness every 5 minutes\n// ============ WebSocket Config ============\nconst BASE_MIN_RECONNECT_DELAY_MS = 1000;\nconst MIN_RECONNECT_DELAY_JITTER_MS = 1000;\nconst MAX_RECONNECT_DELAY_MS = 300000;\nconst RECONNECT_DELAY_GROW_FACTOR = 1.8;\nconst MIN_BROWSER_RECONNECT_INTERVAL_MS = 5000;\nconst MAX_AUTH_REFRESH_RETRIES = 5;\nconst WS_CONFIG = {\n // Keep retrying indefinitely so long outages recover without page refresh.\n maxRetries: Infinity,\n // Conservative starting delay with jitter spreads reconnects across clients.\n minReconnectionDelay: BASE_MIN_RECONNECT_DELAY_MS + Math.floor(Math.random() * MIN_RECONNECT_DELAY_JITTER_MS),\n // Stretch backoff to 5 minutes during prolonged outages to protect backend pools.\n maxReconnectionDelay: MAX_RECONNECT_DELAY_MS,\n // Moderate growth to avoid rapid retry bursts while still converging to max delay.\n reconnectionDelayGrowFactor: RECONNECT_DELAY_GROW_FACTOR,\n // Give handshakes more time before considering the attempt failed.\n connectionTimeout: 10000,\n};\nconst WS_V2_PATH = '/ws/v2';\nlet browserReconnectHooksAttached = false;\nlet lastBrowserTriggeredReconnectAt = 0;\nlet reconnectInProgress = null;\n// ============ Helper Functions ============\nfunction generateSubscriptionId() {\n return `sub_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n}\nfunction hashForKey(value) {\n let h = 5381;\n for (let i = 0; i < value.length; i++) {\n h = ((h << 5) + h + value.charCodeAt(i)) & 0x7fffffff;\n }\n return h.toString(36);\n}\nfunction getCacheKey(path, prompt, shape, limit, cursor) {\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const shapeKey = shape && Object.keys(shape).length > 0 ? JSON.stringify(shape) : '';\n const limitKey = limit !== undefined ? `:l${limit}` : '';\n const cursorKey = cursor ? `:c${hashForKey(cursor)}` : '';\n return `${normalizedPath}:${prompt || 'default'}:${shapeKey}${limitKey}${cursorKey}`;\n}\nfunction isTokenExpired(token) {\n try {\n const payload = JSON.parse(decodeBase64Url(token.split('.')[1]));\n const expirationTime = payload.exp * 1000;\n const currentTime = Date.now();\n return currentTime > (expirationTime - 60000); // 60 second buffer\n }\n catch (error) {\n console.error('[WS v2] Error checking token expiration:', error);\n return true;\n }\n}\nfunction getTokenExpirationTime(token) {\n try {\n const payload = JSON.parse(decodeBase64Url(token.split('.')[1]));\n return payload.exp ? payload.exp * 1000 : null;\n }\n catch (_a) {\n return null;\n }\n}\nfunction scheduleTokenRefresh(connection, isServer) {\n // Clear any existing timer\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n // Periodic check: every TOKEN_CHECK_INTERVAL, check if the token needs refreshing.\n // This replaces the old single setTimeout approach which was unreliable for long\n // delays (browsers throttle/suspend timers in background tabs).\n connection.tokenRefreshTimer = setInterval(async () => {\n var _a, _b;\n try {\n const currentToken = await getIdToken(isServer);\n if (!currentToken)\n return; // Unauthenticated, nothing to refresh\n const expirationTime = getTokenExpirationTime(currentToken);\n if (!expirationTime)\n return;\n const timeUntilExpiry = expirationTime - Date.now();\n if (timeUntilExpiry <= TOKEN_REFRESH_BUFFER) {\n console.info('[WS v2] Token expiring soon, proactively refreshing');\n // Refresh the token and store it. Do NOT reconnect — the server only\n // verifies JWT at $connect time, so the existing connection continues\n // working. The fresh token is picked up by urlProvider the next time\n // a reconnect naturally happens (network drop, keepalive timeout, etc.).\n try {\n const currentRefreshToken = await getRefreshToken(isServer);\n if (!currentRefreshToken) {\n console.warn('[WS v2] No refresh token available for proactive refresh');\n return;\n }\n const refreshData = await refreshSession(currentRefreshToken);\n if (refreshData && refreshData.idToken && refreshData.accessToken) {\n await updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken, isServer);\n console.info('[WS v2] Token refreshed successfully, stored for next connection');\n }\n else {\n console.warn('[WS v2] Proactive token refresh returned incomplete data');\n }\n }\n catch (refreshError) {\n // If the refresh token itself is invalid (401/403), stop retrying —\n // the token won't magically become valid next interval, and continuing\n // to hammer /session/refresh causes 429 rate-limit storms.\n if (((_a = refreshError === null || refreshError === void 0 ? void 0 : refreshError.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = refreshError === null || refreshError === void 0 ? void 0 : refreshError.response) === null || _b === void 0 ? void 0 : _b.status) === 403) {\n console.warn('[WS v2] Refresh token rejected (401/403), stopping periodic refresh');\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n return;\n }\n console.warn('[WS v2] Proactive token refresh failed, will retry next interval:', refreshError);\n }\n }\n }\n catch (error) {\n console.error('[WS v2] Error in periodic token check:', error);\n }\n }, TOKEN_CHECK_INTERVAL);\n}\nasync function getFreshAuthToken(isServer) {\n var _a, _b;\n const currentToken = await getIdToken(isServer);\n if (!currentToken) {\n return null;\n }\n if (!isTokenExpired(currentToken)) {\n return currentToken;\n }\n // Token is expired — attempt refresh\n try {\n const refreshToken = await getRefreshToken(isServer);\n if (!refreshToken) {\n console.warn('[WS v2] Token expired but no refresh token available');\n return null;\n }\n const refreshData = await refreshSession(refreshToken);\n if (refreshData && refreshData.idToken && refreshData.accessToken) {\n await updateIdTokenAndAccessToken(refreshData.idToken, refreshData.accessToken, isServer);\n return refreshData.idToken;\n }\n }\n catch (error) {\n console.error('[WS v2] Error refreshing token:', error);\n // If the refresh token is permanently invalid (401/403), clear the stale\n // session from storage so future attempts don't keep retrying with it.\n if (!isServer && (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 || ((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.status) === 403)) {\n try {\n const { WebSessionManager } = await Promise.resolve().then(function () { return webSessionManager; });\n WebSessionManager.clearSession();\n }\n catch (clearError) {\n console.warn('[WS v2] Failed to clear stale session:', clearError);\n }\n }\n }\n // Return null instead of the expired token to prevent infinite 401 reconnect storms.\n // The server accepts unauthenticated connections; auth-required subscriptions will\n // receive per-subscription errors via onError callbacks.\n console.warn('[WS v2] Token refresh failed, connecting without auth to prevent reconnect storm');\n return null;\n}\nfunction hasDisconnectedActiveConnections() {\n for (const connection of connections.values()) {\n if (!connection.ws) {\n continue;\n }\n // Only nudge reconnection when socket is fully closed.\n // If ReconnectingWebSocket is already in CONNECTING/backoff state, don't interfere.\n if (connection.ws.readyState === WS_READY_STATE_CLOSED) {\n return true;\n }\n }\n return false;\n}\nfunction maybeReconnectFromBrowserSignal() {\n const now = Date.now();\n if (now - lastBrowserTriggeredReconnectAt < MIN_BROWSER_RECONNECT_INTERVAL_MS) {\n return;\n }\n if (!hasDisconnectedActiveConnections()) {\n return;\n }\n lastBrowserTriggeredReconnectAt = now;\n reconnectWithNewAuthV2().catch((error) => {\n console.error('[WS v2] Browser-triggered reconnect failed:', error);\n });\n}\nfunction attachBrowserReconnectHooksOnce() {\n if (browserReconnectHooksAttached) {\n return;\n }\n if (typeof window === 'undefined') {\n return;\n }\n browserReconnectHooksAttached = true;\n window.addEventListener('online', () => {\n maybeReconnectFromBrowserSignal();\n });\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n maybeReconnectFromBrowserSignal();\n }\n });\n }\n}\n// ============ Connection Management ============\nasync function getOrCreateConnection(appId, isServer) {\n attachBrowserReconnectHooksOnce();\n let connection = connections.get(appId);\n if (connection && connection.ws) {\n return connection;\n }\n // Create new connection\n connection = {\n ws: null,\n subscriptions: new Map(),\n pendingSubscriptions: new Map(),\n pendingUnsubscriptions: new Map(),\n isConnecting: false,\n isConnected: false,\n appId,\n tokenRefreshTimer: null,\n consecutiveAuthFailures: 0,\n };\n connections.set(appId, connection);\n // URL provider for reconnection with fresh tokens\n const urlProvider = async () => {\n const config = await getConfig();\n const wsUrl = new URL(config.wsApiUrl);\n // Always use v2 path\n wsUrl.pathname = WS_V2_PATH;\n // Set appId — prefer the explicit appId passed to getOrCreateConnection,\n // fall back to window global for legacy callers, then config default\n if (appId && appId !== config.appId) {\n wsUrl.searchParams.append('appId', appId);\n }\n else if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n wsUrl.searchParams.append('appId', window.CUSTOM_TAROBASE_APP_ID_HEADER);\n }\n else {\n wsUrl.searchParams.append('appId', config.appId);\n }\n // Add auth token if available\n const authToken = await getFreshAuthToken(isServer);\n if (authToken) {\n wsUrl.searchParams.append('authorization', authToken);\n // Successful token acquisition — reset failure counter\n connection.consecutiveAuthFailures = 0;\n }\n else {\n // Check if user WAS authenticated (had a token that expired).\n // If so, retry with exponential backoff before falling back to unauthenticated.\n const expiredToken = await getIdToken(isServer);\n if (expiredToken && isTokenExpired(expiredToken)) {\n connection.consecutiveAuthFailures++;\n if (connection.consecutiveAuthFailures <= MAX_AUTH_REFRESH_RETRIES) {\n console.warn(`[WS v2] Auth refresh failed (attempt ${connection.consecutiveAuthFailures}/${MAX_AUTH_REFRESH_RETRIES}), retrying with backoff`);\n throw new Error('Auth token refresh failed, retrying with backoff');\n }\n console.warn('[WS v2] Auth refresh retries exhausted, falling back to unauthenticated connection');\n }\n // No token at all (never authenticated) or retries exhausted — connect without auth\n }\n return wsUrl.toString();\n };\n // Create WebSocket connection\n connection.isConnecting = true;\n const ws = new ReconnectingWebSocket(urlProvider, [], Object.assign(Object.assign({}, WS_CONFIG), { debug: false }));\n connection.ws = ws;\n // Handle connection open\n ws.addEventListener('open', () => {\n connection.isConnecting = false;\n connection.isConnected = true;\n // NOTE: Do NOT reset consecutiveAuthFailures here. It is reset when a\n // fresh auth token is actually obtained (in urlProvider, line ~389) or on\n // an explicit auth change (reconnectWithNewAuthV2, line ~854). Resetting\n // on every 'open' event created an infinite loop: auth fails 5x → connect\n // without auth → open resets counter → disconnect → auth fails 5x again →\n // repeat forever, hammering /session/refresh and causing 429s.\n //\n // An elevated counter is safe for anonymous/guest sessions: when there's no\n // token at all (getIdToken returns null), the counter is never checked —\n // urlProvider skips straight to unauthenticated connection.\n // Schedule periodic token freshness checks\n scheduleTokenRefresh(connection, isServer);\n // Re-subscribe to all existing subscriptions after reconnect\n for (const sub of connection.subscriptions.values()) {\n sub.lastData = undefined;\n sendSubscribe(connection, sub);\n }\n });\n // Handle incoming messages\n ws.addEventListener('message', (event) => {\n try {\n const message = JSON.parse(event.data);\n handleServerMessage(connection, message);\n }\n catch (error) {\n console.error('[WS v2] Error parsing message:', error);\n }\n });\n // Handle errors\n ws.addEventListener('error', (event) => {\n console.error('[WS v2] WebSocket error:', event);\n for (const [, pending] of connection.pendingSubscriptions) {\n pending.reject(new Error('WebSocket error'));\n }\n connection.pendingSubscriptions.clear();\n });\n // Handle close\n ws.addEventListener('close', () => {\n connection.isConnected = false;\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n });\n return connection;\n}\nfunction handleServerMessage(connection, message) {\n var _a;\n switch (message.type) {\n case 'subscribed': {\n const subscription = connection.subscriptions.get(message.subscriptionId);\n if (subscription) {\n // A data update can race ahead of subscribed during reconnect.\n // If we already received data for this subscription, treat subscribed\n // as an ack only and avoid regressing to an older snapshot.\n if (subscription.lastData === undefined) {\n const cacheKey = getCacheKey(subscription.path, subscription.prompt, subscription.shape, subscription.limit, subscription.cursor);\n responseCache.set(cacheKey, { data: message.data, timestamp: Date.now() });\n subscription.lastData = message.data;\n notifyCallbacks(subscription, message.data);\n }\n }\n // Resolve pending subscription promise\n const pending = connection.pendingSubscriptions.get(message.subscriptionId);\n if (pending) {\n pending.resolve();\n connection.pendingSubscriptions.delete(message.subscriptionId);\n }\n break;\n }\n case 'unsubscribed': {\n // Resolve pending unsubscription promise\n const pending = connection.pendingUnsubscriptions.get(message.subscriptionId);\n if (pending) {\n pending.resolve();\n connection.pendingUnsubscriptions.delete(message.subscriptionId);\n }\n break;\n }\n case 'data': {\n const subscription = connection.subscriptions.get(message.subscriptionId);\n if (subscription) {\n // Update cache\n const cacheKey = getCacheKey(subscription.path, subscription.prompt, subscription.shape, subscription.limit, subscription.cursor);\n responseCache.set(cacheKey, { data: message.data, timestamp: Date.now() });\n // Store last data\n subscription.lastData = message.data;\n // Notify callbacks\n notifyCallbacks(subscription, message.data);\n }\n break;\n }\n case 'error': {\n console.error('[WS v2] Server error:', message.code, message.message);\n if (message.subscriptionId) {\n // Reject pending subscription if this is a subscription error\n const pending = connection.pendingSubscriptions.get(message.subscriptionId);\n if (pending) {\n pending.reject(new Error(`${message.code}: ${message.message}`));\n connection.pendingSubscriptions.delete(message.subscriptionId);\n }\n // Notify error callbacks for this subscription\n const subscription = connection.subscriptions.get(message.subscriptionId);\n if (subscription) {\n for (const callback of subscription.callbacks) {\n (_a = callback.onError) === null || _a === void 0 ? void 0 : _a.call(callback, new Error(`${message.code}: ${message.message}`));\n }\n }\n }\n break;\n }\n }\n}\nfunction notifyCallbacks(subscription, data) {\n var _a;\n // Snapshot the callbacks array so that unsubscriptions during\n // notification don't cause callbacks to be skipped.\n const callbacks = subscription.callbacks.slice();\n for (const callback of callbacks) {\n try {\n (_a = callback.onData) === null || _a === void 0 ? void 0 : _a.call(callback, data);\n }\n catch (error) {\n console.error('[WS v2] Error in subscription callback:', error);\n }\n }\n}\n// WebSocket readyState constants\nconst WS_READY_STATE_OPEN = 1;\nconst WS_READY_STATE_CLOSED = 3;\nfunction sendSubscribe(connection, subscription) {\n if (!connection.ws || connection.ws.readyState !== WS_READY_STATE_OPEN) {\n return;\n }\n const message = {\n type: 'subscribe',\n subscriptionId: subscription.subscriptionId,\n path: subscription.path,\n prompt: subscription.prompt ? safeBtoa(subscription.prompt) : undefined,\n includeSubPaths: subscription.includeSubPaths,\n shape: subscription.shape && Object.keys(subscription.shape).length > 0\n ? subscription.shape\n : undefined,\n limit: subscription.limit,\n cursor: subscription.cursor,\n };\n try {\n connection.ws.send(JSON.stringify(message));\n }\n catch (error) {\n console.error('[WS v2] Error sending subscribe message:', error);\n }\n}\nfunction sendUnsubscribe(connection, subscriptionId) {\n if (!connection.ws || connection.ws.readyState !== WS_READY_STATE_OPEN) {\n return;\n }\n const message = {\n type: 'unsubscribe',\n subscriptionId,\n };\n try {\n connection.ws.send(JSON.stringify(message));\n }\n catch (error) {\n console.error('[WS v2] Error sending unsubscribe message:', error);\n }\n}\n// ============ Public API ============\n/**\n * Subscribe to data at a path using WebSocket v2.\n * Returns an unsubscribe function.\n */\nasync function subscribeV2(path, subscriptionOptions) {\n const config = await getConfig();\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const cacheKey = getCacheKey(normalizedPath, subscriptionOptions.prompt, subscriptionOptions.shape, subscriptionOptions.limit, subscriptionOptions.cursor);\n // Deliver cached data immediately if available\n const cachedEntry = responseCache.get(cacheKey);\n if (cachedEntry && Date.now() - cachedEntry.timestamp < CACHE_TTL && subscriptionOptions.onData) {\n setTimeout(() => {\n var _a;\n (_a = subscriptionOptions.onData) === null || _a === void 0 ? void 0 : _a.call(subscriptionOptions, cachedEntry.data);\n }, 0);\n }\n // Use explicit appId override if provided, otherwise fall back to config\n const effectiveAppId = subscriptionOptions.appId || config.appId;\n // Get or create connection for this appId\n const connection = await getOrCreateConnection(effectiveAppId, config.isServer);\n // Check if we already have a subscription for this path+prompt+shape+limit+cursor\n const shapeKey = subscriptionOptions.shape ? JSON.stringify(subscriptionOptions.shape) : '';\n let existingSubscription;\n for (const sub of connection.subscriptions.values()) {\n const subShapeKey = sub.shape ? JSON.stringify(sub.shape) : '';\n if (sub.path === normalizedPath && sub.prompt === subscriptionOptions.prompt && subShapeKey === shapeKey && sub.limit === subscriptionOptions.limit && sub.cursor === subscriptionOptions.cursor) {\n existingSubscription = sub;\n break;\n }\n }\n if (existingSubscription) {\n // Add callback to existing subscription\n existingSubscription.callbacks.push(subscriptionOptions);\n // Deliver last known data immediately\n if (existingSubscription.lastData !== undefined && subscriptionOptions.onData) {\n setTimeout(() => {\n var _a;\n (_a = subscriptionOptions.onData) === null || _a === void 0 ? void 0 : _a.call(subscriptionOptions, existingSubscription.lastData);\n }, 0);\n }\n return async () => {\n await removeCallbackFromSubscription(connection, existingSubscription.subscriptionId, subscriptionOptions);\n };\n }\n // Create new subscription\n const subscriptionId = generateSubscriptionId();\n const subscription = {\n subscriptionId,\n path: normalizedPath,\n prompt: subscriptionOptions.prompt,\n shape: subscriptionOptions.shape,\n limit: subscriptionOptions.limit,\n cursor: subscriptionOptions.cursor,\n includeSubPaths: false,\n callbacks: [subscriptionOptions],\n lastData: undefined,\n };\n connection.subscriptions.set(subscriptionId, subscription);\n // Send subscribe message if connected\n if (connection.isConnected) {\n // Create a promise to wait for subscription confirmation\n const subscriptionPromise = new Promise((resolve, reject) => {\n connection.pendingSubscriptions.set(subscriptionId, { resolve, reject });\n // Timeout after 10 seconds\n setTimeout(() => {\n if (connection.pendingSubscriptions.has(subscriptionId)) {\n connection.pendingSubscriptions.delete(subscriptionId);\n reject(new Error('Subscription timeout'));\n }\n }, 10000);\n });\n sendSubscribe(connection, subscription);\n try {\n await subscriptionPromise;\n }\n catch (error) {\n console.warn('[WS v2] Subscription confirmation failed, keeping for reconnect recovery:', error);\n }\n }\n // Return unsubscribe function\n return async () => {\n await removeCallbackFromSubscription(connection, subscriptionId, subscriptionOptions);\n };\n}\nasync function removeCallbackFromSubscription(connection, subscriptionId, callback) {\n const subscription = connection.subscriptions.get(subscriptionId);\n if (!subscription) {\n return;\n }\n // Remove this callback\n subscription.callbacks = subscription.callbacks.filter(cb => cb !== callback);\n // If there are still callbacks, don't unsubscribe\n if (subscription.callbacks.length > 0) {\n return;\n }\n // No more callbacks, unsubscribe from server\n connection.subscriptions.delete(subscriptionId);\n if (connection.isConnected) {\n // Create a promise to wait for unsubscription confirmation\n const unsubscribePromise = new Promise((resolve, reject) => {\n connection.pendingUnsubscriptions.set(subscriptionId, { resolve, reject });\n // Timeout after 5 seconds\n setTimeout(() => {\n if (connection.pendingUnsubscriptions.has(subscriptionId)) {\n connection.pendingUnsubscriptions.delete(subscriptionId);\n resolve(); // Don't throw on unsubscribe timeout\n }\n }, 5000);\n });\n sendUnsubscribe(connection, subscriptionId);\n await unsubscribePromise;\n }\n // If no more subscriptions, close connection\n if (connection.subscriptions.size === 0 && connection.ws) {\n // Clear token refresh timer\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n connection.ws.close();\n connection.ws = null;\n connections.delete(connection.appId);\n }\n}\n/**\n * Close all v2 subscriptions.\n */\nasync function closeAllSubscriptionsV2() {\n const closePromises = [];\n for (const [appId, connection] of connections) {\n if (connection.tokenRefreshTimer) {\n clearInterval(connection.tokenRefreshTimer);\n connection.tokenRefreshTimer = null;\n }\n if (connection.ws) {\n const ws = connection.ws;\n connection.ws = null;\n connection.isConnected = false;\n closePromises.push(new Promise((resolve) => {\n ws.addEventListener('close', () => {\n resolve();\n });\n ws.close();\n }));\n }\n connections.delete(appId);\n }\n await Promise.all(closePromises);\n}\n/**\n * Clear the v2 cache.\n */\nfunction clearCacheV2(path) {\n if (path) {\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n // Clear all cache entries that start with this path\n for (const key of responseCache.keys()) {\n if (key.startsWith(normalizedPath)) {\n responseCache.delete(key);\n }\n }\n }\n else {\n responseCache.clear();\n }\n}\n/**\n * Get cached data for a path (v2).\n */\nfunction getCachedDataV2(path, prompt) {\n const cacheKey = getCacheKey(path, prompt);\n const cachedEntry = responseCache.get(cacheKey);\n if (cachedEntry && Date.now() - cachedEntry.timestamp < CACHE_TTL) {\n return cachedEntry.data;\n }\n return null;\n}\n/**\n * Reconnect all v2 WebSocket connections with fresh authentication.\n * Call this when the user's auth state changes (login/logout).\n *\n * This will:\n * 1. Close existing connections\n * 2. Re-establish with new auth token\n * 3. Re-subscribe to all active paths\n *\n * Note: Existing subscriptions will receive new initial data after reconnection.\n */\nasync function reconnectWithNewAuthV2() {\n if (reconnectInProgress) {\n return reconnectInProgress;\n }\n reconnectInProgress = doReconnectWithNewAuth();\n try {\n await reconnectInProgress;\n }\n finally {\n reconnectInProgress = null;\n }\n}\nasync function doReconnectWithNewAuth() {\n for (const [appId, connection] of connections) {\n if (!connection.ws) {\n continue;\n }\n for (const [, pending] of connection.pendingSubscriptions) {\n pending.reject(new Error('Connection reconnecting due to auth change'));\n }\n connection.pendingSubscriptions.clear();\n for (const [, pending] of connection.pendingUnsubscriptions) {\n pending.resolve();\n }\n connection.pendingUnsubscriptions.clear();\n // Reset auth failure counter — this is a proactive reconnect (login, token refresh)\n connection.consecutiveAuthFailures = 0;\n // Close the WebSocket (this triggers reconnection in ReconnectingWebSocket)\n // We use reconnect() which will close and re-open with fresh URL (including new token)\n try {\n connection.ws.reconnect();\n }\n catch (error) {\n console.error('[WS v2] Error reconnecting:', error);\n }\n }\n}\n\n/**\n * WebSocket Subscription Module\n *\n * This module provides real-time data subscriptions using WebSocket v2 protocol\n * with multiplexed connections (one connection per client, multiple subscriptions).\n *\n * The external API remains unchanged - just use subscribe(path, options) as before.\n */\n/**\n * Subscribe to real-time updates for a path.\n *\n * @param path - The path to subscribe to (e.g., 'users/123' or 'posts')\n * @param subscriptionOptions - Options including onData and onError callbacks\n * @returns A function to unsubscribe\n *\n * @example\n * ```typescript\n * const unsubscribe = await subscribe('users/123', {\n * onData: (data) => console.log('User updated:', data),\n * onError: (error) => console.error('Subscription error:', error),\n * });\n *\n * // Later, to unsubscribe:\n * await unsubscribe();\n * ```\n */\nasync function subscribe(path, subscriptionOptions) {\n return subscribeV2(path, subscriptionOptions);\n}\n/**\n * Close all active subscriptions.\n * Call this when cleaning up (e.g., on logout or component unmount).\n */\nasync function closeAllSubscriptions() {\n return closeAllSubscriptionsV2();\n}\n/**\n * Clear the subscription cache.\n *\n * @param path - Optional path to clear. If not provided, clears all cached data.\n */\nfunction clearCache(path) {\n clearCacheV2(path);\n}\n/**\n * Get cached data for a path without making a network request.\n *\n * @param path - The path to get cached data for\n * @param prompt - Optional prompt that was used for the subscription\n * @returns The cached data, or null if not cached or expired\n */\nfunction getCachedData(path, prompt) {\n return getCachedDataV2(path, prompt);\n}\n/**\n * Reconnect all WebSocket connections with fresh authentication.\n * Call this when the user's auth state changes (login/logout).\n *\n * This will:\n * 1. Close existing connections\n * 2. Re-establish with new auth token\n * 3. Re-subscribe to all active paths\n *\n * Existing subscriptions will receive new initial data after reconnection.\n */\nasync function reconnectWithNewAuth() {\n return reconnectWithNewAuthV2();\n}\n\nlet _config = null;\nclass ReactNativeSessionManager {\n /**\n * Must be called once before any other method.\n *\n * ```ts\n * import { ReactNativeSessionManager } from '@pooflabs/core';\n * import { MMKV } from 'react-native-mmkv';\n * import { decode } from 'base-64';\n *\n * const mmkv = new MMKV();\n * ReactNativeSessionManager.configure({\n * storage: {\n * getItem: (k) => mmkv.getString(k) ?? null,\n * setItem: (k, v) => mmkv.set(k, v),\n * removeItem: (k) => mmkv.delete(k),\n * },\n * atob: decode,\n * });\n * ```\n */\n static configure(cfg) {\n _config = cfg;\n }\n static getStorage() {\n if (!_config) {\n throw new Error(\"ReactNativeSessionManager.configure() must be called before using session methods.\");\n }\n return _config.storage;\n }\n static decodeBase64(input) {\n if (!_config) {\n throw new Error(\"ReactNativeSessionManager.configure() must be called before using session methods.\");\n }\n return _config.atob(input);\n }\n /**\n * Decode a base64url-encoded string (used by JWT payloads).\n * Normalises base64url → standard base64 before decoding.\n */\n static decodeBase64Url(input) {\n let b64 = input.replace(/-/g, '+').replace(/_/g, '/');\n const pad = b64.length % 4;\n if (pad === 2)\n b64 += '==';\n else if (pad === 3)\n b64 += '=';\n return this.decodeBase64(b64);\n }\n /* ------------------------------------------------------------------ */\n /* STORE */\n /* ------------------------------------------------------------------ */\n static async storeSession(address, accessToken, idToken, refreshToken) {\n const config = await getConfig();\n const currentAppId = config.appId;\n this.getStorage().setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify({\n address,\n accessToken,\n idToken,\n refreshToken,\n appId: currentAppId,\n }));\n }\n /* ------------------------------------------------------------------ */\n /* GET */\n /* ------------------------------------------------------------------ */\n static async getSession() {\n const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!session)\n return null;\n const sessionObj = JSON.parse(session);\n /* ---------- validate app-id ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return null;\n }\n /* ---------- check JWT expiration ---------- */\n try {\n const { accessToken } = sessionObj;\n const { exp } = JSON.parse(this.decodeBase64Url(accessToken.split(\".\")[1]));\n if (Date.now() > exp * 1000) {\n const { refreshToken } = sessionObj;\n if (!refreshToken)\n return null;\n const refreshed = await refreshSession(refreshToken);\n if ((refreshed === null || refreshed === void 0 ? void 0 : refreshed.idToken) && (refreshed === null || refreshed === void 0 ? void 0 : refreshed.accessToken)) {\n await this.updateIdTokenAndAccessToken(refreshed.idToken, refreshed.accessToken);\n const newSession = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!newSession)\n return null;\n const newObj = JSON.parse(newSession);\n return { address: newObj.address, session: newObj };\n }\n // Refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n }\n catch (err) {\n // Token decode or refresh failed — clear stale session to prevent retry loops\n this.clearSession();\n return null;\n }\n return { address: sessionObj.address, session: sessionObj };\n }\n /* ------------------------------------------------------------------ */\n /* CLEAR */\n /* ------------------------------------------------------------------ */\n static clearSession() {\n this.getStorage().removeItem(this.TAROBASE_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* IS-AUTH */\n /* ------------------------------------------------------------------ */\n static isAuthenticated() {\n return !!this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n }\n /* ------------------------------------------------------------------ */\n /* TOKEN HELPERS */\n /* ------------------------------------------------------------------ */\n static getIdToken() {\n try {\n const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).idToken : null;\n }\n catch (_a) {\n return null;\n }\n }\n static getRefreshToken() {\n try {\n const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n return session ? JSON.parse(session).refreshToken : null;\n }\n catch (_a) {\n return null;\n }\n }\n /* ------------------------------------------------------------------ */\n /* UPDATE TOKENS */\n /* ------------------------------------------------------------------ */\n static async updateIdTokenAndAccessToken(idToken, accessToken) {\n var _a;\n const session = this.getStorage().getItem(this.TAROBASE_SESSION_STORAGE_KEY);\n if (!session)\n return;\n const sessionObj = JSON.parse(session);\n /* ---------- app-id guard ---------- */\n const config = await getConfig();\n if (sessionObj.appId && sessionObj.appId !== config.appId) {\n this.clearSession();\n return;\n }\n sessionObj.idToken = idToken;\n sessionObj.accessToken = accessToken;\n (_a = sessionObj.appId) !== null && _a !== void 0 ? _a : (sessionObj.appId = config.appId);\n this.getStorage().setItem(this.TAROBASE_SESSION_STORAGE_KEY, JSON.stringify(sessionObj));\n }\n}\nReactNativeSessionManager.TAROBASE_SESSION_STORAGE_KEY = \"tarobase_session_storage\";\n\nexport { InsufficientBalanceError, ReactNativeSessionManager, ServerSessionManager, WebSessionManager, aggregate, buildSetDocumentsTransaction, clearCache, closeAllSubscriptions, convertRemainingAccounts, count, createSessionWithPrivy, createSessionWithSignature, genAuthNonce, genSolanaMessage, get, getCachedData, getConfig, getFiles, getIdToken, getMany, init, reconnectWithNewAuth, refreshSession, runExpression, runExpressionMany, runQuery, runQueryMany, set, setFile, setMany, signAndSubmitTransaction, signMessage, signSessionCreateMessage, signTransaction, subscribe };\n//# sourceMappingURL=index.mjs.map\n","/**\n * Platform abstraction layer for React Native compatibility.\n *\n * This module provides interfaces and default (web) implementations for\n * browser-specific APIs that are unavailable in React Native:\n * - Storage (localStorage / sessionStorage)\n * - TextEncoder\n * - Base-64 (btoa / atob)\n * - SubtleCrypto (crypto.subtle.digest)\n * - DOM helpers (document.*, requestAnimationFrame)\n * - Location (window.location.origin)\n * - UserAgent (navigator.userAgent)\n *\n * React Native consumers call `setPlatform(adapter)` once at startup to\n * supply their own implementations (e.g. AsyncStorage-backed storage,\n * expo-crypto, react-native-get-random-values, etc.).\n *\n * Web consumers don't need to do anything — the defaults use the browser APIs.\n */\n/** In-memory fallback when neither browser storage nor a custom adapter exist. */\nclass MemoryStorage {\n constructor() {\n this.store = new Map();\n }\n getItem(key) { var _a; return (_a = this.store.get(key)) !== null && _a !== void 0 ? _a : null; }\n setItem(key, value) { this.store.set(key, value); }\n removeItem(key) { this.store.delete(key); }\n}\n// ---------------------------------------------------------------------------\n// Default web implementation\n// ---------------------------------------------------------------------------\nfunction createWebPlatform() {\n const hasWindow = typeof window !== 'undefined';\n const hasDoc = typeof document !== 'undefined';\n return {\n storage: hasWindow && typeof localStorage !== 'undefined'\n ? localStorage\n : new MemoryStorage(),\n sessionStorage: hasWindow && typeof sessionStorage !== 'undefined'\n ? sessionStorage\n : new MemoryStorage(),\n textEncode(input) {\n return new TextEncoder().encode(input);\n },\n atob(input) {\n if (hasWindow)\n return window.atob(input);\n // Node / SSR fallback\n return Buffer.from(input, 'base64').toString('binary');\n },\n btoa(input) {\n if (hasWindow)\n return window.btoa(input);\n return Buffer.from(input, 'binary').toString('base64');\n },\n async sha256(data) {\n if (typeof crypto !== 'undefined' && crypto.subtle) {\n return crypto.subtle.digest('SHA-256', data);\n }\n // Node / SSR fallback\n const { createHash } = await import('crypto');\n const hash = createHash('sha256').update(data).digest();\n return hash.buffer.slice(hash.byteOffset, hash.byteOffset + hash.byteLength);\n },\n getUserAgent() {\n if (hasWindow && typeof navigator !== 'undefined')\n return navigator.userAgent;\n return '';\n },\n getLocationOrigin() {\n if (hasWindow && window.location)\n return window.location.origin;\n return undefined;\n },\n hasDOM: hasDoc,\n };\n}\n// ---------------------------------------------------------------------------\n// Singleton & public API\n// ---------------------------------------------------------------------------\nlet _platform = createWebPlatform();\nlet _platformConfigured = false;\n/**\n * Override the platform adapter (call once at app startup in React Native).\n *\n * Must be called **before** `init()`. Can only be called once — subsequent\n * calls throw to prevent accidental mid-session storage swaps.\n *\n * ```ts\n * import { setPlatform } from '@pooflabs/web';\n * import AsyncStorage from '@react-native-async-storage/async-storage';\n *\n * // Create a synchronous wrapper around AsyncStorage for the adapter\n * // (see docs for a full example).\n * setPlatform({ storage: myStorage, ... });\n * ```\n */\nexport function setPlatform(adapter) {\n if (_platformConfigured) {\n throw new Error('setPlatform() has already been called. It can only be invoked once at startup.');\n }\n _platformConfigured = true;\n _platform = Object.assign(Object.assign({}, _platform), adapter);\n}\n/** Get the current platform adapter. */\nexport function getPlatform() {\n return _platform;\n}\n// ---------------------------------------------------------------------------\n// Mobile / Android detection helpers\n// ---------------------------------------------------------------------------\n/**\n * Detect mobile device even when Chrome \"Request Desktop Site\" is active.\n *\n * Desktop mode on Android strips \"Android\" and \"Mobile\" from the UA, leaving\n * something like \"Linux x86_64 …\". The fallback detects this by looking for\n * touch capability + small viewport + a UA that doesn't belong to a known\n * desktop OS (ChromeOS, Windows, macOS).\n */\nexport function detectMobile() {\n const ua = _platform.getUserAgent();\n if (/Android|iPhone|iPad|iPod/i.test(ua))\n return true;\n if (typeof navigator !== 'undefined' && typeof window !== 'undefined') {\n const hasTouch = navigator.maxTouchPoints > 0;\n // Macs don't have touch screens, so \"Macintosh\" + touch = iOS desktop mode\n // (also catches iPadOS 13+ which always reports as Macintosh)\n if (/Macintosh/i.test(ua) && hasTouch)\n return true;\n // Android desktop mode: Linux UA + touch + small viewport, excluding\n // known desktop OSes (ChromeOS, Windows, macOS)\n const isSmallViewport = window.innerWidth <= 1024;\n const isDesktopOS = /CrOS|Windows|Macintosh/i.test(ua);\n if (hasTouch && isSmallViewport && !isDesktopOS)\n return true;\n }\n return false;\n}\n/**\n * Detect Android, including desktop-mode Chrome and Seeker/Saga in-app browsers.\n */\nexport function detectAndroid() {\n const ua = _platform.getUserAgent();\n if (/Android/i.test(ua))\n return true;\n if (/SolanaWallet|SeedVault/i.test(ua))\n return true;\n // Desktop-mode fallback: detected as mobile + Linux UA + not another OS\n if (detectMobile() && /Linux/i.test(ua) && !/CrOS|Macintosh|iPhone|iPad/i.test(ua))\n return true;\n return false;\n}\n/**\n * Reset the platform to web defaults and clear the configured flag.\n * **For testing only** — not exported from the public API.\n * @internal\n */\nexport function _resetPlatformForTesting() {\n _platform = createWebPlatform();\n _platformConfigured = false;\n}\n","import { getPlatform } from '../../platform';\n// Default test wallet address (Solana devnet address)\nexport const DEFAULT_TEST_ADDRESS = 'HKbZbRR7jWWR5VRN8KFjvTCHEzJQgameYxKQxh2gPoof';\n// Session storage key to track if user explicitly called login()\nconst EXPLICIT_LOGIN_KEY = 'mock-auth-explicit-login';\n/**\n * MockAuthProvider bypasses real wallet authentication for testing purposes.\n * Uses session storage to simulate logged-in user, with fallback to default test address.\n *\n * This is enabled by passing mockAuth: true to init()\n */\nexport class MockAuthProvider {\n /**\n * Mock login - reads user from session storage or uses default test address\n */\n async login() {\n let address = getPlatform().sessionStorage.getItem('test-user-address');\n if (!address) {\n address = DEFAULT_TEST_ADDRESS;\n // Store default address in session storage so it gets used in API calls\n getPlatform().sessionStorage.setItem('test-user-address', DEFAULT_TEST_ADDRESS);\n console.log('[MockAuth] Using default test address:', address);\n }\n // Mark that user explicitly called login() - allows restoreSession on refresh\n getPlatform().sessionStorage.setItem(EXPLICIT_LOGIN_KEY, 'true');\n console.log('[MockAuth] Mock login successful:', address);\n return {\n address,\n provider: this\n };\n }\n /**\n * Mock transaction - returns fake signature without actual blockchain interaction\n * The real transaction will be handled by the backend using test headers\n */\n async runTransaction(evmTransactionData, solTransactionData, options) {\n const address = getPlatform().sessionStorage.getItem('test-user-address') || DEFAULT_TEST_ADDRESS;\n // Generate a fake transaction signature\n const fakeSignature = `mock_tx_${Math.random().toString(36).substring(2, 15)}`;\n console.log('[MockAuth] Mock transaction executed:', {\n address,\n signature: fakeSignature,\n evmTx: evmTransactionData,\n solTx: solTransactionData\n });\n return {\n transactionSignature: fakeSignature,\n signedTransaction: fakeSignature,\n blockNumber: 0,\n gasUsed: '0'\n };\n }\n /**\n * Mock message signing\n */\n async signMessage(message) {\n const address = getPlatform().sessionStorage.getItem('test-user-address') || DEFAULT_TEST_ADDRESS;\n // Generate a fake signature\n const fakeSignature = `mock_sig_${Math.random().toString(36).substring(2, 15)}`;\n console.log('[MockAuth] Mock message signed:', {\n address,\n message,\n signature: fakeSignature\n });\n return fakeSignature;\n }\n async signMessageMock(message) {\n const address = getPlatform().sessionStorage.getItem('test-user-address') || DEFAULT_TEST_ADDRESS;\n // Generate a fake signature\n const fakeSignature = `mock_sig_${Math.random().toString(36).substring(2, 15)}`;\n console.log('[MockAuth] Mock message signed:', {\n address,\n message,\n signature: fakeSignature\n });\n return fakeSignature;\n }\n /**\n * Mock transaction signing - returns the transaction as-is (no actual signing)\n */\n async signTransaction(transaction) {\n console.log('[MockAuth] Mock transaction signing (no-op)');\n return transaction;\n }\n /**\n * Sign and submit transaction - not supported in mock environment.\n * See the real providers (PhantomWalletProvider, PrivyWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n throw new Error('signAndSubmitTransaction is not supported in the mock environment');\n }\n /**\n * Restore session - only restores if user previously called login() explicitly.\n * This prevents auto-login on first page load, but allows session persistence after login.\n */\n async restoreSession() {\n const explicitlyLoggedIn = getPlatform().sessionStorage.getItem(EXPLICIT_LOGIN_KEY);\n if (!explicitlyLoggedIn) {\n console.log('[MockAuth] No explicit login found. Call login() to authenticate.');\n return null;\n }\n const address = getPlatform().sessionStorage.getItem('test-user-address');\n if (!address) {\n console.log('[MockAuth] No previous session found');\n return null;\n }\n console.log('[MockAuth] Session restored:', address);\n return {\n address,\n provider: this\n };\n }\n /**\n * Mock logout - clears test user from session storage\n */\n async logout() {\n getPlatform().sessionStorage.removeItem('test-user-address');\n getPlatform().sessionStorage.removeItem('test-user-id');\n getPlatform().sessionStorage.removeItem(EXPLICIT_LOGIN_KEY);\n console.log('[MockAuth] Mock logout successful');\n }\n /**\n * Get native wallet methods (not needed for mock auth)\n */\n async getNativeMethods() {\n return {\n // Return empty object - no native methods needed for mock auth\n };\n }\n}\n","import { getPlatform } from \"../../platform\";\n/**\n * OffchainAuthProvider wraps a real auth provider (e.g., Privy, Phantom) for the poofnet environment.\n *\n * For signMessageMock, this shows a custom confirmation modal and generates a mock signature.\n * This is used for offchain transaction signing. For real wallet signing, use signMessage\n * which delegates to the wrapped provider.\n */\nexport class OffchainAuthProvider {\n constructor(wrappedProvider, config = {}) {\n this.modalContainer = null;\n this.wrappedProvider = wrappedProvider;\n this.config = config;\n }\n // ============ Delegated Methods ============\n async login() {\n const user = await this.wrappedProvider.login();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n async logout() {\n await this.wrappedProvider.logout();\n }\n async restoreSession() {\n const user = await this.wrappedProvider.restoreSession();\n if (user) {\n return Object.assign(Object.assign({}, user), { provider: this });\n }\n return null;\n }\n async runTransaction(evmTransactionData, solTransactionData, options) {\n return this.wrappedProvider.runTransaction(evmTransactionData, solTransactionData, options);\n }\n async signTransaction(tx) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n /**\n * Sign and submit transaction - not supported in poofnet environment.\n * See the real providers (PhantomWalletProvider, PrivyWalletProvider, SolanaKeypairProvider)\n * for the full implementation with blockhash handling and feePayer support.\n */\n async signAndSubmitTransaction(_transaction, _feePayer) {\n if (getPlatform().hasDOM) {\n await this.showUnsupportedTransactionModal();\n }\n throw new Error('Poofnet does not support real Solana transactions. Deploy your project to mainnet to use this feature.');\n }\n async getNativeMethods() {\n return this.wrappedProvider.getNativeMethods();\n }\n // ============ signMessage delegates to wrapped provider ============\n async signMessage(message) {\n // Delegate to wrapped provider for real wallet signing\n return this.wrappedProvider.signMessage(message);\n }\n // ============ Mock signMessage with Custom Modal for Offchain Transactions ============\n async signMessageMock(message) {\n var _a, _b, _c, _d, _e, _f;\n // Callback: signing started\n (_b = (_a = this.config).onSigningStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n try {\n // On RN (no DOM), auto-confirm — there's no modal to show.\n // On web, show the confirmation modal.\n if (getPlatform().hasDOM) {\n const confirmed = await this.showTransactionModal(message);\n if (!confirmed) {\n throw new Error(\"Transaction rejected by user\");\n }\n }\n // Generate mock signature (hash of message)\n const signature = await this.generateMockSignature(message);\n // Callback: signing complete\n (_d = (_c = this.config).onSigningComplete) === null || _d === void 0 ? void 0 : _d.call(_c, signature);\n return signature;\n }\n catch (error) {\n // Callback: signing error\n (_f = (_e = this.config).onSigningError) === null || _f === void 0 ? void 0 : _f.call(_e, error);\n throw error;\n }\n }\n // ============ Modal Implementation ============\n async showUnsupportedTransactionModal() {\n return new Promise((resolve) => {\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-unsupported-modal\";\n this.modalContainer.innerHTML = this.getUnsupportedModalHTML();\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle cancel button\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve();\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve();\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve();\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n getUnsupportedModalHTML() {\n return `\n <div class=\"poofnet-modal-overlay\">\n <div class=\"poofnet-modal-content\">\n <button id=\"poofnet-close-btn\" class=\"poofnet-close-btn\" aria-label=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L13 13M1 13L13 1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n <div class=\"poofnet-modal-header\">\n <div class=\"poofnet-modal-icon\">⚠️</div>\n <h2 class=\"poofnet-modal-title\">Transaction Not Supported</h2>\n <p class=\"poofnet-modal-subtitle\">Poofnet Simulated Blockchain</p>\n </div>\n\n <div class=\"poofnet-modal-body\">\n <div class=\"poofnet-info-box\" style=\"background: #fef3c7;\">\n <span class=\"poofnet-info-icon\">ℹ️</span>\n <span class=\"poofnet-info-text\" style=\"color: #92400e;\">\n Poofnet is a simulated blockchain and does not support real Solana transactions.\n Deploy your project to mainnet to test real transactions.\n </span>\n </div>\n </div>\n\n <div class=\"poofnet-modal-footer\">\n <button id=\"poofnet-cancel-btn\" class=\"poofnet-btn poofnet-btn-cancel\" style=\"flex: 1;\">Close</button>\n </div>\n </div>\n </div>\n `;\n }\n async showTransactionModal(message) {\n return new Promise((resolve) => {\n // Parse the transaction message for display\n let parsed = {};\n try {\n parsed = JSON.parse(message);\n }\n catch (_a) {\n // If not JSON, just show raw message\n }\n // Create modal container\n this.modalContainer = document.createElement(\"div\");\n this.modalContainer.id = \"poofnet-tx-modal\";\n this.modalContainer.innerHTML = this.getModalHTML(parsed, message);\n document.body.appendChild(this.modalContainer);\n // Add styles\n const style = document.createElement(\"style\");\n style.textContent = this.getModalStyles();\n this.modalContainer.appendChild(style);\n // Mark all other body children as inert to disable focus traps from other modals\n document.body.childNodes.forEach((child) => {\n if (child !== this.modalContainer &&\n child instanceof HTMLElement) {\n child.setAttribute(\"inert\", \"\");\n }\n });\n // Animate in\n requestAnimationFrame(() => {\n var _a, _b;\n const overlay = (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.querySelector(\".poofnet-modal-overlay\");\n const content = (_b = this.modalContainer) === null || _b === void 0 ? void 0 : _b.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"1\";\n if (content) {\n content.style.opacity = \"1\";\n content.style.transform = \"translateY(0)\";\n }\n });\n // Handle confirm\n const confirmBtn = this.modalContainer.querySelector(\"#poofnet-confirm-btn\");\n confirmBtn === null || confirmBtn === void 0 ? void 0 : confirmBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(true);\n });\n // Handle cancel\n const cancelBtn = this.modalContainer.querySelector(\"#poofnet-cancel-btn\");\n cancelBtn === null || cancelBtn === void 0 ? void 0 : cancelBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle close button\n const closeBtn = this.modalContainer.querySelector(\"#poofnet-close-btn\");\n closeBtn === null || closeBtn === void 0 ? void 0 : closeBtn.addEventListener(\"click\", () => {\n this.closeModal();\n resolve(false);\n });\n // Handle overlay click\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n overlay === null || overlay === void 0 ? void 0 : overlay.addEventListener(\"click\", (e) => {\n if (e.target === overlay) {\n this.closeModal();\n resolve(false);\n }\n });\n // Handle escape key\n const escHandler = (e) => {\n if (e.key === \"Escape\") {\n document.removeEventListener(\"keydown\", escHandler);\n this.closeModal();\n resolve(false);\n }\n };\n document.addEventListener(\"keydown\", escHandler);\n });\n }\n closeModal() {\n if (this.modalContainer) {\n // Remove inert attribute from all elements\n document.body.querySelectorAll(\"[inert]\").forEach((el) => {\n el.removeAttribute(\"inert\");\n });\n const overlay = this.modalContainer.querySelector(\".poofnet-modal-overlay\");\n const content = this.modalContainer.querySelector(\".poofnet-modal-content\");\n if (overlay)\n overlay.style.opacity = \"0\";\n if (content) {\n content.style.opacity = \"0\";\n content.style.transform = \"translateY(20px)\";\n }\n setTimeout(() => {\n var _a;\n (_a = this.modalContainer) === null || _a === void 0 ? void 0 : _a.remove();\n this.modalContainer = null;\n }, 200);\n }\n }\n formatPath(path) {\n const parts = path.split(\"/\").filter(Boolean);\n if (parts.length >= 2) {\n return {\n collection: parts[0],\n documentId: parts[parts.length - 1],\n };\n }\n return { collection: parts[0] || path, documentId: null };\n }\n formatFieldValue(value) {\n if (value === null || value === undefined)\n return \"null\";\n if (typeof value === \"string\") {\n return value.length > 30\n ? `\"${value.slice(0, 30)}...\"`\n : `\"${value}\"`;\n }\n if (typeof value === \"number\" || typeof value === \"boolean\")\n return String(value);\n if (Array.isArray(value))\n return `[${value.length} items]`;\n if (typeof value === \"object\")\n return `{${Object.keys(value).length} fields}`;\n return String(value);\n }\n getActionDescription(type, collection, isNew) {\n if (type === \"delete\")\n return `Delete from ${collection}`;\n return isNew ? `Create in ${collection}` : `Update ${collection}`;\n }\n getModalHTML(parsed, rawMessage) {\n const instructions = parsed.instructions || [];\n // Group instructions by type for summary\n const sets = instructions.filter((i) => i.type === \"set\");\n const deletes = instructions.filter((i) => i.type === \"delete\");\n const instructionsList = instructions\n .map((inst) => {\n const { collection, documentId } = this.formatPath(inst.path);\n const isDelete = inst.type === \"delete\";\n const icon = isDelete ? \"🗑️\" : \"✏️\";\n const actionClass = isDelete\n ? \"poofnet-action-delete\"\n : \"poofnet-action-set\";\n // Format data fields for display\n let fieldsHtml = \"\";\n if (inst.data && !isDelete) {\n const fields = Object.entries(inst.data)\n .filter(([key]) => !key.startsWith(\"_\")) // Hide internal fields\n .slice(0, 4);\n if (fields.length > 0) {\n fieldsHtml = `\n <div class=\"poofnet-fields\">\n ${fields\n .map(([key, value]) => `\n <div class=\"poofnet-field\">\n <span class=\"poofnet-field-key\">${key}:</span>\n <span class=\"poofnet-field-value\">${this.formatFieldValue(value)}</span>\n </div>\n `)\n .join(\"\")}\n ${Object.keys(inst.data).filter((k) => !k.startsWith(\"_\"))\n .length > 4\n ? `<div class=\"poofnet-field-more\">+${Object.keys(inst.data).filter((k) => !k.startsWith(\"_\")).length - 4} more fields</div>`\n : \"\"}\n </div>\n `;\n }\n }\n return `\n <div class=\"poofnet-instruction ${actionClass}\">\n <div class=\"poofnet-instruction-header\">\n <span class=\"poofnet-instruction-icon\">${icon}</span>\n <span class=\"poofnet-instruction-action\">${isDelete ? \"Delete\" : \"Save\"}</span>\n <span class=\"poofnet-instruction-collection\">${collection}</span>\n </div>\n ${documentId\n ? `<div class=\"poofnet-instruction-id\">ID: ${documentId}</div>`\n : \"\"}\n ${fieldsHtml}\n </div>\n `;\n })\n .join(\"\");\n // Create summary text\n let summaryText = \"\";\n if (sets.length > 0 && deletes.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}, ${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n else if (sets.length > 0) {\n summaryText = `${sets.length} update${sets.length > 1 ? \"s\" : \"\"}`;\n }\n else if (deletes.length > 0) {\n summaryText = `${deletes.length} delete${deletes.length > 1 ? \"s\" : \"\"}`;\n }\n return `\n <div class=\"poofnet-modal-overlay\">\n <div class=\"poofnet-modal-content\">\n <button id=\"poofnet-close-btn\" class=\"poofnet-close-btn\" aria-label=\"Close\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L13 13M1 13L13 1\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n <div class=\"poofnet-modal-header\">\n <div class=\"poofnet-modal-icon\">🔐</div>\n <h2 class=\"poofnet-modal-title\">Confirm Transaction</h2>\n <p class=\"poofnet-modal-subtitle\">Poofnet Simulated Blockchain</p>\n </div>\n\n <div class=\"poofnet-modal-body\">\n ${instructions.length > 0\n ? `\n ${summaryText\n ? `<div class=\"poofnet-summary\">${summaryText}</div>`\n : \"\"}\n <div class=\"poofnet-instructions-list\">\n ${instructionsList}\n </div>\n `\n : `\n <div class=\"poofnet-section\">\n <h3 class=\"poofnet-section-title\">Message</h3>\n <pre class=\"poofnet-raw-message\">${rawMessage.slice(0, 200)}${rawMessage.length > 200 ? \"...\" : \"\"}</pre>\n </div>\n `}\n\n <div class=\"poofnet-info-box\">\n <span class=\"poofnet-info-icon\">ℹ️</span>\n <span class=\"poofnet-info-text\">This is a simulated transaction. No real fees will be charged.</span>\n </div>\n </div>\n\n <div class=\"poofnet-modal-footer\">\n <button id=\"poofnet-cancel-btn\" class=\"poofnet-btn poofnet-btn-cancel\">Cancel</button>\n <button id=\"poofnet-confirm-btn\" class=\"poofnet-btn poofnet-btn-confirm\">Confirm</button>\n </div>\n </div>\n </div>\n `;\n }\n getModalStyles() {\n return `\n /* Ensure inert elements remain visible while being non-interactive */\n [inert] {\n visibility: visible !important;\n opacity: 1 !important;\n display: unset !important;\n }\n\n .poofnet-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 999999;\n opacity: 0;\n transition: opacity 0.2s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .poofnet-modal-content {\n background: white;\n border-radius: 16px;\n width: 90%;\n max-width: 420px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n opacity: 0;\n transform: translateY(20px);\n transition: all 0.2s ease;\n max-height: 90vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n }\n\n .poofnet-close-btn {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 28px;\n height: 28px;\n border: none;\n background: #f3f4f6;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.15s ease;\n z-index: 1;\n }\n\n .poofnet-close-btn:hover {\n background: #e5e7eb;\n color: #374151;\n }\n\n .poofnet-modal-header {\n padding: 24px 24px 16px;\n text-align: center;\n border-bottom: 1px solid #f0f0f0;\n flex-shrink: 0;\n }\n\n .poofnet-modal-icon {\n font-size: 40px;\n margin-bottom: 8px;\n }\n\n .poofnet-modal-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1a1a1a;\n }\n\n .poofnet-modal-subtitle {\n margin: 4px 0 0;\n font-size: 13px;\n color: #8b5cf6;\n font-weight: 500;\n }\n\n .poofnet-modal-body {\n padding: 16px 20px;\n overflow-y: auto;\n flex: 1;\n }\n\n .poofnet-summary {\n font-size: 13px;\n color: #6b7280;\n margin-bottom: 12px;\n text-align: center;\n }\n\n .poofnet-section {\n margin-bottom: 16px;\n }\n\n .poofnet-section-title {\n font-size: 12px;\n font-weight: 600;\n color: #666;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin: 0 0 8px;\n }\n\n .poofnet-instructions-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .poofnet-instruction {\n background: #f9fafb;\n border-radius: 10px;\n padding: 12px;\n border-left: 3px solid #8b5cf6;\n }\n\n .poofnet-instruction.poofnet-action-delete {\n border-left-color: #ef4444;\n }\n\n .poofnet-instruction-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .poofnet-instruction-icon {\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .poofnet-instruction-action {\n font-size: 13px;\n font-weight: 600;\n color: #8b5cf6;\n }\n\n .poofnet-action-delete .poofnet-instruction-action {\n color: #ef4444;\n }\n\n .poofnet-instruction-collection {\n font-size: 13px;\n font-weight: 500;\n color: #374151;\n }\n\n .poofnet-instruction-id {\n font-size: 11px;\n color: #9ca3af;\n font-family: monospace;\n margin-bottom: 8px;\n word-break: break-all;\n }\n\n .poofnet-fields {\n background: white;\n border-radius: 6px;\n padding: 8px 10px;\n margin-top: 8px;\n }\n\n .poofnet-field {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n border-bottom: 1px solid #f3f4f6;\n }\n\n .poofnet-field:last-child {\n border-bottom: none;\n }\n\n .poofnet-field-key {\n color: #6b7280;\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .poofnet-field-value {\n color: #374151;\n word-break: break-all;\n }\n\n .poofnet-field-more {\n font-size: 11px;\n color: #9ca3af;\n padding-top: 4px;\n font-style: italic;\n }\n\n .poofnet-raw-message {\n background: #f9fafb;\n border-radius: 8px;\n padding: 12px;\n font-size: 11px;\n font-family: monospace;\n color: #4b5563;\n white-space: pre-wrap;\n word-break: break-all;\n margin: 0;\n max-height: 120px;\n overflow-y: auto;\n }\n\n .poofnet-info-box {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #faf5ff;\n border-radius: 8px;\n padding: 10px 12px;\n margin-top: 12px;\n }\n\n .poofnet-info-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .poofnet-info-text {\n font-size: 11px;\n color: #7c3aed;\n line-height: 1.4;\n }\n\n .poofnet-modal-footer {\n padding: 16px 20px 20px;\n display: flex;\n gap: 12px;\n flex-shrink: 0;\n border-top: 1px solid #f0f0f0;\n }\n\n .poofnet-btn {\n flex: 1;\n padding: 12px 16px;\n border-radius: 10px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n border: none;\n }\n\n .poofnet-btn-cancel {\n background: #f3f4f6;\n color: #4b5563;\n }\n\n .poofnet-btn-cancel:hover {\n background: #e5e7eb;\n }\n\n .poofnet-btn-confirm {\n background: #8b5cf6;\n color: white;\n }\n\n .poofnet-btn-confirm:hover {\n background: #7c3aed;\n }\n `;\n }\n async generateMockSignature(message) {\n // Generate a deterministic signature using SHA-256 hash of message\n // This can be verified on the backend by hashing the same message\n const platform = getPlatform();\n const data = platform.textEncode(message);\n const hashBuffer = await platform.sha256(data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const base64 = platform.btoa(String.fromCharCode(...hashArray));\n return base64;\n }\n}\n","// NOTE: Provider class re-exports have been moved to index.ts (web) and\n// index.native.ts (RN) to avoid eager resolution of web-only dependencies\n// (react-dom, @privy-io/react-auth) when this module is imported on RN.\nimport { getConfig, WebSessionManager, ReactNativeSessionManager } from \"@pooflabs/core\";\n// Web-only providers are lazily imported inside getAuthProvider() to avoid\n// pulling react-dom / @privy-io/react-auth into the RN bundle.\nimport { MockAuthProvider } from \"./providers/mock-auth-provider\";\nimport { OffchainAuthProvider } from \"./providers/offchain-auth-provider\";\nimport { setAuthProviderInstance } from \"../global\";\nimport { getPlatform } from \"../platform\";\nlet currentAuthProvider = null;\nlet currentAuthMethod = null;\nlet initConfig = null;\n// --- localStorage helpers: track which auth method the user last logged in with ---\nconst STORED_AUTH_METHOD_KEY = 'tarobase_last_auth_method';\nfunction getStoredAuthMethod() {\n try {\n return getPlatform().storage.getItem(STORED_AUTH_METHOD_KEY);\n }\n catch (_a) {\n return null;\n }\n}\nfunction setStoredAuthMethod(method) {\n try {\n if (method) {\n getPlatform().storage.setItem(STORED_AUTH_METHOD_KEY, method);\n }\n else {\n getPlatform().storage.removeItem(STORED_AUTH_METHOD_KEY);\n }\n }\n catch (_a) {\n // storage might not be available\n }\n}\n/**\n * Clears the session if it was created before auth method tracking (legacy session).\n * Returns true if the session was cleared, false if the session is compatible.\n *\n * Dispatches to the correct session manager based on the current auth method\n * so both web (WebSessionManager) and RN (ReactNativeSessionManager) sessions\n * are properly cleared.\n */\nexport function clearIncompatibleSession() {\n if (getStoredAuthMethod() !== null) {\n return false; // Auth method is tracked — session is compatible\n }\n // Legacy session (no stored auth method) — clear it so the user re-authenticates\n // with the correct provider.\n // Clear both managers — on web the RN manager is a no-op (not configured),\n // on RN the web manager is a no-op (no localStorage).\n WebSessionManager.clearSession();\n try {\n ReactNativeSessionManager.clearSession();\n }\n catch ( /* not configured on web */_a) { /* not configured on web */ }\n return true;\n}\n// Lazy loaders for web-only providers.\n// Using dynamic import() ensures Metro (RN) never resolves these modules.\nasync function loadPrivyWalletProvider() {\n const mod = await import(\"./providers/privy-wallet-provider\");\n return mod.PrivyWalletProvider;\n}\nasync function loadPhantomWalletProvider() {\n const mod = await import(\"./providers/phantom-wallet-provider\");\n return { PhantomWalletProvider: mod.PhantomWalletProvider };\n}\nasync function loadSolanaMobileWalletProvider() {\n const mod = await import(\"./providers/solana-mobile-wallet-provider\");\n return mod.SolanaMobileWalletProvider;\n}\nasync function hotSwapToPrivyProvider(config) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const rpcUrl = (_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null;\n const PrivyWalletProvider = await loadPrivyWalletProvider();\n // Build an email-only Privy config: hide wallet connectors, show only email login.\n // Must include embeddedWallets so Privy auto-creates Solana wallets for email login users.\n const fallbackPrivyConfig = {\n appId: (_c = (_b = config.privyConfig) === null || _b === void 0 ? void 0 : _b.appId) !== null && _c !== void 0 ? _c : 'cm4ve714908o27dk2yurpnfhd',\n config: Object.assign(Object.assign({}, (_d = config.privyConfig) === null || _d === void 0 ? void 0 : _d.config), { loginMethods: ['email'], embeddedWallets: {\n solana: {\n createOnLogin: 'users-without-wallets'\n }\n }, appearance: Object.assign(Object.assign({}, (_f = (_e = config.privyConfig) === null || _e === void 0 ? void 0 : _e.config) === null || _f === void 0 ? void 0 : _f.appearance), { walletChainType: 'solana-only', showWalletLoginFirst: false, theme: 'dark', walletList: [] }) })\n };\n const privyProvider = new PrivyWalletProvider((_g = config.name) !== null && _g !== void 0 ? _g : null, (_h = config.logoUrl) !== null && _h !== void 0 ? _h : null, fallbackPrivyConfig, rpcUrl);\n let provider = privyProvider;\n if (config.chain === \"offchain\") {\n provider = new OffchainAuthProvider(privyProvider);\n }\n currentAuthProvider = provider;\n currentAuthMethod = 'privy';\n const coreConfig = await getConfig();\n coreConfig.authProvider = provider;\n coreConfig.authMethod = 'privy';\n setAuthProviderInstance(provider);\n return privyProvider;\n}\nasync function hotSwapToMWAProvider(config) {\n var _a, _b;\n const rpcUrl = (_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null;\n const SolanaMobileWalletProvider = await loadSolanaMobileWalletProvider();\n const mwaConfig = (_b = config.mobileWalletConfig) !== null && _b !== void 0 ? _b : {\n appIdentity: {\n name: config.name || undefined,\n uri: getPlatform().getLocationOrigin(),\n },\n };\n const mwaProvider = new SolanaMobileWalletProvider(rpcUrl, mwaConfig);\n let provider = mwaProvider;\n if (config.chain === \"offchain\") {\n provider = new OffchainAuthProvider(mwaProvider);\n }\n currentAuthProvider = provider;\n currentAuthMethod = 'mobile-wallet-adapter';\n const coreConfig = await getConfig();\n coreConfig.authProvider = provider;\n // Send 'phantom' as authMethod so the server routes to Solana verification.\n // TODO: change back to 'mobile-wallet-adapter' once the backend is deployed.\n coreConfig.authMethod = 'phantom';\n setAuthProviderInstance(provider);\n return provider;\n}\nexport const SOLANA_DEVNET_RPC_URL = \"https://idelle-8nxsep-fast-devnet.helius-rpc.com\";\nexport const SOLANA_MAINNET_RPC_URL = \"https://celestia-cegncv-fast-mainnet.helius-rpc.com\";\nexport const SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nexport async function getAuthProvider(config) {\n var _a, _b, _c, _d;\n if (currentAuthProvider) {\n return currentAuthProvider;\n }\n if (!config) {\n throw new Error(\"Config is required to initialize auth provider\");\n }\n initConfig = config;\n // If mockAuth is enabled, use MockAuthProvider regardless of authMethod\n if (config.mockAuth) {\n console.log(\"[MockAuth] Mock authentication enabled\");\n currentAuthProvider = new MockAuthProvider();\n return currentAuthProvider;\n }\n // If the user previously logged in with a specific method, use that instead\n const validAuthMethods = ['privy', 'privy-expo', 'phantom', 'wallet', 'rainbowkit', 'coinbase-smart-wallet', 'onboard', 'mobile-wallet-adapter', 'none'];\n const storedMethod = getStoredAuthMethod();\n const authMethod = (storedMethod && validAuthMethods.includes(storedMethod))\n ? storedMethod\n : (config.authMethod || \"phantom\");\n if (storedMethod && !validAuthMethods.includes(storedMethod)) {\n // Invalid stored value — clear it\n setStoredAuthMethod(null);\n }\n const rpcUrl = (_a = config.rpcUrl) !== null && _a !== void 0 ? _a : null;\n currentAuthMethod = authMethod;\n switch (authMethod) {\n case \"wallet\":\n console.warn(\"Wallet auth is not yet supported.\");\n break;\n case \"rainbowkit\":\n console.warn(\"Rainbow Kit auth is not yet supported.\");\n break;\n case \"privy\": {\n const PrivyWalletProvider = await loadPrivyWalletProvider();\n currentAuthProvider = new PrivyWalletProvider((_b = config.name) !== null && _b !== void 0 ? _b : null, (_c = config.logoUrl) !== null && _c !== void 0 ? _c : null, config.privyConfig, rpcUrl);\n break;\n }\n case \"phantom\": {\n const { PhantomWalletProvider } = await loadPhantomWalletProvider();\n currentAuthProvider = new PhantomWalletProvider(rpcUrl, config.phantomConfig);\n // MWA hot-swap is always available (custom modal shows MWA button on Android)\n currentAuthProvider.onSwitchToMWA =\n () => hotSwapToMWAProvider(config);\n // Privy hot-swap only when enablePrivyFallback is on\n if ((_d = config.phantomConfig) === null || _d === void 0 ? void 0 : _d.enablePrivyFallback) {\n currentAuthProvider.onSwitchToPrivy =\n () => hotSwapToPrivyProvider(config);\n }\n break;\n }\n case \"privy-expo\":\n // React Native: consumer must create PrivyExpoProvider and pass it via\n // config.privyExpoProvider, since the provider needs Privy hooks bridged\n // from the RN component tree.\n if (!config.privyExpoProvider) {\n throw new Error('authMethod \"privy-expo\" requires a PrivyExpoProvider instance passed as config.privyExpoProvider. ' +\n 'Create the provider, call setPrivyMethods() from your React Native component tree, ' +\n 'then pass it to init().');\n }\n currentAuthProvider = config.privyExpoProvider;\n break;\n case \"mobile-wallet-adapter\": {\n const SolanaMobileWalletProvider = await loadSolanaMobileWalletProvider();\n currentAuthProvider = new SolanaMobileWalletProvider(rpcUrl, config.mobileWalletConfig);\n break;\n }\n case \"onboard\":\n console.warn(\"Onboard auth is not yet supported.\");\n break;\n default:\n break;\n }\n if (!currentAuthProvider) {\n throw new Error(\"No auth provider was selected. Does your app have a supported auth method or chain configured?\");\n }\n // Wrap with OffchainAuthProvider for offchain/poofnet chain\n if (config.chain === \"offchain\") {\n console.log(\"[Offchain] Wrapping auth provider for Poofnet transaction tracking\");\n currentAuthProvider = new OffchainAuthProvider(currentAuthProvider);\n }\n return currentAuthProvider;\n}\nexport async function login(options) {\n // Re-initialize provider if it was cleared by logout\n if (!currentAuthProvider && initConfig) {\n currentAuthProvider = await getAuthProvider(initConfig);\n const coreConfig = await getConfig();\n coreConfig.authProvider = currentAuthProvider;\n // Map client-only auth methods to backend-compatible values\n coreConfig.authMethod = (currentAuthMethod === 'privy-expo' ? 'privy' : currentAuthMethod);\n setAuthProviderInstance(currentAuthProvider);\n }\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n // Forward per-call overrides to providers that support them (duck-typed to stay\n // lazy-load safe — no direct import of PhantomWalletProvider here).\n // Always call (even with null) so previous overrides are cleared when this\n // login() is invoked without options — early-return paths inside the provider\n // bypass the .finally() cleanup, so we reset here too.\n if (typeof currentAuthProvider.setLoginOverrides === 'function') {\n currentAuthProvider.setLoginOverrides(options !== null && options !== void 0 ? options : null);\n }\n const loginResult = await currentAuthProvider.login();\n if (loginResult) {\n // Store which auth method was used so we restore the right provider on reload\n setStoredAuthMethod(currentAuthMethod);\n return Object.assign(Object.assign({}, loginResult), { provider: currentAuthProvider });\n }\n return null;\n}\nexport function getCurrentAuthMethod() {\n return currentAuthMethod;\n}\nexport async function logout() {\n if (!currentAuthProvider) {\n throw new Error(\"Auth provider not initialized. Please call init() first.\");\n }\n await currentAuthProvider.logout();\n setStoredAuthMethod(null);\n currentAuthProvider = null;\n currentAuthMethod = null;\n}\n","import { reconnectWithNewAuth, getConfig } from '@pooflabs/core';\nimport { getAuthProvider, login as authLogin, logout as authLogout, clearIncompatibleSession, getCurrentAuthMethod } from './auth';\nimport { init as configInit } from '@pooflabs/core';\nlet authProviderInstance = null;\nlet currentUser = null;\nlet authStateListeners = [];\nlet authLoadingListeners = [];\nlet initCompleted = false;\nlet isAuthLoading = false;\n// This file acts as a middleware for the global state of the SDK\n// This mostly involves setting up the AuthProvider and managing the current user\nexport async function init(newConfig) {\n // Get auth provider first\n authProviderInstance = await getAuthProvider(newConfig);\n // Initialize config with auth provider\n await configInit(Object.assign(Object.assign({}, newConfig), { authProvider: authProviderInstance }));\n // Now that core is initialized, update the auth method on the config\n const authMethod = getCurrentAuthMethod();\n if (authMethod) {\n const coreConfig = await getConfig();\n // Map client-only auth methods to their backend-compatible equivalents.\n // 'privy-expo' is the same Privy auth flow, just from Expo/RN instead of web.\n coreConfig.authMethod = (authMethod === 'privy-expo' ? 'privy' : authMethod);\n }\n // Wait for restoreSession to complete\n // The appId check is done in SessionManager.getSession which is called by restoreSession\n // If there's an appId mismatch, the session will be cleared and restoreSession will return null\n let user = await authProviderInstance.restoreSession();\n // If a session exists but was created before auth method tracking (legacy session),\n // clear it to avoid mismatches when the app switches auth methods (e.g. privy → phantom)\n if (user && clearIncompatibleSession()) {\n user = null;\n }\n setCurrentUser(user);\n // Mark init as completed\n initCompleted = true;\n}\n// TODO: Have a way to remove listeners\nexport function onAuthStateChanged(callback) {\n authStateListeners.push(callback);\n if (initCompleted || hasRunFirstTime) {\n // Call the callback immediately with the current user.\n // We check hasRunFirstTime in addition to initCompleted to handle the race\n // where the Phantom auto-login effect calls setCurrentUser() before init()\n // finishes. Without this, listeners registered between auto-login's\n // setCurrentUser and init()'s initCompleted would never fire (init's\n // setCurrentUser is a no-op for same-address and initCompleted is still false).\n callback(currentUser);\n }\n}\nexport function onAuthLoadingChanged(callback) {\n authLoadingListeners.push(callback);\n // Call immediately with current loading state\n callback(isAuthLoading);\n}\nexport function setAuthLoading(loading) {\n if (isAuthLoading !== loading) {\n isAuthLoading = loading;\n authLoadingListeners.forEach((callback) => callback(loading));\n }\n}\nexport function getAuthLoading() {\n return isAuthLoading;\n}\nexport async function login(options) {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n const loggedInUser = await authLogin(options);\n setCurrentUser(loggedInUser);\n return currentUser;\n}\nexport async function logout() {\n if (!authProviderInstance) {\n throw new Error('SDK not initialized. Please call init() first.');\n }\n await authLogout();\n setCurrentUser(null);\n}\nvar hasRunFirstTime = false;\n// Update the currentUser and notify listeners\nexport function setCurrentUser(user) {\n const lastUser = currentUser;\n const wasInitializedBefore = hasRunFirstTime;\n const shouldRunListeners = !hasRunFirstTime || (currentUser === null || currentUser === void 0 ? void 0 : currentUser.address) !== (user === null || user === void 0 ? void 0 : user.address);\n hasRunFirstTime = true;\n currentUser = user;\n if (shouldRunListeners) {\n authStateListeners.forEach((callback) => callback(user));\n // Reconnect WebSocket connections with new auth when user changes.\n // Skip on the first setCurrentUser call during init() — there are no\n // existing connections to reconnect at that point.\n if (wasInitializedBefore && (lastUser === null || lastUser === void 0 ? void 0 : lastUser.address) !== (user === null || user === void 0 ? void 0 : user.address)) {\n reconnectWithNewAuth().catch((error) => {\n console.error('Error reconnecting WebSocket after auth change:', error);\n });\n }\n }\n}\nexport function getCurrentUser() {\n return currentUser;\n}\nexport function setAuthProviderInstance(provider) {\n authProviderInstance = provider;\n}\n","var _a;\nimport * as React from 'react';\nimport { login as sdkLogin, logout as sdkLogout } from '../../global';\nimport { onAuthStateChanged, onAuthLoadingChanged } from '../../global';\n// Whether we're in a server-side rendering context (no hooks allowed).\n// React Native has no `window` but DOES support hooks.\n// We detect Node SSR specifically via process.versions.node to avoid\n// false positives from Node 21+ which defines `navigator` globally.\nconst isSSR = typeof window === 'undefined'\n && typeof process !== 'undefined'\n && !!((_a = process.versions) === null || _a === void 0 ? void 0 : _a.node);\nexport function useAuth() {\n // Provide a fallback so server render doesn't break\n if (isSSR) {\n return {\n login: async () => undefined,\n logout: async () => undefined,\n loading: true,\n user: null,\n };\n }\n const [user, setUser] = React.useState(null);\n const [loading, setLoading] = React.useState(true);\n const [sdkLoading, setSdkLoading] = React.useState(false);\n React.useEffect(() => {\n onAuthStateChanged((user) => {\n setUser(user);\n setLoading(false);\n });\n onAuthLoadingChanged((loading) => {\n setSdkLoading(loading);\n });\n return () => {\n };\n }, []);\n const login = async () => {\n try {\n setLoading(true);\n const user = await sdkLogin();\n setUser(user);\n }\n catch (error) {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Error logging in:', error);\n }\n setUser(null);\n }\n finally {\n setLoading(false);\n }\n };\n const logout = async () => {\n try {\n setLoading(true);\n await sdkLogout();\n setUser(null);\n }\n catch (error) {\n console.error('Error logging out:', error);\n }\n finally {\n setLoading(false);\n }\n };\n return {\n login,\n logout,\n loading: loading || sdkLoading,\n user,\n };\n}\n","import { Transaction, VersionedTransaction } from \"@solana/web3.js\";\nexport async function deserializeTransaction(tx) {\n const buf = Buffer.isBuffer(tx) ? tx : Buffer.from(tx, 'base64');\n if ((buf[0] & 0x80) !== 0) {\n return VersionedTransaction.deserialize(buf);\n }\n else {\n return Transaction.from(buf);\n }\n}\n","import { getIdToken as getIdTokenCore } from '@pooflabs/core';\n// Wrapper for getIdToken - passes isServer=false for client-side usage\nexport async function getIdToken() {\n return getIdTokenCore(false);\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/**\n * Extracts a human-readable error message from Solana transaction logs.\n */\nexport function extractTransactionError(err, logMessages) {\n if (logMessages) {\n return JSON.stringify(logMessages);\n }\n if (err) {\n try {\n return JSON.stringify(err);\n }\n catch (_a) {\n return String(err);\n }\n }\n return 'Unknown transaction error';\n}\n/**\n * Polls getSignatureStatuses until the transaction is confirmed, then checks for errors.\n * Throws if the transaction failed on-chain. Returns parsed transaction info on success.\n */\nexport async function confirmAndCheckTransaction(connection, signature) {\n var _a;\n const maxAttempts = 15;\n for (let i = 0; i < maxAttempts; i++) {\n const { value } = await connection.getSignatureStatuses([signature]);\n const status = value[0];\n if (status) {\n if (status.err) {\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n const errorMessage = extractTransactionError(status.err, (_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.logMessages);\n throw new Error(`Transaction failed: ${errorMessage}`);\n }\n if (status.confirmationStatus === 'confirmed' || status.confirmationStatus === 'finalized') {\n return await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n }\n }\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n throw new Error('Transaction confirmation timeout');\n}\n","import { Buffer } from 'buffer';\nimport { WebSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts } from '@pooflabs/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform, detectMobile, detectAndroid } from '../../platform';\nimport { Connection, PublicKey, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nconst VALID_PROVIDERS = ['injected', 'google', 'apple', 'deeplink', 'phantom'];\n// When the dApp runs inside an iframe whose parent origin is different from\n// (or can't inject into) the child frame — notably Phantom's Android in-app\n// browser, which injects window.phantom.solana only into the top frame —\n// the Phantom deeplink path tries to navigate phantom.app/ul/browse/... from\n// inside the iframe. Android App Links only hand off on top-level navigations,\n// and phantom.app refuses to be framed (X-Frame-Options: DENY), so the connect\n// fails. To get back to a working context we navigate the top window to the\n// dApp's own URL, dropping the iframe shell. Once top-level, the wallet\n// browser injects its provider and the normal injected flow succeeds.\nfunction isInIframe() {\n if (typeof window === 'undefined')\n return false;\n try {\n return window.top !== window.self;\n }\n catch (_a) {\n // Cross-origin access to window.top throws — if we can't read it, we're iframed.\n return true;\n }\n}\nfunction shouldBreakOutOfIframe(provider) {\n // Only break out when the user chose the deeplink provider. The modal only\n // offers deeplink on mobile when no injected Phantom is present, so this is\n // exactly the iframe-without-provider case we need to escape.\n return provider === 'deeplink' && isInIframe();\n}\n// Dynamically import React and Phantom SDK - only when needed\nlet React;\nlet ReactDOM;\nlet phantomReactSdk;\nlet sdkLoaded = false;\nlet loadingPromise = null;\n// Lazy load React and Phantom dependencies only when PhantomWalletProvider is instantiated\n// Uses dynamic import() to ensure code splitting and prevent side effects\nasync function loadDependencies() {\n if (sdkLoaded)\n return;\n if (typeof window === 'undefined')\n return;\n // Prevent multiple concurrent loads\n if (loadingPromise)\n return loadingPromise;\n loadingPromise = (async () => {\n const [reactModule, reactDomModule, phantomModule] = await Promise.all([\n import('react'),\n import('react-dom/client'),\n import('@phantom/react-sdk')\n ]);\n // Extract default export from ESM module namespace\n // Dynamic import() returns { default: Module, ...exports }, not the module directly\n React = reactModule.default || reactModule;\n ReactDOM = reactDomModule.default || reactDomModule;\n phantomReactSdk = phantomModule;\n sdkLoaded = true;\n })();\n return loadingPromise;\n}\nexport class PhantomWalletProvider {\n /** Temporarily override modal appearance for a single login() call. Cleared automatically after login settles. */\n setLoginOverrides(opts) {\n this.loginOverrides = opts;\n }\n constructor(networkUrl = null, config = {}) {\n this.containerElement = null;\n this.root = null;\n this.phantomMethods = null;\n this.resolvedProviders = ['injected'];\n this.pendingLogin = null;\n this.loginInProgress = false;\n this.autoLoginInProgress = false;\n this.initPromise = null;\n this.loginOverrides = null;\n /** Callback to swap to a Privy provider when the user clicks \"Log in with email\" */\n this.onSwitchToPrivy = null;\n /** Callback to swap to a Mobile Wallet Adapter provider when the user clicks \"Connect Mobile Wallet\" */\n this.onSwitchToMWA = null;\n this.networkUrl = networkUrl;\n this.config = config;\n if (typeof window === 'undefined') {\n throw new Error('PhantomWalletProvider can only be instantiated in a browser environment');\n }\n // Singleton pattern - reuse existing instance\n if (PhantomWalletProvider.instance) {\n return PhantomWalletProvider.instance;\n }\n // Resolve providers from config (doesn't need SDK)\n this.resolveProviders();\n // Start async initialization (load SDK and initialize React component)\n this.initPromise = this.initializeAsync();\n PhantomWalletProvider.instance = this;\n }\n async initializeAsync() {\n // Lazy load dependencies only when actually instantiating\n await loadDependencies();\n // Initialize React component\n this.initialize();\n }\n /**\n * Check if social login providers are configured (non-injected providers).\n */\n hasSocialProviders() {\n return this.resolvedProviders.some(p => p !== 'injected');\n }\n static getInstance(networkUrl, config) {\n if (!PhantomWalletProvider.instance) {\n new PhantomWalletProvider(networkUrl, config);\n }\n return PhantomWalletProvider.instance;\n }\n resolveProviders() {\n if (this.config.providers && this.config.providers.length > 0) {\n const configProviders = this.config.providers;\n this.resolvedProviders = configProviders.filter((p) => VALID_PROVIDERS.includes(p));\n if (this.resolvedProviders.length === 0) {\n this.resolvedProviders = ['injected'];\n }\n }\n else if (this.config.appId) {\n this.resolvedProviders = ['injected', 'google', 'apple', 'deeplink'];\n }\n else {\n this.resolvedProviders = ['injected'];\n }\n // When Privy handles social logins, strip them from Phantom\n if (this.config.enablePrivyFallback) {\n this.resolvedProviders = this.resolvedProviders.filter(p => p !== 'google' && p !== 'apple');\n }\n }\n /**\n * Patch the Phantom extension's provider to gracefully handle `phantom_getFeatures`\n * instead of throwing. Privy's SDK probes this method to check feature support,\n * but the extension doesn't implement it, causing noisy console errors.\n */\n patchPhantomGetFeatures() {\n var _a;\n try {\n const provider = (_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana;\n if (!(provider === null || provider === void 0 ? void 0 : provider.request) || provider.__featuresPatched)\n return;\n const originalRequest = provider.request.bind(provider);\n provider.request = async (args) => {\n if ((args === null || args === void 0 ? void 0 : args.method) === 'phantom_getFeatures') {\n return { features: {} };\n }\n return originalRequest(args);\n };\n provider.__featuresPatched = true;\n }\n catch (_b) {\n // Phantom extension not present — nothing to patch\n }\n }\n initialize() {\n if (this.containerElement)\n return;\n // Suppress \"phantom_getFeatures isn't implemented\" errors from Privy probing\n // the Phantom extension for features it doesn't support yet.\n this.patchPhantomGetFeatures();\n // Remove any existing Phantom providers\n const existingProviders = document.querySelectorAll('[data-phantom-provider]');\n existingProviders.forEach(el => el.remove());\n this.containerElement = document.createElement('div');\n this.containerElement.setAttribute('data-phantom-provider', 'true');\n // Keep Phantom UI above host overlays while avoiding global click-capture.\n this.containerElement.style.position = 'fixed';\n this.containerElement.style.zIndex = '2147483647';\n // Full-viewport overlay for custom modal; pointer-events: none lets\n // clicks pass through to page except where the modal sets 'auto'\n this.containerElement.style.inset = '0';\n this.containerElement.style.pointerEvents = 'none';\n document.body.appendChild(this.containerElement);\n const that = this;\n const { PhantomProvider: ReactPhantomProvider, usePhantom, useConnect, useDisconnect, useModal, useSolana, useDiscoveredWallets, AddressType, darkTheme, lightTheme } = phantomReactSdk;\n // The SDK expects providers as an array of strings: 'injected' | 'google' | 'apple' | 'phantom' | 'deeplink'\n // Ensure we have a valid non-empty array\n const sdkProviders = this.resolvedProviders.length > 0 ? [...this.resolvedProviders] : ['injected'];\n // Inner component that uses hooks\n const PhantomHooksComponent = () => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const phantom = usePhantom();\n const { connect, error: connectError } = useConnect();\n const { disconnect, isDisconnecting } = useDisconnect();\n const modal = useModal();\n const solanaHook = useSolana();\n const { solana } = solanaHook;\n const [showWalletModal, setShowWalletModal] = React.useState(false);\n const [hoveredBtn, setHoveredBtn] = React.useState(null);\n // Discover all available wallets via Wallet Standard + EIP-6963\n const { wallets: discoveredWallets } = useDiscoveredWallets();\n const isMobile = detectMobile();\n const hasPhantomInjected = discoveredWallets.some((w) => w.id === 'phantom');\n const showDeeplink = isMobile && sdkProviders.includes('deeplink') && !hasPhantomInjected;\n // Track previous modal state to detect closes\n const prevModalOpen = React.useRef(false);\n // Track when modal was closed because user selected a wallet (not dismissed)\n const walletClickedRef = React.useRef(false);\n // Set up effect to expose methods to the class\n React.useEffect(() => {\n if (phantom) {\n that.phantomMethods = {\n ready: !phantom.isLoading,\n isConnected: phantom.isConnected,\n addresses: phantom.addresses || [],\n user: phantom.user,\n connect: async () => {\n return await connect();\n },\n disconnect: async () => {\n await disconnect();\n },\n isDisconnecting,\n openModal: () => modal.open(),\n closeModal: () => modal.close(),\n isModalOpen: modal.isOpened,\n connectError,\n showCustomModal: () => setShowWalletModal(true),\n hideCustomModal: () => setShowWalletModal(false),\n solana: solana && solanaHook.isAvailable ? {\n // Wrap methods to preserve 'this' context - direct references lose binding\n signMessage: (message) => solana.signMessage(message),\n signTransaction: (tx) => solana.signTransaction(tx),\n signAllTransactions: (txs) => solana.signAllTransactions(txs),\n signAndSendTransaction: (tx) => solana.signAndSendTransaction(tx),\n getPublicKey: () => solana.getPublicKey(),\n isAvailable: solanaHook.isAvailable,\n connected: solana.connected,\n connect: (options) => solana.connect(options),\n } : null,\n };\n }\n }, [phantom, phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, phantom === null || phantom === void 0 ? void 0 : phantom.isLoading, connect, disconnect, isDisconnecting, modal, modal.isOpened, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable, connectError]);\n // Auto-login: If connected but no Tarobase session, try to create one.\n // This handles social login callbacks where user returns from OAuth already connected.\n React.useEffect(() => {\n const autoCreateSession = async () => {\n var _a;\n // Only proceed when SDK is ready, connected, has addresses, and not already in a login flow\n if (!(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected) || (phantom === null || phantom === void 0 ? void 0 : phantom.isLoading) || that.loginInProgress || that.autoLoginInProgress || that.pendingLogin) {\n return;\n }\n // Need solana to be available AND connected for signing\n if (!solana || !solanaHook.isAvailable || !solana.connected) {\n return;\n }\n // Find Solana address\n const solAddress = (_a = phantom.addresses) === null || _a === void 0 ? void 0 : _a.find((addr) => addr.addressType === AddressType.solana);\n if (!solAddress) {\n return;\n }\n const publicKey = solAddress.address;\n // Check if we already have a valid session for this address\n const existingSession = await SessionManager.getSession();\n if (existingSession && existingSession.address === publicKey) {\n // Already have a valid session, just set user\n setCurrentUser({ provider: that, address: publicKey });\n return;\n }\n // No valid session - try to create one automatically\n that.autoLoginInProgress = true;\n setAuthLoading(true);\n try {\n const nonce = await genAuthNonce();\n const messageText = await genSolanaMessage(publicKey, nonce);\n // signMessage returns { signature: Uint8Array, publicKey: string }\n const signResult = await solana.signMessage(messageText);\n // Convert Uint8Array signature to base64 string\n const signatureBytes = signResult.signature;\n const signature = Buffer.from(signatureBytes).toString('base64');\n const createSessionResult = await createSessionWithSignature(publicKey, messageText, signature);\n await SessionManager.storeSession(publicKey, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n // Mark auth method so clearIncompatibleSession() doesn't wipe this session\n try {\n getPlatform().storage.setItem('tarobase_last_auth_method', 'phantom');\n }\n catch (_b) { }\n setCurrentUser({ provider: that, address: publicKey });\n }\n catch (error) {\n // User rejected signing or other error - disconnect fully\n try {\n await disconnect();\n }\n catch (e) {\n // Ignore disconnect errors\n }\n }\n finally {\n that.autoLoginInProgress = false;\n setAuthLoading(false);\n }\n };\n autoCreateSession();\n }, [phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.isLoading, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable, disconnect]);\n // Suppress SDK modal if it opens during custom modal login flow\n React.useEffect(() => {\n if (modal.isOpened && that.loginInProgress) {\n modal.close();\n }\n }, [modal.isOpened]);\n // Handle modal close without connection\n React.useEffect(() => {\n // Detect when modal was open and is now closed\n if (prevModalOpen.current && !showWalletModal && !modal.isOpened) {\n if (walletClickedRef.current) {\n // Modal closed because user selected a wallet — don't reject\n walletClickedRef.current = false;\n }\n else if (that.loginInProgress && that.pendingLogin && !(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected)) {\n // User dismissed modal without connecting\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n }\n prevModalOpen.current = showWalletModal || modal.isOpened;\n }, [showWalletModal, modal.isOpened, phantom === null || phantom === void 0 ? void 0 : phantom.isConnected]);\n // Handle connection errors\n React.useEffect(() => {\n if (connectError && that.pendingLogin) {\n that.pendingLogin.reject(connectError);\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n }, [connectError]);\n // Handle connection success\n React.useEffect(() => {\n const handleConnectionSuccess = async () => {\n var _a;\n // All conditions must be met for login to proceed\n if (!(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected) || !((_a = phantom === null || phantom === void 0 ? void 0 : phantom.addresses) === null || _a === void 0 ? void 0 : _a.length) || !that.pendingLogin || !that.loginInProgress) {\n return;\n }\n // Solana must be available AND connected for signing\n // If not ready yet, just return - this effect will re-run when solana.connected changes\n if (!solana || !solanaHook.isAvailable || !solana.connected) {\n return;\n }\n try {\n // Immediately set loginInProgress to false to prevent double execution\n // if the effect runs again before async operations complete\n that.loginInProgress = false;\n // Find Solana address\n const solAddress = phantom.addresses.find((addr) => addr.addressType === AddressType.solana);\n if (!solAddress) {\n that.pendingLogin.reject(new Error('No Solana address returned'));\n that.pendingLogin = null;\n return;\n }\n const publicKey = solAddress.address;\n // Check if we already have a valid session\n const existingSession = await SessionManager.getSession();\n if (existingSession && existingSession.address === publicKey) {\n const user = { provider: that, address: publicKey };\n setCurrentUser(user);\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n return;\n }\n // Create new session with signature\n const nonce = await genAuthNonce();\n const messageText = await genSolanaMessage(publicKey, nonce);\n // signMessage returns { signature: Uint8Array, publicKey: string }\n const signResult = await solana.signMessage(messageText);\n // Convert Uint8Array signature to base64 string\n const signatureBytes = signResult.signature;\n const signature = Buffer.from(signatureBytes).toString('base64');\n const createSessionResult = await createSessionWithSignature(publicKey, messageText, signature);\n await SessionManager.storeSession(publicKey, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n // Mark auth method so clearIncompatibleSession() doesn't wipe this session\n try {\n getPlatform().storage.setItem('tarobase_last_auth_method', 'phantom');\n }\n catch (_b) { }\n const user = { provider: that, address: publicKey };\n setCurrentUser(user);\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n }\n catch (error) {\n // Disconnect Phantom since login failed - don't leave in half-connected state\n try {\n await disconnect();\n }\n catch (e) {\n // Ignore disconnect errors\n }\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n }\n };\n handleConnectionSuccess();\n }, [phantom === null || phantom === void 0 ? void 0 : phantom.isConnected, phantom === null || phantom === void 0 ? void 0 : phantom.addresses, solana, solana === null || solana === void 0 ? void 0 : solana.connected, solanaHook.isAvailable]);\n // --- Custom wallet modal handlers ---\n const handleWalletClick = async (options) => {\n walletClickedRef.current = true;\n setShowWalletModal(false);\n // If we're in an iframe and the user chose deeplink, Phantom's SDK\n // will navigate *this* iframe to phantom.app/ul/browse/..., which\n // Android App Links won't intercept and phantom.app won't let be\n // framed. Escape to top-level first so the wallet browser can\n // inject its provider and the normal injected flow takes over\n // on the user's next connect tap.\n if (shouldBreakOutOfIframe(options === null || options === void 0 ? void 0 : options.provider)) {\n try {\n // Same-site navigation (*.poof.new → *.poof.new) plus the\n // iframe's allow-top-navigation-by-user-activation sandbox\n // token make this go through.\n window.top.location.href = window.location.href;\n return;\n }\n catch (_a) {\n // Top-nav blocked (no sandbox grant, cross-origin top, etc.).\n // Fall through to the normal deeplink path — at least the\n // user gets the original broken-ish behavior instead of a\n // silently-dead button.\n }\n }\n try {\n if (options === null || options === void 0 ? void 0 : options.walletId) {\n await connect({ provider: 'injected', walletId: options.walletId });\n }\n else if (options === null || options === void 0 ? void 0 : options.provider) {\n await connect({ provider: options.provider });\n }\n else {\n await connect();\n }\n }\n catch (err) {\n // connectError effect handles this\n }\n };\n const handleEmailClick = async () => {\n that.loginInProgress = false;\n walletClickedRef.current = true;\n setShowWalletModal(false);\n if (that.onSwitchToPrivy) {\n try {\n const privyProvider = await that.onSwitchToPrivy();\n const user = await privyProvider.login();\n if (that.pendingLogin && user) {\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n }\n else if (that.pendingLogin) {\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n }\n }\n catch (error) {\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n }\n }\n }\n };\n const handleMobileWalletClick = async () => {\n that.loginInProgress = false;\n walletClickedRef.current = true;\n setShowWalletModal(false);\n if (that.onSwitchToMWA) {\n try {\n const mwaProvider = await that.onSwitchToMWA();\n const user = await mwaProvider.login();\n if (that.pendingLogin && user) {\n that.pendingLogin.resolve(user);\n that.pendingLogin = null;\n }\n else if (that.pendingLogin) {\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n }\n }\n catch (error) {\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n }\n }\n }\n };\n const handleCloseModal = () => {\n setShowWalletModal(false);\n if (that.loginInProgress && that.pendingLogin && !(phantom === null || phantom === void 0 ? void 0 : phantom.isConnected)) {\n that.pendingLogin.reject(new Error('User cancelled login'));\n that.pendingLogin = null;\n that.loginInProgress = false;\n }\n };\n // --- Custom wallet modal ---\n if (!showWalletModal) {\n return null;\n }\n const effectiveTheme = (_c = (_b = (_a = that.loginOverrides) === null || _a === void 0 ? void 0 : _a.theme) !== null && _b !== void 0 ? _b : that.config.theme) !== null && _c !== void 0 ? _c : 'dark';\n const isLight = effectiveTheme === 'light';\n const bgColor = isLight ? '#FFFFFF' : '#111113';\n const cardBorder = isLight ? '1px solid rgba(0,0,0,0.08)' : '1px solid rgba(255,255,255,0.07)';\n const textColor = isLight ? '#0f0f0f' : '#f5f5f5';\n const subTextColor = isLight ? 'rgba(0,0,0,0.45)' : 'rgba(255,255,255,0.4)';\n const btnBg = isLight ? 'rgba(0,0,0,0.04)' : 'rgba(255,255,255,0.05)';\n const btnHoverBg = isLight ? 'rgba(0,0,0,0.08)' : 'rgba(255,255,255,0.09)';\n const btnBorder = isLight ? '1px solid rgba(0,0,0,0.10)' : '1px solid rgba(255,255,255,0.09)';\n const dividerColor = isLight ? 'rgba(0,0,0,0.10)' : 'rgba(255,255,255,0.08)';\n const fontFamily = '\"SF Pro Text\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif';\n const buttonStyle = (id) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '10px',\n width: '100%',\n height: '52px',\n padding: '0 20px',\n border: btnBorder,\n borderRadius: '12px',\n backgroundColor: hoveredBtn === id ? btnHoverBg : btnBg,\n color: textColor,\n fontFamily,\n fontSize: '14px',\n fontWeight: '500',\n lineHeight: '1',\n letterSpacing: '0',\n cursor: 'pointer',\n transition: 'background-color 0.15s, border-color 0.15s',\n boxSizing: 'border-box',\n });\n const emailButtonStyle = (id) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '10px',\n width: '100%',\n height: '52px',\n padding: '0 20px',\n border: isLight ? '1px solid rgba(0,0,0,0.15)' : '1px solid rgba(255,255,255,0.15)',\n borderRadius: '12px',\n backgroundColor: hoveredBtn === id\n ? (isLight ? 'rgba(0,0,0,0.06)' : 'rgba(255,255,255,0.12)')\n : (isLight ? 'rgba(0,0,0,0.03)' : 'rgba(255,255,255,0.08)'),\n color: textColor,\n fontFamily,\n fontSize: '14px',\n fontWeight: '500',\n lineHeight: '1',\n cursor: 'pointer',\n transition: 'background-color 0.15s, border-color 0.15s',\n boxSizing: 'border-box',\n });\n const walletButtons = [];\n // Google OAuth button — shown when 'google' is in resolved providers\n if (sdkProviders.includes('google')) {\n walletButtons.push(React.createElement('button', {\n key: 'google-oauth',\n style: buttonStyle('google-oauth'),\n onClick: () => handleWalletClick({ provider: 'google' }),\n onMouseEnter: () => setHoveredBtn('google-oauth'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24',\n style: { flexShrink: '0' },\n }, React.createElement('path', {\n d: 'M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z',\n fill: '#4285F4',\n }), React.createElement('path', {\n d: 'M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z',\n fill: '#34A853',\n }), React.createElement('path', {\n d: 'M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A11.96 11.96 0 0 0 1 12c0 1.94.46 3.77 1.18 5.41l3.66-2.84z',\n fill: '#FBBC05',\n }), React.createElement('path', {\n d: 'M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z',\n fill: '#EA4335',\n })), 'Continue with Google'));\n }\n // Apple OAuth button — shown when 'apple' is in resolved providers\n if (sdkProviders.includes('apple')) {\n walletButtons.push(React.createElement('button', {\n key: 'apple-oauth',\n style: buttonStyle('apple-oauth'),\n onClick: () => handleWalletClick({ provider: 'apple' }),\n onMouseEnter: () => setHoveredBtn('apple-oauth'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24',\n fill: textColor,\n style: { flexShrink: '0' },\n }, React.createElement('path', {\n d: 'M17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z',\n })), 'Continue with Apple'));\n }\n // Fallback icon for Phantom — uses the official SVG path from @phantom/wallet-sdk-ui\n // (SDK intentionally leaves wallet.icon empty for Phantom, expecting its own UI to render it)\n const PHANTOM_ICON = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHJ4PSI2IiBmaWxsPSIjQUI5RkYyIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNCw0KSI+PHBhdGggZD0iTTIuMzY2NTUgMTguMzI3MUM0LjkxODcxIDE4LjMyNzEgNi44MzY3IDE2LjEwNzYgNy45ODEzMSAxNC4zNTM3QzcuODQyMSAxNC43NDE3IDcuNzY0NzYgMTUuMTI5OCA3Ljc2NDc2IDE1LjUwMjNDNy43NjQ3NiAxNi41MjY3IDguMzUyNTMgMTcuMjU2MiA5LjUxMjYgMTcuMjU2MkMxMS4xMDU4IDE3LjI1NjIgMTIuODA3MiAxNS44NTkzIDEzLjY4ODkgMTQuMzUzN0MxMy42MjcgMTQuNTcxIDEzLjU5NjEgMTQuNzcyOCAxMy41OTYxIDE0Ljk1OUMxMy41OTYxIDE1LjY3MyAxMy45OTgyIDE2LjEyMzEgMTQuODE4IDE2LjEyMzFDMTcuNDAxMSAxNi4xMjMxIDE5Ljk5OTcgMTEuNTQ0NCAxOS45OTk3IDcuNTM5ODdDMTkuOTk5NyA0LjQyMDExIDE4LjQyMiAxLjY3Mjg1IDE0LjQ2MjIgMS42NzI4NUM3LjUwMTgxIDEuNjcyODUgMCAxMC4xNzg1IDAgMTUuNjczQzAgMTcuODMwNSAxLjE2MDA3IDE4LjMyNzEgMi4zNjY1NSAxOC4zMjcxWk0xMi4wNjQ4IDcuMTk4NDFDMTIuMDY0OCA2LjQyMjM1IDEyLjQ5NzkgNS44NzkxIDEzLjEzMiA1Ljg3OTFDMTMuNzUwNyA1Ljg3OTEgMTQuMTgzOCA2LjQyMjM1IDE0LjE4MzggNy4xOTg0MUMxNC4xODM4IDcuOTc0NDcgMTMuNzUwNyA4LjUzMzIzIDEzLjEzMiA4LjUzMzIzQzEyLjQ5NzkgOC41MzMyMyAxMi4wNjQ4IDcuOTc0NDcgMTIuMDY0OCA3LjE5ODQxWk0xNS4zNzQ4IDcuMTk4NDFDMTUuMzc0OCA2LjQyMjM1IDE1LjgwNzkgNS44NzkxIDE2LjQ0MjEgNS44NzkxQzE3LjA2MDggNS44NzkxIDE3LjQ5MzkgNi40MjIzNSAxNy40OTM5IDcuMTk4NDFDMTcuNDkzOSA3Ljk3NDQ3IDE3LjA2MDggOC41MzMyMyAxNi40NDIxIDguNTMzMjNDMTUuODA3OSA4LjUzMzIzIDE1LjM3NDggNy45NzQ0NyAxNS4zNzQ4IDcuMTk4NDFaIiBmaWxsPSJ3aGl0ZSIvPjwvZz48L3N2Zz4=';\n // Show all discovered injected wallets (Phantom, Solflare, Jupiter, etc.)\n if (sdkProviders.includes('injected')) {\n for (const wallet of discoveredWallets) {\n const walletKey = `wallet-${wallet.id}`;\n const iconSrc = wallet.icon || (wallet.id === 'phantom' ? PHANTOM_ICON : null);\n walletButtons.push(React.createElement('button', {\n key: walletKey,\n style: buttonStyle(walletKey),\n onClick: () => handleWalletClick({ walletId: wallet.id }),\n onMouseEnter: () => setHoveredBtn(walletKey),\n onMouseLeave: () => setHoveredBtn(null),\n }, iconSrc\n ? React.createElement('img', {\n src: iconSrc,\n alt: wallet.name,\n style: { width: '28px', height: '28px', borderRadius: '6px' },\n })\n : null, wallet.name));\n }\n }\n if (showDeeplink) {\n walletButtons.push(React.createElement('button', {\n key: 'phantom-deeplink',\n style: buttonStyle('phantom-deeplink'),\n onClick: () => handleWalletClick({ provider: 'deeplink' }),\n onMouseEnter: () => setHoveredBtn('phantom-deeplink'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('img', {\n src: PHANTOM_ICON,\n alt: 'Phantom',\n style: { width: '28px', height: '28px', borderRadius: '6px' },\n }), 'Open Phantom app'));\n }\n // Mobile Wallet Adapter button — shown on Android when MWA callback is available\n const isAndroid = detectAndroid();\n if (isAndroid && that.onSwitchToMWA) {\n walletButtons.push(React.createElement('button', {\n key: 'mobile-wallet',\n style: buttonStyle('mobile-wallet'),\n onClick: handleMobileWalletClick,\n onMouseEnter: () => setHoveredBtn('mobile-wallet'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24', fill: 'none',\n style: { flexShrink: '0', opacity: '0.85' },\n }, \n // Phone outline\n React.createElement('rect', {\n x: '5', y: '2', width: '14', height: '20', rx: '2',\n stroke: textColor, strokeWidth: '2', fill: 'none',\n }), \n // Screen line\n React.createElement('line', {\n x1: '5', y1: '6', x2: '19', y2: '6',\n stroke: textColor, strokeWidth: '1.5',\n }), \n // Wallet/shield checkmark\n React.createElement('path', {\n d: 'M9.5 12.5l2 2 3.5-3.5',\n stroke: textColor, strokeWidth: '2', strokeLinecap: 'round', strokeLinejoin: 'round', fill: 'none',\n })), 'Connect Mobile Wallet'));\n }\n // Email button — only when Privy fallback is enabled\n if (that.config.enablePrivyFallback) {\n walletButtons.push(React.createElement('button', {\n key: 'email-login',\n style: emailButtonStyle('email-login'),\n onClick: handleEmailClick,\n onMouseEnter: () => setHoveredBtn('email-login'),\n onMouseLeave: () => setHoveredBtn(null),\n }, React.createElement('svg', {\n width: '18', height: '18', viewBox: '0 0 24 24', fill: 'none',\n style: { flexShrink: '0', opacity: '0.7' },\n }, React.createElement('path', {\n d: 'M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z',\n stroke: textColor, strokeWidth: '1.75', strokeLinecap: 'round', strokeLinejoin: 'round', fill: 'none',\n }), React.createElement('path', {\n d: 'M22 6l-10 7L2 6',\n stroke: textColor, strokeWidth: '1.75', strokeLinecap: 'round', strokeLinejoin: 'round', fill: 'none',\n })), 'Continue with email'));\n }\n // Split email button from the rest to insert OR divider\n const emailBtnIndex = walletButtons.findIndex((b) => b && b.key === 'email-login');\n const mainButtons = emailBtnIndex >= 0 ? walletButtons.slice(0, emailBtnIndex) : walletButtons;\n const emailButton = emailBtnIndex >= 0 ? walletButtons[emailBtnIndex] : null;\n // OR divider — shown when there are both wallet/social buttons and an email button\n const orDivider = (mainButtons.length > 0 && emailButton)\n ? React.createElement('div', {\n key: 'or-divider',\n style: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n margin: '4px 0',\n },\n }, React.createElement('div', {\n style: { flex: '1', height: '1px', backgroundColor: dividerColor },\n }), React.createElement('span', {\n style: {\n color: subTextColor,\n fontFamily,\n fontSize: '12px',\n fontWeight: '500',\n letterSpacing: '0.02em',\n textTransform: 'uppercase',\n userSelect: 'none',\n },\n }, 'or'), React.createElement('div', {\n style: { flex: '1', height: '1px', backgroundColor: dividerColor },\n }))\n : null;\n // Render custom modal\n return React.createElement('div', {\n // Overlay\n style: {\n position: 'fixed',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n backgroundColor: isLight ? 'rgba(0,0,0,0.35)' : 'rgba(0,0,0,0.65)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2147483647,\n pointerEvents: 'auto',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n },\n onClick: (e) => {\n if (e.target === e.currentTarget)\n handleCloseModal();\n },\n onMouseDown: (e) => {\n e.stopPropagation();\n },\n onPointerDown: (e) => {\n e.stopPropagation();\n },\n }, \n // Card\n React.createElement('div', {\n style: {\n backgroundColor: bgColor,\n border: cardBorder,\n borderRadius: '20px',\n width: '380px',\n maxWidth: 'calc(100vw - 32px)',\n padding: '28px 24px 24px',\n position: 'relative',\n boxShadow: isLight\n ? '0 8px 40px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06)'\n : '0 8px 40px rgba(0,0,0,0.6), 0 2px 8px rgba(0,0,0,0.3)',\n pointerEvents: 'auto',\n boxSizing: 'border-box',\n },\n onMouseDown: (e) => {\n e.stopPropagation();\n },\n onPointerDown: (e) => {\n e.stopPropagation();\n },\n }, \n // Close button\n React.createElement('button', {\n onClick: handleCloseModal,\n style: {\n position: 'absolute',\n top: '14px',\n right: '14px',\n background: isLight ? 'rgba(0,0,0,0.05)' : 'rgba(255,255,255,0.07)',\n border: isLight ? '1px solid rgba(0,0,0,0.08)' : '1px solid rgba(255,255,255,0.08)',\n borderRadius: '50%',\n width: '28px',\n height: '28px',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '0',\n flexShrink: '0',\n },\n }, React.createElement('svg', {\n width: '12', height: '12', viewBox: '0 0 12 12', fill: 'none',\n }, React.createElement('path', {\n d: 'M11 1L1 11M1 1l10 10',\n stroke: subTextColor, strokeWidth: '1.75', strokeLinecap: 'round',\n }))), \n // App icon (if provided)\n that.config.appIcon ? React.createElement('div', {\n style: { display: 'flex', justifyContent: 'center', marginBottom: '16px' },\n }, React.createElement('img', {\n src: that.config.appIcon,\n alt: that.config.appName || 'App',\n style: { width: '44px', height: '44px', borderRadius: '10px' },\n })) : null, \n // Title\n React.createElement('div', {\n style: {\n color: textColor,\n fontFamily,\n fontSize: '17px',\n fontWeight: '600',\n textAlign: 'center',\n marginBottom: '6px',\n letterSpacing: '-0.2px',\n },\n }, (_f = (_e = (_d = that.loginOverrides) === null || _d === void 0 ? void 0 : _d.modalTitle) !== null && _e !== void 0 ? _e : that.config.modalTitle) !== null && _f !== void 0 ? _f : (that.config.appName ? `Log in to ${that.config.appName}` : 'Log in to your account')), \n // Subtitle\n React.createElement('div', {\n style: {\n color: subTextColor,\n fontFamily,\n fontSize: '13px',\n fontWeight: '400',\n textAlign: 'center',\n marginBottom: '24px',\n lineHeight: '1.4',\n },\n }, (_j = (_h = (_g = that.loginOverrides) === null || _g === void 0 ? void 0 : _g.modalSubtitle) !== null && _h !== void 0 ? _h : that.config.modalSubtitle) !== null && _j !== void 0 ? _j : 'Choose how you\\'d like to continue'), \n // Main buttons + OR divider + email button\n React.createElement('div', {\n style: {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n },\n }, ...mainButtons, orDivider, emailButton)));\n };\n // Wrapper component with PhantomProvider\n const PhantomProviderWrapper = () => {\n // Build SDK config\n const sdkConfig = React.useMemo(() => {\n var _a;\n const config = {\n providers: sdkProviders,\n addressTypes: [AddressType.solana],\n autoConnect: (_a = that.config.autoConnect) !== null && _a !== void 0 ? _a : true,\n };\n if (that.config.appId) {\n config.appId = that.config.appId;\n }\n return config;\n }, []);\n const theme = that.config.theme === 'light' ? lightTheme : darkTheme;\n return React.createElement(ReactPhantomProvider, {\n config: sdkConfig,\n theme: theme,\n appName: that.config.appName || 'App',\n appIcon: that.config.appIcon,\n }, React.createElement(PhantomHooksComponent));\n };\n this.root = ReactDOM.createRoot(this.containerElement);\n this.root.render(React.createElement(PhantomProviderWrapper));\n }\n async ensureReady() {\n // Wait for async initialization to complete first\n if (this.initPromise) {\n await this.initPromise;\n }\n // Wait for SDK to be ready\n await new Promise((resolve) => {\n const check = () => {\n var _a;\n if ((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.ready) {\n resolve();\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n async ensureSolanaReady() {\n var _a;\n await this.ensureReady();\n // If connected at the Phantom level, ensure solana methods are ready\n if ((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) {\n const timeoutMs = 10000; // 10 second timeout\n const startTime = Date.now();\n // First, wait for solana to be available\n await new Promise((resolve, reject) => {\n const check = () => {\n var _a, _b;\n if ((_b = (_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.solana) === null || _b === void 0 ? void 0 : _b.isAvailable) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Timeout waiting for Solana provider to be available'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n // Now check if the solana provider is connected, if not try to reconnect\n // Note: We check our wrapper's `connected` which may be stale, but this is just\n // an optimization to skip reconnect if we know we're already connected.\n // The actual signing methods use the SDK's bound methods which check live state.\n if (!this.phantomMethods.solana.connected) {\n console.log('Solana provider not connected, attempting to reconnect...');\n try {\n // onlyIfTrusted: true means it will reconnect silently if previously approved\n // If not trusted, it will throw and we'll catch it below\n await this.phantomMethods.solana.connect({ onlyIfTrusted: true });\n console.log('Solana provider reconnected successfully');\n }\n catch (error) {\n // If onlyIfTrusted fails, the user may need to re-approve via modal\n console.error('Failed to reconnect solana provider (silent reconnect failed):', error === null || error === void 0 ? void 0 : error.message);\n throw new Error('Failed to reconnect Solana provider. Please try logging in again.');\n }\n }\n // Note: We don't do a final connected check here because our wrapper's `connected`\n // is a snapshot that won't update until React re-renders. If connect() succeeded,\n // the SDK is connected and signing will work.\n }\n }\n /**\n * Get the list of available (configured) providers for this wallet.\n */\n getAvailableProviders() {\n return [...this.resolvedProviders];\n }\n /**\n * Login using the Phantom connect modal.\n * When enablePrivyFallback is true, a custom modal is rendered with discovered\n * wallets and a \"Log in with email\" button instead of the SDK's built-in modal.\n */\n async login() {\n var _a, _b;\n await this.ensureReady();\n // Check if already connected with valid session\n if (((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) && ((_b = this.phantomMethods.addresses) === null || _b === void 0 ? void 0 : _b.length) > 0) {\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (solAddress) {\n const session = await SessionManager.getSession();\n if (session && session.address === solAddress.address) {\n const user = { provider: this, address: solAddress.address };\n setCurrentUser(user);\n return user;\n }\n }\n }\n // If already pending, wait for it\n if (this.pendingLogin) {\n return new Promise((resolve, reject) => {\n this.pendingLogin.resolve = resolve;\n this.pendingLogin.reject = reject;\n });\n }\n const loginPromise = new Promise((resolve, reject) => {\n this.pendingLogin = { resolve, reject };\n this.loginInProgress = true;\n // Always use our custom wallet modal\n this.phantomMethods.showCustomModal();\n // Safety timeout\n setTimeout(() => {\n if (this.pendingLogin) {\n this.pendingLogin.reject(new Error('Login timed out'));\n this.pendingLogin = null;\n this.loginInProgress = false;\n }\n }, 180000);\n });\n return loginPromise.finally(() => {\n this.loginOverrides = null;\n });\n }\n async restoreSession() {\n await this.ensureReady();\n const session = await SessionManager.getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n return null;\n }\n async address() {\n var _a, _b, _c, _d;\n await this.ensureReady();\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) || !((_b = this.phantomMethods.addresses) === null || _b === void 0 ? void 0 : _b.length)) {\n // Try to connect first\n const user = await this.login();\n if (!user)\n return null;\n }\n const solAddress = (_d = (_c = this.phantomMethods) === null || _c === void 0 ? void 0 : _c.addresses) === null || _d === void 0 ? void 0 : _d.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n return (solAddress === null || solAddress === void 0 ? void 0 : solAddress.address) || null;\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (!solTransactionData) {\n throw new Error(\"Solana transaction data is required for Phantom wallet\");\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n try {\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n let app_id = solTransactionData.appId;\n if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n app_id = window.CUSTOM_TAROBASE_APP_ID_HEADER;\n }\n if (!app_id) {\n throw new Error(\"App ID is required\");\n }\n // Get address\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (!solAddress) {\n throw new Error('Failed to get Solana address');\n }\n const publicKey = new PublicKey(solAddress.address);\n // Create wallet adapter using SDK methods\n const solana = this.phantomMethods.solana;\n const walletAdapter = {\n publicKey,\n signTransaction: async (tx) => {\n return await solana.signTransaction(tx);\n },\n signAllTransactions: async (txs) => {\n return await solana.signAllTransactions(txs);\n }\n };\n const anchorProvider = new anchor.AnchorProvider(connection, walletAdapter, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n // When the server has co-signed a transaction (CPI attestation),\n // deserialize it and just add the wallet signature instead of\n // building from components.\n let tx;\n if (solTransactionData.signedTransaction) {\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, publicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n const signedTx = await walletAdapter.signTransaction(tx);\n return {\n signedTransaction: signedTx,\n blockNumber: 0,\n gasUsed: \"0\",\n data: \"\"\n };\n }\n // Keep manual submission on surfnet, use Phantom's recommended signAndSend for other networks.\n if (isSurfnet) {\n const signedTx = await walletAdapter.signTransaction(tx);\n const { signature, txInfo } = await this.submitSignedTransaction(signedTx, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_c = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _c === void 0 ? void 0 : _c.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n const signature = await this.signAndSendViaPhantom(tx);\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_d = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _d === void 0 ? void 0 : _d.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.includes('not connected')) || ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.includes('connect first'))) {\n console.error('Solana provider connection lost during transaction, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user rejected')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user denied')) ||\n ((_j = error === null || error === void 0 ? void 0 : error.message) === null || _j === void 0 ? void 0 : _j.toLowerCase().includes('user cancelled')) ||\n ((_k = error === null || error === void 0 ? void 0 : error.message) === null || _k === void 0 ? void 0 : _k.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('Failed to execute transaction', error);\n }\n throw new Error(`Failed to execute transaction: ${error.message}`);\n }\n }\n /**\n * Signs a Solana transaction without submitting it.\n *\n * This method handles blockhash automatically if not set - you do NOT need to\n * set recentBlockhash on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign (Transaction or VersionedTransaction)\n * @returns The signed transaction\n */\n async signTransaction(transaction) {\n var _a, _b, _c, _d;\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n // Reconnection failed - log user out and throw\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n // Ensure blockhash is set before signing\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (solAddress) {\n legacyTx.feePayer = new PublicKey(solAddress.address);\n }\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n try {\n return await this.phantomMethods.solana.signTransaction(transaction);\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('connect first'))) {\n console.error('Solana provider connection lost during signing, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n throw new Error(`Failed to sign transaction: ${error.message}`);\n }\n }\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the connected wallet address will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(transaction, feePayer) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n try {\n // Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n if (feePayer) {\n legacyTx.feePayer = feePayer;\n }\n else {\n // Use connected wallet address as feePayer\n const solAddress = this.phantomMethods.addresses.find((addr) => addr.addressType === phantomReactSdk.AddressType.solana);\n if (solAddress) {\n legacyTx.feePayer = new PublicKey(solAddress.address);\n }\n }\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n // Keep manual submission on surfnet, use Phantom's recommended signAndSend for other networks.\n if (isSurfnet) {\n const signedTx = await this.phantomMethods.solana.signTransaction(transaction);\n const { signature } = await this.submitSignedTransactionWithBlockhash(signedTx, connection, blockhash, lastValidBlockHeight);\n return signature;\n }\n const signature = await this.signAndSendViaPhantom(transaction);\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('connect first'))) {\n console.error('Solana provider connection lost during transaction, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user rejected')) ||\n ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.toLowerCase().includes('user denied')) ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user cancelled')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('Failed to execute transaction', error);\n }\n throw new Error(`Failed to execute transaction: ${error.message}`);\n }\n }\n async signMessage(message) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n // Reconnection failed - log user out and throw\n console.error('Solana provider reconnection failed, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n if (!((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected)) {\n const user = await this.login();\n if (!user) {\n throw new Error('Failed to connect wallet');\n }\n try {\n await this.ensureSolanaReady();\n }\n catch (error) {\n console.error('Solana provider reconnection failed after login, logging out:', error.message);\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n }\n if (!((_b = this.phantomMethods) === null || _b === void 0 ? void 0 : _b.solana)) {\n throw new Error('Solana signing not available');\n }\n try {\n // signMessage returns { signature: Uint8Array, publicKey: string }\n const result = await this.phantomMethods.solana.signMessage(message);\n return Buffer.from(result.signature).toString('base64');\n }\n catch (error) {\n // Check if this is a connection error - if so, log out\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('connect first'))) {\n console.error('Solana provider connection lost during signing, logging out');\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user rejected')) ||\n ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.toLowerCase().includes('user denied')) ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user cancelled')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('Failed to sign message', error);\n }\n throw new Error('Failed to sign message');\n }\n }\n async logout() {\n var _a;\n await this.ensureReady();\n try {\n if ((_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.isConnected) {\n await this.phantomMethods.disconnect();\n }\n }\n catch (error) {\n console.error('Failed to disconnect from Phantom wallet', error);\n }\n // Always clear local state\n SessionManager.clearSession();\n setCurrentUser(null);\n }\n async getNativeMethods() {\n await this.ensureReady();\n return this.phantomMethods;\n }\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n async signAndSendViaPhantom(transaction) {\n var _a, _b, _c;\n const result = await ((_b = (_a = this.phantomMethods) === null || _a === void 0 ? void 0 : _a.solana) === null || _b === void 0 ? void 0 : _b.signAndSendTransaction(transaction));\n const signature = (_c = result === null || result === void 0 ? void 0 : result.signature) !== null && _c !== void 0 ? _c : result === null || result === void 0 ? void 0 : result.hash;\n if (!signature) {\n throw new Error('Phantom did not return a transaction signature');\n }\n return signature;\n }\n async submitSignedTransaction(signedTx, connection) {\n // Get fresh blockhash for confirmation\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n return this.submitSignedTransactionWithBlockhash(signedTx, connection, blockhash, lastValidBlockHeight);\n }\n async submitSignedTransactionWithBlockhash(signedTx, connection, blockhash, lastValidBlockHeight) {\n // Submit the transaction\n const signature = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n // Confirm using blockhash strategy (same as runTransaction)\n const confirmation = await connection.confirmTransaction({\n signature,\n blockhash,\n lastValidBlockHeight,\n }, 'confirmed');\n if (confirmation.value.err) {\n throw new Error(`Transaction failed: ${confirmation.value.err.toString()}`);\n }\n // Get transaction info\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n return { signature, txInfo };\n }\n}\nPhantomWalletProvider.instance = null;\n","// src/codes.ts\nvar SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1;\nvar SOLANA_ERROR__INVALID_NONCE = 2;\nvar SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3;\nvar SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4;\nvar SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5;\nvar SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6;\nvar SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7;\nvar SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8;\nvar SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9;\nvar SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR = 10;\nvar SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700;\nvar SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603;\nvar SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602;\nvar SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601;\nvar SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE = -32019;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_NOT_EPOCH_BOUNDARY = -32018;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE = -32017;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013;\nvar SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002;\nvar SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001;\nvar SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 28e5;\nvar SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001;\nvar SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002;\nvar SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003;\nvar SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004;\nvar SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005;\nvar SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006;\nvar SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007;\nvar SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008;\nvar SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009;\nvar SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010;\nvar SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS = 2800011;\nvar SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 323e4;\nvar SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001;\nvar SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002;\nvar SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003;\nvar SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 361e4;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006;\nvar SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007;\nvar SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611e3;\nvar SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704e3;\nvar SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001;\nvar SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002;\nvar SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003;\nvar SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004;\nvar SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128e3;\nvar SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001;\nvar SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615e3;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053;\nvar SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054;\nvar SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508e3;\nvar SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001;\nvar SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002;\nvar SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003;\nvar SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004;\nvar SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005;\nvar SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006;\nvar SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007;\nvar SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008;\nvar SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009;\nvar SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010;\nvar SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011;\nvar SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663e3;\nvar SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001;\nvar SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002;\nvar SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003;\nvar SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004;\nvar SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005;\nvar SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006;\nvar SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007;\nvar SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008;\nvar SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009;\nvar SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010;\nvar SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011;\nvar SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012;\nvar SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013;\nvar SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014;\nvar SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015;\nvar SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016;\nvar SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017;\nvar SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018;\nvar SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT = 5663019;\nvar SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT = 5663020;\nvar SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_NOT_SUPPORTED = 5663021;\nvar SOLANA_ERROR__TRANSACTION__NONCE_ACCOUNT_CANNOT_BE_IN_LOOKUP_TABLE = 5663022;\nvar SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 705e4;\nvar SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001;\nvar SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002;\nvar SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003;\nvar SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006;\nvar SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007;\nvar SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008;\nvar SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009;\nvar SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011;\nvar SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013;\nvar SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014;\nvar SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015;\nvar SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016;\nvar SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017;\nvar SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019;\nvar SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020;\nvar SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021;\nvar SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022;\nvar SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027;\nvar SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028;\nvar SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029;\nvar SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031;\nvar SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032;\nvar SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033;\nvar SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034;\nvar SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035;\nvar SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036;\nvar SOLANA_ERROR__INSTRUCTION_PLANS__MESSAGE_CANNOT_ACCOMMODATE_PLAN = 7618e3;\nvar SOLANA_ERROR__INSTRUCTION_PLANS__MESSAGE_PACKER_ALREADY_COMPLETE = 7618001;\nvar SOLANA_ERROR__INSTRUCTION_PLANS__EMPTY_INSTRUCTION_PLAN = 7618002;\nvar SOLANA_ERROR__INSTRUCTION_PLANS__FAILED_TO_EXECUTE_TRANSACTION_PLAN = 7618003;\nvar SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078e3;\nvar SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001;\nvar SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002;\nvar SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003;\nvar SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004;\nvar SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005;\nvar SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006;\nvar SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007;\nvar SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008;\nvar SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009;\nvar SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010;\nvar SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011;\nvar SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012;\nvar SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013;\nvar SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014;\nvar SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015;\nvar SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016;\nvar SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017;\nvar SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018;\nvar SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019;\nvar SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020;\nvar SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021;\nvar SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022;\nvar SOLANA_ERROR__CODECS__EXPECTED_DECODER_TO_CONSUME_ENTIRE_BYTE_ARRAY = 8078023;\nvar SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 81e5;\nvar SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001;\nvar SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002;\nvar SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD = 8100003;\nvar SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN = 819e4;\nvar SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001;\nvar SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002;\nvar SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED = 8190003;\nvar SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT = 8190004;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING = 99e5;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED = 9900004;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__INVALID_INSTRUCTION_PLAN_KIND = 9900005;\nvar SOLANA_ERROR__INVARIANT_VIOLATION__INVALID_TRANSACTION_PLAN_KIND = 9900006;\n\n// src/context.ts\nfunction encodeValue(value) {\n if (Array.isArray(value)) {\n const commaSeparatedValues = value.map(encodeValue).join(\n \"%2C%20\"\n /* \", \" */\n );\n return \"%5B\" + commaSeparatedValues + /* \"]\" */\n \"%5D\";\n } else if (typeof value === \"bigint\") {\n return `${value}n`;\n } else {\n return encodeURIComponent(\n String(\n value != null && Object.getPrototypeOf(value) === null ? (\n // Plain objects with no prototype don't have a `toString` method.\n // Convert them before stringifying them.\n { ...value }\n ) : value\n )\n );\n }\n}\nfunction encodeObjectContextEntry([key, value]) {\n return `${key}=${encodeValue(value)}`;\n}\nfunction encodeContextObject(context) {\n const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join(\"&\");\n return btoa(searchParamsString);\n}\n\n// src/messages.ts\nvar SolanaErrorMessages = {\n [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: \"Account not found at address: $address\",\n [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: \"Not all accounts were decoded. Encoded accounts found at addresses: $addresses.\",\n [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: \"Expected decoded account at address: $address\",\n [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: \"Failed to decode account data at address: $address\",\n [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: \"Accounts not found at addresses: $addresses\",\n [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]: \"Unable to find a viable program address bump seed.\",\n [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: \"$putativeAddress is not a base58-encoded address.\",\n [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: \"Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.\",\n [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: \"The `CryptoKey` must be an `Ed25519` public key.\",\n [SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS]: \"$putativeOffCurveAddress is not a base58-encoded off-curve address.\",\n [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: \"Invalid seeds; point must fall off the Ed25519 curve.\",\n [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]: \"Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].\",\n [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: \"A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.\",\n [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: \"The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.\",\n [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: \"Expected program derived address bump to be in the range [0, 255], got: $bump.\",\n [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: \"Program address cannot end with PDA marker.\",\n [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: \"Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.\",\n [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: \"Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.\",\n [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: \"The network has progressed past the last block for which this transaction could have been committed.\",\n [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: \"Codec [$codecDescription] cannot decode empty byte arrays.\",\n [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: \"Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.\",\n [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: \"Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].\",\n [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: \"Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].\",\n [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: \"Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].\",\n [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]: \"Encoder and decoder must either both be fixed-size or variable-size.\",\n [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: \"Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.\",\n [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: \"Expected a fixed-size codec, got a variable-size one.\",\n [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: \"Codec [$codecDescription] expected a positive byte length, got $bytesLength.\",\n [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: \"Expected a variable-size codec, got a fixed-size one.\",\n [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: \"Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].\",\n [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: \"Codec [$codecDescription] expected $expected bytes, got $bytesLength.\",\n [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: \"Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].\",\n [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: \"Invalid discriminated union variant. Expected one of [$variants], got $value.\",\n [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: \"Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.\",\n [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: \"Invalid literal union variant. Expected one of [$variants], got $value.\",\n [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: \"Expected [$codecDescription] to have $expected items, got $actual.\",\n [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: \"Invalid value $value for base $base with alphabet $alphabet.\",\n [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: \"Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.\",\n [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: \"Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.\",\n [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: \"Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.\",\n [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: \"Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].\",\n [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: \"Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.\",\n [SOLANA_ERROR__CODECS__EXPECTED_DECODER_TO_CONSUME_ENTIRE_BYTE_ARRAY]: \"This decoder expected a byte array of exactly $expectedLength bytes, but $numExcessBytes unexpected excess bytes remained after decoding. Are you sure that you have chosen the correct decoder for this data?\",\n [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: \"No random values implementation could be found.\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: \"instruction requires an uninitialized account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]: \"instruction tries to borrow reference for an account which is already borrowed\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: \"instruction left account with an outstanding borrowed reference\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]: \"program other than the account's owner changed the size of the account data\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: \"account data too small for instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: \"instruction expected an executable account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]: \"An account does not have enough lamports to be rent-exempt\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: \"Program arithmetic overflowed\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: \"Failed to serialize or deserialize account data: $encodedData\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]: \"Builtin programs must consume compute units\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: \"Cross-program invocation call depth too deep\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: \"Computational budget exceeded\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: \"custom program error: #$code\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: \"instruction contains duplicate accounts\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]: \"instruction modifications of multiply-passed account differ\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: \"executable accounts must be rent exempt\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: \"instruction changed executable accounts data\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]: \"instruction changed the balance of an executable account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: \"instruction changed executable bit of an account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]: \"instruction modified data of an account it does not own\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]: \"instruction spent from the balance of an account it does not own\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: \"generic instruction error\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: \"Provided owner is not allowed\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: \"Account is immutable\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: \"Incorrect authority provided\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: \"incorrect program id for instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: \"insufficient funds for instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: \"invalid account data for instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: \"Invalid account owner\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: \"invalid program argument\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: \"program returned invalid error code\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: \"invalid instruction data\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: \"Failed to reallocate account data\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: \"Provided seeds do not result in a valid address\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]: \"Accounts data allocations exceeded the maximum allowed per transaction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: \"Max accounts exceeded\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: \"Max instruction trace length exceeded\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]: \"Length of the seed is too long for address generation\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: \"An account required by the instruction is missing\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: \"missing required signature for instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]: \"instruction illegally modified the program id of an account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: \"insufficient account keys for instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]: \"Cross-program invocation with unauthorized signer or writable account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]: \"Failed to create program execution environment\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: \"Program failed to compile\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: \"Program failed to complete\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: \"instruction modified data of a read-only account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]: \"instruction changed the balance of a read-only account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]: \"Cross-program invocation reentrancy not allowed for this instruction\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: \"instruction modified rent epoch of an account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]: \"sum of account balances before and after instruction do not match\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: \"instruction requires an initialized account\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: \"\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: \"Unsupported program id\",\n [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: \"Unsupported sysvar\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__INVALID_INSTRUCTION_PLAN_KIND]: \"Invalid instruction plan kind: $kind.\",\n [SOLANA_ERROR__INSTRUCTION_PLANS__EMPTY_INSTRUCTION_PLAN]: \"The provided instruction plan is empty.\",\n [SOLANA_ERROR__INSTRUCTION_PLANS__FAILED_TO_EXECUTE_TRANSACTION_PLAN]: \"The provided transaction plan failed to execute. See the `transactionPlanResult` attribute and the `cause` error for more details.\",\n [SOLANA_ERROR__INSTRUCTION_PLANS__MESSAGE_CANNOT_ACCOMMODATE_PLAN]: \"The provided message has insufficient capacity to accommodate the next instruction(s) in this plan. Expected at least $numBytesRequired free byte(s), got $numFreeBytes byte(s).\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__INVALID_TRANSACTION_PLAN_KIND]: \"Invalid transaction plan kind: $kind.\",\n [SOLANA_ERROR__INSTRUCTION_PLANS__MESSAGE_PACKER_ALREADY_COMPLETE]: \"No more instructions to pack; the message packer has completed the instruction plan.\",\n [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: \"The instruction does not have any accounts.\",\n [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: \"The instruction does not have any data.\",\n [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: \"Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.\",\n [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: \"Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.\",\n [SOLANA_ERROR__INVALID_NONCE]: \"The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: \"Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED]: \"Invariant violation: This data publisher does not publish to the channel named `$channelName`. Supported channels include $supportedChannelNames.\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]: \"Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING]: \"Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",\n [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: \"Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",\n [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: \"JSON-RPC error: Internal JSON-RPC error ($__serverMessage)\",\n [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: \"JSON-RPC error: Invalid method parameter(s) ($__serverMessage)\",\n [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: \"JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)\",\n [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: \"JSON-RPC error: The method does not exist / is not available ($__serverMessage)\",\n [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: \"JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)\",\n [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE]: \"Epoch rewards period still active at slot $slot\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE]: \"Failed to query long-term storage; please try again\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: \"Minimum context slot has not been reached\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: \"Node is unhealthy; behind by $numSlotsBehind slots\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: \"No snapshot\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: \"Transaction simulation failed\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_NOT_EPOCH_BOUNDARY]: \"Rewards cannot be found because slot $slot is not the epoch boundary. This may be due to gap in the queried node's local ledger or long-term storage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]: \"Transaction history is not available from this node\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: \"$__serverMessage\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: \"Transaction signature length mismatch\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]: \"Transaction signature verification failure\",\n [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: \"$__serverMessage\",\n [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: \"Key pair bytes must be of length 64, got $byteLength.\",\n [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: \"Expected private key bytes with length 32. Actual length: $actualLength.\",\n [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: \"Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.\",\n [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]: \"The provided private key does not match the provided public key.\",\n [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: \"Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.\",\n [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: \"Lamports value must be in the range [0, 2e64-1]\",\n [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: \"`$value` cannot be parsed as a `BigInt`\",\n [SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR]: \"$message\",\n [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: \"`$value` cannot be parsed as a `Number`\",\n [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: \"No nonce account could be found at address `$nonceAccountAddress`\",\n [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN]: \"The notification name must end in 'Notifications' and the API must supply a subscription plan creator function for the notification '$notificationName'.\",\n [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED]: \"WebSocket was closed before payload could be added to the send buffer\",\n [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED]: \"WebSocket connection closed\",\n [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT]: \"WebSocket failed to connect\",\n [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]: \"Failed to obtain a subscription id from the server\",\n [SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD]: \"Could not find an API plan for RPC method: `$method`\",\n [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: \"The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.\",\n [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: \"HTTP error ($statusCode): $message\",\n [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: \"HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.\",\n [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: \"Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.\",\n [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: \"The provided value does not implement the `KeyPairSigner` interface\",\n [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: \"The provided value does not implement the `MessageModifyingSigner` interface\",\n [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: \"The provided value does not implement the `MessagePartialSigner` interface\",\n [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: \"The provided value does not implement any of the `MessageSigner` interfaces\",\n [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: \"The provided value does not implement the `TransactionModifyingSigner` interface\",\n [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: \"The provided value does not implement the `TransactionPartialSigner` interface\",\n [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: \"The provided value does not implement the `TransactionSendingSigner` interface\",\n [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: \"The provided value does not implement any of the `TransactionSigner` interfaces\",\n [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]: \"More than one `TransactionSendingSigner` was identified.\",\n [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]: \"No `TransactionSendingSigner` was identified. Please provide a valid `TransactionWithSingleSendingSigner` transaction.\",\n [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]: \"Wallet account signers do not support signing multiple messages/transactions in a single operation\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: \"Cannot export a non-extractable key.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: \"No digest implementation could be found.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]: \"Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]: \"This runtime does not support the generation of Ed25519 key pairs.\\n\\nInstall @solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in environments that do not support Ed25519.\\n\\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]: \"No signature verification implementation could be found.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: \"No key generation implementation could be found.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: \"No signing implementation could be found.\",\n [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: \"No key export implementation could be found.\",\n [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: \"Timestamp value must be in the range [-(2n ** 63n), (2n ** 63n) - 1]. `$value` given\",\n [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]: \"Transaction processing left an account with an outstanding borrowed reference\",\n [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: \"Account in use\",\n [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: \"Account loaded twice\",\n [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]: \"Attempt to debit an account but found no record of a prior credit.\",\n [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]: \"Transaction loads an address table account that doesn't exist\",\n [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: \"This transaction has already been processed\",\n [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: \"Blockhash not found\",\n [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: \"Loader call chain is too deep\",\n [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]: \"Transactions are currently disabled due to cluster maintenance\",\n [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: \"Transaction contains a duplicate instruction ($index) that is not allowed\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: \"Insufficient funds for fee\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: \"Transaction results in an account ($accountIndex) with insufficient funds for rent\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: \"This account may not be used to pay transaction fees\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: \"Transaction contains an invalid account reference\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]: \"Transaction loads an address table account with invalid data\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]: \"Transaction address table lookup uses an invalid index\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]: \"Transaction loads an address table account with an invalid owner\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]: \"LoadedAccountsDataSizeLimit set for transaction must be greater than 0.\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]: \"This program may not be used for executing instructions\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]: \"Transaction leaves an account with a lower balance than rent-exempt minimum\",\n [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]: \"Transaction loads a writable account that cannot be written\",\n [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]: \"Transaction exceeded max loaded accounts data size cap\",\n [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]: \"Transaction requires a fee but has no signature present\",\n [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: \"Attempt to load a program that does not exist\",\n [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: \"Execution of the program referenced by account at index $accountIndex is temporarily restricted.\",\n [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: \"ResanitizationNeeded\",\n [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: \"Transaction failed to sanitize accounts offsets correctly\",\n [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: \"Transaction did not pass signature verification\",\n [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: \"Transaction locked too many accounts\",\n [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]: \"Sum of account balances before and after transaction do not match\",\n [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: \"The transaction failed with the error `$errorName`\",\n [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: \"Transaction version is unsupported\",\n [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]: \"Transaction would exceed account data limit within the block\",\n [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]: \"Transaction would exceed total account data limit\",\n [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]: \"Transaction would exceed max account limit within the block\",\n [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]: \"Transaction would exceed max Block Cost Limit\",\n [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: \"Transaction would exceed max Vote Cost Limit\",\n [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: \"Attempted to sign a transaction with an address that is not a signer for it\",\n [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: \"Transaction is missing an address at index: $index.\",\n [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]: \"Transaction has no expected signers therefore it cannot be encoded\",\n [SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT]: \"Transaction size $transactionSize exceeds limit of $transactionSizeLimit bytes\",\n [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: \"Transaction does not have a blockhash lifetime\",\n [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: \"Transaction is not a durable nonce transaction\",\n [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: \"Contents of these address lookup tables unknown: $lookupTableAddresses\",\n [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: \"Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved\",\n [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: \"No fee payer set in CompiledTransaction\",\n [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: \"Could not find program address at index $index\",\n [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]: \"Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more\",\n [SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT]: \"Transaction failed when it was simulated in order to estimate the compute unit consumption. The compute unit estimate provided is for a transaction that failed when simulated and may not be representative of the compute units this transaction would consume if successful. Inspect the `cause` property of this error to learn more\",\n [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: \"Transaction is missing a fee payer.\",\n [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]: \"Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.\",\n [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]: \"Transaction first instruction is not advance nonce account instruction.\",\n [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]: \"Transaction with no instructions cannot be durable nonce transaction.\",\n [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: \"This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees\",\n [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: \"This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable\",\n [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: \"The transaction message expected the transaction to have $numRequiredSignatures signatures, got $signaturesLength.\",\n [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: \"Transaction is missing signatures for addresses: $addresses.\",\n [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: \"Transaction version must be in the range [0, 127]. `$actualVersion` given\",\n [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_NOT_SUPPORTED]: \"This version of Kit does not support decoding transactions with version $unsupportedVersion. The current max supported version is 0.\",\n [SOLANA_ERROR__TRANSACTION__NONCE_ACCOUNT_CANNOT_BE_IN_LOOKUP_TABLE]: \"The transaction has a durable nonce lifetime (with nonce `$nonce`), but the nonce account address is in a lookup table. The lifetime constraint cannot be constructed without fetching the lookup tables for the transaction.\"\n};\n\n// src/message-formatter.ts\nvar START_INDEX = \"i\";\nvar TYPE = \"t\";\nfunction getHumanReadableErrorMessage(code, context = {}) {\n const messageFormatString = SolanaErrorMessages[code];\n if (messageFormatString.length === 0) {\n return \"\";\n }\n let state;\n function commitStateUpTo(endIndex) {\n if (state[TYPE] === 2 /* Variable */) {\n const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex);\n fragments.push(\n variableName in context ? (\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `${context[variableName]}`\n ) : `$${variableName}`\n );\n } else if (state[TYPE] === 1 /* Text */) {\n fragments.push(messageFormatString.slice(state[START_INDEX], endIndex));\n }\n }\n const fragments = [];\n messageFormatString.split(\"\").forEach((char, ii) => {\n if (ii === 0) {\n state = {\n [START_INDEX]: 0,\n [TYPE]: messageFormatString[0] === \"\\\\\" ? 0 /* EscapeSequence */ : messageFormatString[0] === \"$\" ? 2 /* Variable */ : 1 /* Text */\n };\n return;\n }\n let nextState;\n switch (state[TYPE]) {\n case 0 /* EscapeSequence */:\n nextState = { [START_INDEX]: ii, [TYPE]: 1 /* Text */ };\n break;\n case 1 /* Text */:\n if (char === \"\\\\\") {\n nextState = { [START_INDEX]: ii, [TYPE]: 0 /* EscapeSequence */ };\n } else if (char === \"$\") {\n nextState = { [START_INDEX]: ii, [TYPE]: 2 /* Variable */ };\n }\n break;\n case 2 /* Variable */:\n if (char === \"\\\\\") {\n nextState = { [START_INDEX]: ii, [TYPE]: 0 /* EscapeSequence */ };\n } else if (char === \"$\") {\n nextState = { [START_INDEX]: ii, [TYPE]: 2 /* Variable */ };\n } else if (!char.match(/\\w/)) {\n nextState = { [START_INDEX]: ii, [TYPE]: 1 /* Text */ };\n }\n break;\n }\n if (nextState) {\n if (state !== nextState) {\n commitStateUpTo(ii);\n }\n state = nextState;\n }\n });\n commitStateUpTo();\n return fragments.join(\"\");\n}\nfunction getErrorMessage(code, context = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n return getHumanReadableErrorMessage(code, context);\n } else {\n let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \\`npx @solana/errors decode -- ${code}`;\n if (Object.keys(context).length) {\n decodingAdviceMessage += ` '${encodeContextObject(context)}'`;\n }\n return `${decodingAdviceMessage}\\``;\n }\n}\n\n// src/error.ts\nfunction isSolanaError(e, code) {\n const isSolanaError2 = e instanceof Error && e.name === \"SolanaError\";\n if (isSolanaError2) {\n if (code !== void 0) {\n return e.context.__code === code;\n }\n return true;\n }\n return false;\n}\nvar SolanaError = class extends Error {\n /**\n * Indicates the root cause of this {@link SolanaError}, if any.\n *\n * For example, a transaction error might have an instruction error as its root cause. In this\n * case, you will be able to access the instruction error on the transaction error as `cause`.\n */\n cause = this.cause;\n /**\n * Contains context that can assist in understanding or recovering from a {@link SolanaError}.\n */\n context;\n constructor(...[code, contextAndErrorOptions]) {\n let context;\n let errorOptions;\n if (contextAndErrorOptions) {\n Object.entries(Object.getOwnPropertyDescriptors(contextAndErrorOptions)).forEach(([name, descriptor]) => {\n if (name === \"cause\") {\n errorOptions = { cause: descriptor.value };\n } else {\n if (context === void 0) {\n context = {};\n }\n Object.defineProperty(context, name, descriptor);\n }\n });\n }\n const message = getErrorMessage(code, context);\n super(message, errorOptions);\n this.context = context === void 0 ? {} : context;\n this.context.__code = code;\n this.name = \"SolanaError\";\n }\n};\n\n// src/stack-trace.ts\nfunction safeCaptureStackTrace(...args) {\n if (\"captureStackTrace\" in Error && typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(...args);\n }\n}\n\n// src/rpc-enum-errors.ts\nfunction getSolanaErrorFromRpcError({ errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }, constructorOpt) {\n let rpcErrorName;\n let rpcErrorContext;\n if (typeof rpcEnumError === \"string\") {\n rpcErrorName = rpcEnumError;\n } else {\n rpcErrorName = Object.keys(rpcEnumError)[0];\n rpcErrorContext = rpcEnumError[rpcErrorName];\n }\n const codeOffset = orderedErrorNames.indexOf(rpcErrorName);\n const errorCode = errorCodeBaseOffset + codeOffset;\n const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext);\n const err = new SolanaError(errorCode, errorContext);\n safeCaptureStackTrace(err, constructorOpt);\n return err;\n}\n\n// src/instruction-error.ts\nvar ORDERED_ERROR_NAMES = [\n // Keep synced with RPC source: https://github.com/anza-xyz/solana-sdk/blob/master/instruction-error/src/lib.rs\n // If this list ever gets too large, consider implementing a compression strategy like this:\n // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47\n \"GenericError\",\n \"InvalidArgument\",\n \"InvalidInstructionData\",\n \"InvalidAccountData\",\n \"AccountDataTooSmall\",\n \"InsufficientFunds\",\n \"IncorrectProgramId\",\n \"MissingRequiredSignature\",\n \"AccountAlreadyInitialized\",\n \"UninitializedAccount\",\n \"UnbalancedInstruction\",\n \"ModifiedProgramId\",\n \"ExternalAccountLamportSpend\",\n \"ExternalAccountDataModified\",\n \"ReadonlyLamportChange\",\n \"ReadonlyDataModified\",\n \"DuplicateAccountIndex\",\n \"ExecutableModified\",\n \"RentEpochModified\",\n \"NotEnoughAccountKeys\",\n \"AccountDataSizeChanged\",\n \"AccountNotExecutable\",\n \"AccountBorrowFailed\",\n \"AccountBorrowOutstanding\",\n \"DuplicateAccountOutOfSync\",\n \"Custom\",\n \"InvalidError\",\n \"ExecutableDataModified\",\n \"ExecutableLamportChange\",\n \"ExecutableAccountNotRentExempt\",\n \"UnsupportedProgramId\",\n \"CallDepth\",\n \"MissingAccount\",\n \"ReentrancyNotAllowed\",\n \"MaxSeedLengthExceeded\",\n \"InvalidSeeds\",\n \"InvalidRealloc\",\n \"ComputationalBudgetExceeded\",\n \"PrivilegeEscalation\",\n \"ProgramEnvironmentSetupFailure\",\n \"ProgramFailedToComplete\",\n \"ProgramFailedToCompile\",\n \"Immutable\",\n \"IncorrectAuthority\",\n \"BorshIoError\",\n \"AccountNotRentExempt\",\n \"InvalidAccountOwner\",\n \"ArithmeticOverflow\",\n \"UnsupportedSysvar\",\n \"IllegalOwner\",\n \"MaxAccountsDataAllocationsExceeded\",\n \"MaxAccountsExceeded\",\n \"MaxInstructionTraceLengthExceeded\",\n \"BuiltinProgramsMustConsumeComputeUnits\"\n];\nfunction getSolanaErrorFromInstructionError(index, instructionError) {\n const numberIndex = Number(index);\n return getSolanaErrorFromRpcError(\n {\n errorCodeBaseOffset: 4615001,\n getErrorContext(errorCode, rpcErrorName, rpcErrorContext) {\n if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) {\n return {\n errorName: rpcErrorName,\n index: numberIndex,\n ...rpcErrorContext !== void 0 ? { instructionErrorContext: rpcErrorContext } : null\n };\n } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) {\n return {\n code: Number(rpcErrorContext),\n index: numberIndex\n };\n }\n return { index: numberIndex };\n },\n orderedErrorNames: ORDERED_ERROR_NAMES,\n rpcEnumError: instructionError\n },\n getSolanaErrorFromInstructionError\n );\n}\n\n// src/transaction-error.ts\nvar ORDERED_ERROR_NAMES2 = [\n // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs\n // If this list ever gets too large, consider implementing a compression strategy like this:\n // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47\n \"AccountInUse\",\n \"AccountLoadedTwice\",\n \"AccountNotFound\",\n \"ProgramAccountNotFound\",\n \"InsufficientFundsForFee\",\n \"InvalidAccountForFee\",\n \"AlreadyProcessed\",\n \"BlockhashNotFound\",\n // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError`\n \"CallChainTooDeep\",\n \"MissingSignatureForFee\",\n \"InvalidAccountIndex\",\n \"SignatureFailure\",\n \"InvalidProgramForExecution\",\n \"SanitizeFailure\",\n \"ClusterMaintenance\",\n \"AccountBorrowOutstanding\",\n \"WouldExceedMaxBlockCostLimit\",\n \"UnsupportedVersion\",\n \"InvalidWritableAccount\",\n \"WouldExceedMaxAccountCostLimit\",\n \"WouldExceedAccountDataBlockLimit\",\n \"TooManyAccountLocks\",\n \"AddressLookupTableNotFound\",\n \"InvalidAddressLookupTableOwner\",\n \"InvalidAddressLookupTableData\",\n \"InvalidAddressLookupTableIndex\",\n \"InvalidRentPayingAccount\",\n \"WouldExceedMaxVoteCostLimit\",\n \"WouldExceedAccountDataTotalLimit\",\n \"DuplicateInstruction\",\n \"InsufficientFundsForRent\",\n \"MaxLoadedAccountsDataSizeExceeded\",\n \"InvalidLoadedAccountsDataSizeLimit\",\n \"ResanitizationNeeded\",\n \"ProgramExecutionTemporarilyRestricted\",\n \"UnbalancedTransaction\"\n];\nfunction getSolanaErrorFromTransactionError(transactionError) {\n if (typeof transactionError === \"object\" && \"InstructionError\" in transactionError) {\n return getSolanaErrorFromInstructionError(\n ...transactionError.InstructionError\n );\n }\n return getSolanaErrorFromRpcError(\n {\n errorCodeBaseOffset: 7050001,\n getErrorContext(errorCode, rpcErrorName, rpcErrorContext) {\n if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) {\n return {\n errorName: rpcErrorName,\n ...rpcErrorContext !== void 0 ? { transactionErrorContext: rpcErrorContext } : null\n };\n } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) {\n return {\n index: Number(rpcErrorContext)\n };\n } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT || errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED) {\n return {\n accountIndex: Number(rpcErrorContext.account_index)\n };\n }\n },\n orderedErrorNames: ORDERED_ERROR_NAMES2,\n rpcEnumError: transactionError\n },\n getSolanaErrorFromTransactionError\n );\n}\n\n// src/json-rpc-error.ts\nfunction getSolanaErrorFromJsonRpcError(putativeErrorResponse) {\n let out;\n if (isRpcErrorResponse(putativeErrorResponse)) {\n const { code: rawCode, data, message } = putativeErrorResponse;\n const code = Number(rawCode);\n if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) {\n const { err, ...preflightErrorContext } = data;\n const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null;\n out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, {\n ...preflightErrorContext,\n ...causeObject\n });\n } else {\n let errorContext;\n switch (code) {\n case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR:\n case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS:\n case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST:\n case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND:\n case SOLANA_ERROR__JSON_RPC__PARSE_ERROR:\n case SOLANA_ERROR__JSON_RPC__SCAN_ERROR:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE:\n case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION:\n errorContext = { __serverMessage: message };\n break;\n default:\n if (typeof data === \"object\" && !Array.isArray(data)) {\n errorContext = data;\n }\n }\n out = new SolanaError(code, errorContext);\n }\n } else {\n const message = typeof putativeErrorResponse === \"object\" && putativeErrorResponse !== null && \"message\" in putativeErrorResponse && typeof putativeErrorResponse.message === \"string\" ? putativeErrorResponse.message : \"Malformed JSON-RPC error with no message attribute\";\n out = new SolanaError(SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR, { error: putativeErrorResponse, message });\n }\n safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError);\n return out;\n}\nfunction isRpcErrorResponse(value) {\n return typeof value === \"object\" && value !== null && \"code\" in value && \"message\" in value && (typeof value.code === \"number\" || typeof value.code === \"bigint\") && typeof value.message === \"string\";\n}\n\nexport { SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND, SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED, SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT, SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT, SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND, SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED, SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS, SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH, SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY, SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS, SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE, SOLANA_ERROR__ADDRESSES__MALFORMED_PDA, SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED, SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED, SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE, SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER, SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE, SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE, SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED, SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS, SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH, SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE, SOLANA_ERROR__CODECS__EXPECTED_DECODER_TO_CONSUME_ENTIRE_BYTE_ARRAY, SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH, SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH, SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE, SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, SOLANA_ERROR__CODECS__INVALID_CONSTANT, SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT, SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT, SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT, SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS, SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE, SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE, SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE, SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE, SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT, SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW, SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR, SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS, SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH, SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED, SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM, SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX, SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC, SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT, SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED, SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE, SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED, SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED, SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND, SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR, SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER, SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE, SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY, SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID, SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC, SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS, SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED, SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED, SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED, SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED, SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT, SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE, SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID, SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS, SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION, SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE, SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE, SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE, SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED, SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE, SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED, SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED, SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION, SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT, SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN, SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID, SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR, SOLANA_ERROR__INSTRUCTION_PLANS__EMPTY_INSTRUCTION_PLAN, SOLANA_ERROR__INSTRUCTION_PLANS__FAILED_TO_EXECUTE_TRANSACTION_PLAN, SOLANA_ERROR__INSTRUCTION_PLANS__MESSAGE_CANNOT_ACCOMMODATE_PLAN, SOLANA_ERROR__INSTRUCTION_PLANS__MESSAGE_PACKER_ALREADY_COMPLETE, SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS, SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA, SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH, SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH, SOLANA_ERROR__INVALID_NONCE, SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING, SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED, SOLANA_ERROR__INVARIANT_VIOLATION__INVALID_INSTRUCTION_PLAN_KIND, SOLANA_ERROR__INVARIANT_VIOLATION__INVALID_TRANSACTION_PLAN_KIND, SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE, SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING, SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE, SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR, SOLANA_ERROR__JSON_RPC__INVALID_PARAMS, SOLANA_ERROR__JSON_RPC__INVALID_REQUEST, SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND, SOLANA_ERROR__JSON_RPC__PARSE_ERROR, SOLANA_ERROR__JSON_RPC__SCAN_ERROR, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_NOT_EPOCH_BOUNDARY, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION, SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH, SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH, SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH, SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY, SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE, SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE, SOLANA_ERROR__MALFORMED_BIGINT_STRING, SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR, SOLANA_ERROR__MALFORMED_NUMBER_STRING, SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT, SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID, SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD, SOLANA_ERROR__RPC__INTEGER_OVERFLOW, SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR, SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN, SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS, SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER, SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER, SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS, SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING, SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED, SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY, SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED, SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT, SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED, SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED, SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED, SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED, SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED, SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE, SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING, SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE, SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE, SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND, SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND, SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED, SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND, SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP, SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE, SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION, SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE, SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT, SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT, SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED, SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE, SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND, SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED, SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED, SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE, SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE, SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS, SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION, SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN, SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION, SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT, SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT, SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT, SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT, SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT, SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION, SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING, SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES, SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT, SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME, SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME, SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING, SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE, SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING, SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND, SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT, SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT, SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING, SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING, SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE, SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING, SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES, SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE, SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH, SOLANA_ERROR__TRANSACTION__NONCE_ACCOUNT_CANNOT_BE_IN_LOOKUP_TABLE, SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING, SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_NOT_SUPPORTED, SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE, SolanaError, getSolanaErrorFromInstructionError, getSolanaErrorFromJsonRpcError, getSolanaErrorFromTransactionError, isSolanaError, safeCaptureStackTrace };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","// src/pipe.ts\nfunction pipe(init, ...fns) {\n return fns.reduce((acc, fn) => fn(acc), init);\n}\n\nexport { pipe };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","// src/race.ts\nfunction isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nfunction addRaceContender(contender) {\n const deferreds = /* @__PURE__ */ new Set();\n const record = { deferreds, settled: false };\n Promise.resolve(contender).then(\n (value) => {\n for (const { resolve } of deferreds) {\n resolve(value);\n }\n deferreds.clear();\n record.settled = true;\n },\n (err) => {\n for (const { reject } of deferreds) {\n reject(err);\n }\n deferreds.clear();\n record.settled = true;\n }\n );\n return record;\n}\nvar wm = /* @__PURE__ */ new WeakMap();\nasync function safeRace(contenders) {\n let deferred;\n const result = new Promise((resolve, reject) => {\n deferred = { reject, resolve };\n for (const contender of contenders) {\n if (!isObject(contender)) {\n Promise.resolve(contender).then(resolve, reject);\n continue;\n }\n let record = wm.get(contender);\n if (record === void 0) {\n record = addRaceContender(contender);\n record.deferreds.add(deferred);\n wm.set(contender, record);\n } else if (record.settled) {\n Promise.resolve(contender).then(resolve, reject);\n } else {\n record.deferreds.add(deferred);\n }\n }\n });\n return await result.finally(() => {\n for (const contender of contenders) {\n if (isObject(contender)) {\n const record = wm.get(contender);\n record.deferreds.delete(deferred);\n }\n }\n });\n}\n\n// src/abortable.ts\nfunction getAbortablePromise(promise, abortSignal) {\n if (!abortSignal) {\n return promise;\n } else {\n return safeRace([\n // This promise only ever rejects if the signal is aborted. Otherwise it idles forever.\n // It's important that this come before the input promise; in the event of an abort, we\n // want to throw even if the input promise's result is ready\n new Promise((_, reject) => {\n if (abortSignal.aborted) {\n reject(abortSignal.reason);\n } else {\n abortSignal.addEventListener(\"abort\", function() {\n reject(this.reason);\n });\n }\n }),\n promise\n ]);\n }\n}\n\nexport { getAbortablePromise, safeRace };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","// src/parse-json-with-bigints.ts\nfunction parseJsonWithBigInts(json) {\n return JSON.parse(wrapIntegersInBigIntValueObject(json), (_, value) => {\n return isBigIntValueObject(value) ? unwrapBigIntValueObject(value) : value;\n });\n}\nfunction wrapIntegersInBigIntValueObject(json) {\n const out = [];\n let inQuote = false;\n for (let ii = 0; ii < json.length; ii++) {\n let isEscaped = false;\n if (json[ii] === \"\\\\\") {\n out.push(json[ii++]);\n isEscaped = !isEscaped;\n }\n if (json[ii] === '\"') {\n out.push(json[ii]);\n if (!isEscaped) {\n inQuote = !inQuote;\n }\n continue;\n }\n if (!inQuote) {\n const consumedNumber = consumeNumber(json, ii);\n if (consumedNumber?.length) {\n ii += consumedNumber.length - 1;\n if (consumedNumber.match(/\\.|[eE]-/)) {\n out.push(consumedNumber);\n } else {\n out.push(wrapBigIntValueObject(consumedNumber));\n }\n continue;\n }\n }\n out.push(json[ii]);\n }\n return out.join(\"\");\n}\nfunction consumeNumber(json, ii) {\n const JSON_NUMBER_REGEX = /^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/;\n if (!json[ii]?.match(/[-\\d]/)) {\n return null;\n }\n const numberMatch = json.slice(ii).match(JSON_NUMBER_REGEX);\n return numberMatch ? numberMatch[0] : null;\n}\nfunction wrapBigIntValueObject(value) {\n return `{\"$n\":\"${value}\"}`;\n}\nfunction unwrapBigIntValueObject({ $n }) {\n if ($n.match(/[eE]/)) {\n const [units, exponent] = $n.split(/[eE]/);\n return BigInt(units) * BigInt(10) ** BigInt(exponent);\n }\n return BigInt($n);\n}\nfunction isBigIntValueObject(value) {\n return !!value && typeof value === \"object\" && \"$n\" in value && typeof value.$n === \"string\";\n}\n\n// src/rpc-message.ts\nvar _nextMessageId = 0n;\nfunction getNextMessageId() {\n const id = _nextMessageId;\n _nextMessageId++;\n return id.toString();\n}\nfunction createRpcMessage(request) {\n return {\n id: getNextMessageId(),\n jsonrpc: \"2.0\",\n method: request.methodName,\n params: request.params\n };\n}\n\n// src/stringify-json-with-bigints.ts\nfunction stringifyJsonWithBigInts(value, space) {\n return unwrapBigIntValueObject2(\n JSON.stringify(value, (_, v) => typeof v === \"bigint\" ? wrapBigIntValueObject2(v) : v, space)\n );\n}\nfunction wrapBigIntValueObject2(value) {\n return { $n: `${value}` };\n}\nfunction unwrapBigIntValueObject2(value) {\n return value.replace(/\\{\\s*\"\\$n\"\\s*:\\s*\"(-?\\d+)\"\\s*\\}/g, \"$1\");\n}\n\nexport { createRpcMessage, parseJsonWithBigInts, stringifyJsonWithBigInts };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { SolanaError, SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD } from '@solana/errors';\nimport { createRpcMessage } from '@solana/rpc-spec-types';\n\n// src/rpc.ts\nfunction createRpc(rpcConfig) {\n return makeProxy(rpcConfig);\n}\nfunction makeProxy(rpcConfig) {\n return new Proxy(rpcConfig.api, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(target, p, receiver) {\n if (p === \"then\") {\n return void 0;\n }\n return function(...rawParams) {\n const methodName = p.toString();\n const getApiPlan = Reflect.get(target, methodName, receiver);\n if (!getApiPlan) {\n throw new SolanaError(SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD, {\n method: methodName,\n params: rawParams\n });\n }\n const apiPlan = getApiPlan(...rawParams);\n return createPendingRpcRequest(rpcConfig, apiPlan);\n };\n }\n });\n}\nfunction createPendingRpcRequest({ transport }, plan) {\n return {\n async send(options) {\n return await plan.execute({ signal: options?.abortSignal, transport });\n }\n };\n}\nfunction createJsonRpcApi(config) {\n return new Proxy({}, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(...args) {\n const [_, p] = args;\n const methodName = p.toString();\n return function(...rawParams) {\n const rawRequest = Object.freeze({ methodName, params: rawParams });\n const request = config?.requestTransformer ? config?.requestTransformer(rawRequest) : rawRequest;\n return Object.freeze({\n execute: async ({ signal, transport }) => {\n const payload = createRpcMessage(request);\n const response = await transport({ payload, signal });\n if (!config?.responseTransformer) {\n return response;\n }\n return config.responseTransformer(response, request);\n }\n });\n };\n }\n });\n}\n\n// src/rpc-transport.ts\nfunction isJsonRpcPayload(payload) {\n if (payload == null || typeof payload !== \"object\" || Array.isArray(payload)) {\n return false;\n }\n return \"jsonrpc\" in payload && payload.jsonrpc === \"2.0\" && \"method\" in payload && typeof payload.method === \"string\" && \"params\" in payload;\n}\n\nexport { createJsonRpcApi, createRpc, isJsonRpcPayload };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { pipe } from '@solana/functional';\nimport { getSolanaErrorFromJsonRpcError } from '@solana/errors';\n\n// src/request-transformer.ts\n\n// src/request-transformer-bigint-downcast-internal.ts\nfunction downcastNodeToNumberIfBigint(value) {\n return typeof value === \"bigint\" ? (\n // FIXME(solana-labs/solana/issues/30341) Create a data type to represent u64 in the Solana\n // JSON RPC implementation so that we can throw away this entire patcher instead of unsafely\n // downcasting `bigints` to `numbers`.\n Number(value)\n ) : value;\n}\n\n// src/tree-traversal.ts\nvar KEYPATH_WILDCARD = {};\nfunction getTreeWalker(visitors) {\n return function traverse(node, state) {\n if (Array.isArray(node)) {\n return node.map((element, ii) => {\n const nextState = {\n ...state,\n keyPath: [...state.keyPath, ii]\n };\n return traverse(element, nextState);\n });\n } else if (typeof node === \"object\" && node !== null) {\n const out = {};\n for (const propName in node) {\n if (!Object.prototype.hasOwnProperty.call(node, propName)) {\n continue;\n }\n const nextState = {\n ...state,\n keyPath: [...state.keyPath, propName]\n };\n out[propName] = traverse(node[propName], nextState);\n }\n return out;\n } else {\n return visitors.reduce((acc, visitNode) => visitNode(acc, state), node);\n }\n };\n}\nfunction getTreeWalkerRequestTransformer(visitors, initialState) {\n return (request) => {\n const traverse = getTreeWalker(visitors);\n return Object.freeze({\n ...request,\n params: traverse(request.params, initialState)\n });\n };\n}\nfunction getTreeWalkerResponseTransformer(visitors, initialState) {\n return (json) => getTreeWalker(visitors)(json, initialState);\n}\n\n// src/request-transformer-bigint-downcast.ts\nfunction getBigIntDowncastRequestTransformer() {\n return getTreeWalkerRequestTransformer([downcastNodeToNumberIfBigint], { keyPath: [] });\n}\n\n// src/request-transformer-default-commitment-internal.ts\nfunction applyDefaultCommitment({\n commitmentPropertyName,\n params,\n optionsObjectPositionInParams,\n overrideCommitment\n}) {\n const paramInTargetPosition = params[optionsObjectPositionInParams];\n if (\n // There's no config.\n paramInTargetPosition === void 0 || // There is a config object.\n paramInTargetPosition && typeof paramInTargetPosition === \"object\" && !Array.isArray(paramInTargetPosition)\n ) {\n if (\n // The config object already has a commitment set.\n paramInTargetPosition && commitmentPropertyName in paramInTargetPosition\n ) {\n if (!paramInTargetPosition[commitmentPropertyName] || paramInTargetPosition[commitmentPropertyName] === \"finalized\") {\n const nextParams = [...params];\n const {\n [commitmentPropertyName]: _,\n // eslint-disable-line @typescript-eslint/no-unused-vars\n ...rest\n } = paramInTargetPosition;\n if (Object.keys(rest).length > 0) {\n nextParams[optionsObjectPositionInParams] = rest;\n } else {\n if (optionsObjectPositionInParams === nextParams.length - 1) {\n nextParams.length--;\n } else {\n nextParams[optionsObjectPositionInParams] = void 0;\n }\n }\n return nextParams;\n }\n } else if (overrideCommitment !== \"finalized\") {\n const nextParams = [...params];\n nextParams[optionsObjectPositionInParams] = {\n ...paramInTargetPosition,\n [commitmentPropertyName]: overrideCommitment\n };\n return nextParams;\n }\n }\n return params;\n}\n\n// src/request-transformer-default-commitment.ts\nfunction getDefaultCommitmentRequestTransformer({\n defaultCommitment,\n optionsObjectPositionByMethod\n}) {\n return (request) => {\n const { params, methodName } = request;\n if (!Array.isArray(params)) {\n return request;\n }\n const optionsObjectPositionInParams = optionsObjectPositionByMethod[methodName];\n if (optionsObjectPositionInParams == null) {\n return request;\n }\n return Object.freeze({\n methodName,\n params: applyDefaultCommitment({\n commitmentPropertyName: methodName === \"sendTransaction\" ? \"preflightCommitment\" : \"commitment\",\n optionsObjectPositionInParams,\n overrideCommitment: defaultCommitment,\n params\n })\n });\n };\n}\n\n// src/request-transformer-integer-overflow-internal.ts\nfunction getIntegerOverflowNodeVisitor(onIntegerOverflow) {\n return (value, { keyPath }) => {\n if (typeof value === \"bigint\") {\n if (onIntegerOverflow && (value > Number.MAX_SAFE_INTEGER || value < -Number.MAX_SAFE_INTEGER)) {\n onIntegerOverflow(keyPath, value);\n }\n }\n return value;\n };\n}\n\n// src/request-transformer-integer-overflow.ts\nfunction getIntegerOverflowRequestTransformer(onIntegerOverflow) {\n return (request) => {\n const transformer = getTreeWalkerRequestTransformer(\n [getIntegerOverflowNodeVisitor((...args) => onIntegerOverflow(request, ...args))],\n { keyPath: [] }\n );\n return transformer(request);\n };\n}\n\n// src/request-transformer-options-object-position-config.ts\nvar OPTIONS_OBJECT_POSITION_BY_METHOD = {\n accountNotifications: 1,\n blockNotifications: 1,\n getAccountInfo: 1,\n getBalance: 1,\n getBlock: 1,\n getBlockHeight: 0,\n getBlockProduction: 0,\n getBlocks: 2,\n getBlocksWithLimit: 2,\n getEpochInfo: 0,\n getFeeForMessage: 1,\n getInflationGovernor: 0,\n getInflationReward: 1,\n getLargestAccounts: 0,\n getLatestBlockhash: 0,\n getLeaderSchedule: 1,\n getMinimumBalanceForRentExemption: 1,\n getMultipleAccounts: 1,\n getProgramAccounts: 1,\n getSignaturesForAddress: 1,\n getSlot: 0,\n getSlotLeader: 0,\n getStakeMinimumDelegation: 0,\n getSupply: 0,\n getTokenAccountBalance: 1,\n getTokenAccountsByDelegate: 2,\n getTokenAccountsByOwner: 2,\n getTokenLargestAccounts: 1,\n getTokenSupply: 1,\n getTransaction: 1,\n getTransactionCount: 0,\n getVoteAccounts: 0,\n isBlockhashValid: 1,\n logsNotifications: 1,\n programNotifications: 1,\n requestAirdrop: 2,\n sendTransaction: 1,\n signatureNotifications: 1,\n simulateTransaction: 1\n};\n\n// src/request-transformer.ts\nfunction getDefaultRequestTransformerForSolanaRpc(config) {\n const handleIntegerOverflow = config?.onIntegerOverflow;\n return (request) => {\n return pipe(\n request,\n handleIntegerOverflow ? getIntegerOverflowRequestTransformer(handleIntegerOverflow) : (r) => r,\n getBigIntDowncastRequestTransformer(),\n getDefaultCommitmentRequestTransformer({\n defaultCommitment: config?.defaultCommitment,\n optionsObjectPositionByMethod: OPTIONS_OBJECT_POSITION_BY_METHOD\n })\n );\n };\n}\n\n// src/response-transformer-bigint-upcast-internal.ts\nfunction getBigIntUpcastVisitor(allowedNumericKeyPaths) {\n return function upcastNodeToBigIntIfNumber(value, { keyPath }) {\n const isInteger = typeof value === \"number\" && Number.isInteger(value) || typeof value === \"bigint\";\n if (!isInteger) return value;\n if (keyPathIsAllowedToBeNumeric(keyPath, allowedNumericKeyPaths)) {\n return Number(value);\n } else {\n return BigInt(value);\n }\n };\n}\nfunction keyPathIsAllowedToBeNumeric(keyPath, allowedNumericKeyPaths) {\n return allowedNumericKeyPaths.some((prohibitedKeyPath) => {\n if (prohibitedKeyPath.length !== keyPath.length) {\n return false;\n }\n for (let ii = keyPath.length - 1; ii >= 0; ii--) {\n const keyPathPart = keyPath[ii];\n const prohibitedKeyPathPart = prohibitedKeyPath[ii];\n if (prohibitedKeyPathPart !== keyPathPart && (prohibitedKeyPathPart !== KEYPATH_WILDCARD || typeof keyPathPart !== \"number\")) {\n return false;\n }\n }\n return true;\n });\n}\n\n// src/response-transformer-bigint-upcast.ts\nfunction getBigIntUpcastResponseTransformer(allowedNumericKeyPaths) {\n return getTreeWalkerResponseTransformer([getBigIntUpcastVisitor(allowedNumericKeyPaths)], { keyPath: [] });\n}\n\n// src/response-transformer-result.ts\nfunction getResultResponseTransformer() {\n return (json) => json.result;\n}\nfunction getThrowSolanaErrorResponseTransformer() {\n return (json) => {\n const jsonRpcResponse = json;\n if (\"error\" in jsonRpcResponse) {\n throw getSolanaErrorFromJsonRpcError(jsonRpcResponse.error);\n }\n return jsonRpcResponse;\n };\n}\n\n// src/response-transformer.ts\nfunction getDefaultResponseTransformerForSolanaRpc(config) {\n return (response, request) => {\n const methodName = request.methodName;\n const keyPaths = config?.allowedNumericKeyPaths && methodName ? config.allowedNumericKeyPaths[methodName] : void 0;\n return pipe(\n response,\n (r) => getThrowSolanaErrorResponseTransformer()(r, request),\n (r) => getResultResponseTransformer()(r, request),\n (r) => getBigIntUpcastResponseTransformer(keyPaths ?? [])(r, request)\n );\n };\n}\nfunction getDefaultResponseTransformerForSolanaRpcSubscriptions(config) {\n return (response, request) => {\n const methodName = request.methodName;\n const keyPaths = config?.allowedNumericKeyPaths && methodName ? config.allowedNumericKeyPaths[methodName] : void 0;\n return pipe(response, (r) => getBigIntUpcastResponseTransformer(keyPaths ?? [])(r, request));\n };\n}\n\n// src/response-transformer-allowed-numeric-values.ts\nvar jsonParsedTokenAccountsConfigs = [\n // parsed Token/Token22 token account\n [\"data\", \"parsed\", \"info\", \"tokenAmount\", \"decimals\"],\n [\"data\", \"parsed\", \"info\", \"tokenAmount\", \"uiAmount\"],\n [\"data\", \"parsed\", \"info\", \"rentExemptReserve\", \"decimals\"],\n [\"data\", \"parsed\", \"info\", \"rentExemptReserve\", \"uiAmount\"],\n [\"data\", \"parsed\", \"info\", \"delegatedAmount\", \"decimals\"],\n [\"data\", \"parsed\", \"info\", \"delegatedAmount\", \"uiAmount\"],\n [\"data\", \"parsed\", \"info\", \"extensions\", KEYPATH_WILDCARD, \"state\", \"olderTransferFee\", \"transferFeeBasisPoints\"],\n [\"data\", \"parsed\", \"info\", \"extensions\", KEYPATH_WILDCARD, \"state\", \"newerTransferFee\", \"transferFeeBasisPoints\"],\n [\"data\", \"parsed\", \"info\", \"extensions\", KEYPATH_WILDCARD, \"state\", \"preUpdateAverageRate\"],\n [\"data\", \"parsed\", \"info\", \"extensions\", KEYPATH_WILDCARD, \"state\", \"currentRate\"]\n];\nvar jsonParsedAccountsConfigs = [\n ...jsonParsedTokenAccountsConfigs,\n // parsed AddressTableLookup account\n [\"data\", \"parsed\", \"info\", \"lastExtendedSlotStartIndex\"],\n // parsed Config account\n [\"data\", \"parsed\", \"info\", \"slashPenalty\"],\n [\"data\", \"parsed\", \"info\", \"warmupCooldownRate\"],\n // parsed Token/Token22 mint account\n [\"data\", \"parsed\", \"info\", \"decimals\"],\n // parsed Token/Token22 multisig account\n [\"data\", \"parsed\", \"info\", \"numRequiredSigners\"],\n [\"data\", \"parsed\", \"info\", \"numValidSigners\"],\n // parsed Stake account\n [\"data\", \"parsed\", \"info\", \"stake\", \"delegation\", \"warmupCooldownRate\"],\n // parsed Sysvar rent account\n [\"data\", \"parsed\", \"info\", \"exemptionThreshold\"],\n [\"data\", \"parsed\", \"info\", \"burnPercent\"],\n // parsed Vote account\n [\"data\", \"parsed\", \"info\", \"commission\"],\n [\"data\", \"parsed\", \"info\", \"votes\", KEYPATH_WILDCARD, \"confirmationCount\"]\n];\nvar innerInstructionsConfigs = [\n [\"index\"],\n [\"instructions\", KEYPATH_WILDCARD, \"accounts\", KEYPATH_WILDCARD],\n [\"instructions\", KEYPATH_WILDCARD, \"programIdIndex\"],\n [\"instructions\", KEYPATH_WILDCARD, \"stackHeight\"]\n];\nvar messageConfig = [\n [\"addressTableLookups\", KEYPATH_WILDCARD, \"writableIndexes\", KEYPATH_WILDCARD],\n [\"addressTableLookups\", KEYPATH_WILDCARD, \"readonlyIndexes\", KEYPATH_WILDCARD],\n [\"header\", \"numReadonlySignedAccounts\"],\n [\"header\", \"numReadonlyUnsignedAccounts\"],\n [\"header\", \"numRequiredSignatures\"],\n [\"instructions\", KEYPATH_WILDCARD, \"accounts\", KEYPATH_WILDCARD],\n [\"instructions\", KEYPATH_WILDCARD, \"programIdIndex\"],\n [\"instructions\", KEYPATH_WILDCARD, \"stackHeight\"]\n];\n\nexport { KEYPATH_WILDCARD, getBigIntDowncastRequestTransformer, getBigIntUpcastResponseTransformer, getDefaultCommitmentRequestTransformer, getDefaultRequestTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpcSubscriptions, getIntegerOverflowRequestTransformer, getResultResponseTransformer, getThrowSolanaErrorResponseTransformer, getTreeWalkerRequestTransformer, getTreeWalkerResponseTransformer, innerInstructionsConfigs, jsonParsedAccountsConfigs, jsonParsedTokenAccountsConfigs, messageConfig };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { createJsonRpcApi } from '@solana/rpc-spec';\nimport { getDefaultResponseTransformerForSolanaRpc, getDefaultRequestTransformerForSolanaRpc, jsonParsedAccountsConfigs, innerInstructionsConfigs, KEYPATH_WILDCARD, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';\n\n// src/index.ts\nfunction createSolanaRpcApi(config) {\n return createJsonRpcApi({\n requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),\n responseTransformer: getDefaultResponseTransformerForSolanaRpc({\n allowedNumericKeyPaths: getAllowedNumericKeypaths()\n })\n });\n}\nvar memoizedKeypaths;\nfunction getAllowedNumericKeypaths() {\n if (!memoizedKeypaths) {\n memoizedKeypaths = {\n getAccountInfo: jsonParsedAccountsConfigs.map((c) => [\"value\", ...c]),\n getBlock: [\n [\"transactions\", KEYPATH_WILDCARD, \"meta\", \"preTokenBalances\", KEYPATH_WILDCARD, \"accountIndex\"],\n [\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"preTokenBalances\",\n KEYPATH_WILDCARD,\n \"uiTokenAmount\",\n \"decimals\"\n ],\n [\"transactions\", KEYPATH_WILDCARD, \"meta\", \"postTokenBalances\", KEYPATH_WILDCARD, \"accountIndex\"],\n [\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"postTokenBalances\",\n KEYPATH_WILDCARD,\n \"uiTokenAmount\",\n \"decimals\"\n ],\n [\"transactions\", KEYPATH_WILDCARD, \"meta\", \"rewards\", KEYPATH_WILDCARD, \"commission\"],\n ...innerInstructionsConfigs.map((c) => [\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"innerInstructions\",\n KEYPATH_WILDCARD,\n ...c\n ]),\n ...messageConfig.map((c) => [\"transactions\", KEYPATH_WILDCARD, \"transaction\", \"message\", ...c]),\n [\"rewards\", KEYPATH_WILDCARD, \"commission\"]\n ],\n getClusterNodes: [\n [KEYPATH_WILDCARD, \"featureSet\"],\n [KEYPATH_WILDCARD, \"shredVersion\"]\n ],\n getInflationGovernor: [[\"initial\"], [\"foundation\"], [\"foundationTerm\"], [\"taper\"], [\"terminal\"]],\n getInflationRate: [[\"foundation\"], [\"total\"], [\"validator\"]],\n getInflationReward: [[KEYPATH_WILDCARD, \"commission\"]],\n getMultipleAccounts: jsonParsedAccountsConfigs.map((c) => [\"value\", KEYPATH_WILDCARD, ...c]),\n getProgramAccounts: jsonParsedAccountsConfigs.flatMap((c) => [\n [\"value\", KEYPATH_WILDCARD, \"account\", ...c],\n [KEYPATH_WILDCARD, \"account\", ...c]\n ]),\n getRecentPerformanceSamples: [[KEYPATH_WILDCARD, \"samplePeriodSecs\"]],\n getTokenAccountBalance: [\n [\"value\", \"decimals\"],\n [\"value\", \"uiAmount\"]\n ],\n getTokenAccountsByDelegate: jsonParsedTokenAccountsConfigs.map((c) => [\n \"value\",\n KEYPATH_WILDCARD,\n \"account\",\n ...c\n ]),\n getTokenAccountsByOwner: jsonParsedTokenAccountsConfigs.map((c) => [\n \"value\",\n KEYPATH_WILDCARD,\n \"account\",\n ...c\n ]),\n getTokenLargestAccounts: [\n [\"value\", KEYPATH_WILDCARD, \"decimals\"],\n [\"value\", KEYPATH_WILDCARD, \"uiAmount\"]\n ],\n getTokenSupply: [\n [\"value\", \"decimals\"],\n [\"value\", \"uiAmount\"]\n ],\n getTransaction: [\n [\"meta\", \"preTokenBalances\", KEYPATH_WILDCARD, \"accountIndex\"],\n [\"meta\", \"preTokenBalances\", KEYPATH_WILDCARD, \"uiTokenAmount\", \"decimals\"],\n [\"meta\", \"postTokenBalances\", KEYPATH_WILDCARD, \"accountIndex\"],\n [\"meta\", \"postTokenBalances\", KEYPATH_WILDCARD, \"uiTokenAmount\", \"decimals\"],\n [\"meta\", \"rewards\", KEYPATH_WILDCARD, \"commission\"],\n ...innerInstructionsConfigs.map((c) => [\"meta\", \"innerInstructions\", KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map((c) => [\"transaction\", \"message\", ...c])\n ],\n getVersion: [[\"feature-set\"]],\n getVoteAccounts: [\n [\"current\", KEYPATH_WILDCARD, \"commission\"],\n [\"delinquent\", KEYPATH_WILDCARD, \"commission\"]\n ],\n simulateTransaction: [\n [\"value\", \"loadedAccountsDataSize\"],\n ...jsonParsedAccountsConfigs.map((c) => [\"value\", \"accounts\", KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map((c) => [\"value\", \"innerInstructions\", KEYPATH_WILDCARD, ...c])\n ]\n };\n }\n return memoizedKeypaths;\n}\n\nexport { createSolanaRpcApi };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { SolanaError, SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR, SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN } from '@solana/errors';\nimport { stringifyJsonWithBigInts, parseJsonWithBigInts } from '@solana/rpc-spec-types';\nimport { isJsonRpcPayload } from '@solana/rpc-spec';\n\n// src/http-transport.ts\nvar DISALLOWED_HEADERS = {\n accept: true,\n \"content-length\": true,\n \"content-type\": true\n};\nvar FORBIDDEN_HEADERS = /* @__PURE__ */ Object.assign(\n {\n \"accept-charset\": true,\n \"access-control-request-headers\": true,\n \"access-control-request-method\": true,\n connection: true,\n \"content-length\": true,\n cookie: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n \"keep-alive\": true,\n \"permissions-policy\": true,\n // Prefix matching is implemented in code, below.\n // 'proxy-': true,\n // 'sec-': true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n via: true\n },\n { \"accept-encoding\": true },\n { origin: true } \n);\nfunction assertIsAllowedHttpRequestHeaders(headers) {\n const badHeaders = Object.keys(headers).filter((headerName) => {\n const lowercaseHeaderName = headerName.toLowerCase();\n return DISALLOWED_HEADERS[headerName.toLowerCase()] === true || FORBIDDEN_HEADERS[headerName.toLowerCase()] === true || lowercaseHeaderName.startsWith(\"proxy-\") || lowercaseHeaderName.startsWith(\"sec-\");\n });\n if (badHeaders.length > 0) {\n throw new SolanaError(SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN, {\n headers: badHeaders\n });\n }\n}\nfunction normalizeHeaders(headers) {\n const out = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out;\n}\n\n// src/http-transport.ts\nvar didWarnDispatcherWasSuppliedInNonNodeEnvironment = false;\nfunction warnDispatcherWasSuppliedInNonNodeEnvironment() {\n if (didWarnDispatcherWasSuppliedInNonNodeEnvironment) {\n return;\n }\n didWarnDispatcherWasSuppliedInNonNodeEnvironment = true;\n console.warn(\n \"You have supplied a `Dispatcher` to `createHttpTransport()`. It has been ignored because Undici dispatchers only work in Node environments. To eliminate this warning, omit the `dispatcher_NODE_ONLY` property from your config when running in a non-Node environment.\"\n );\n}\nfunction createHttpTransport(config) {\n if (process.env.NODE_ENV !== \"production\" && true && \"dispatcher_NODE_ONLY\" in config) {\n warnDispatcherWasSuppliedInNonNodeEnvironment();\n }\n const { fromJson, headers, toJson, url } = config;\n if (process.env.NODE_ENV !== \"production\" && headers) {\n assertIsAllowedHttpRequestHeaders(headers);\n }\n let dispatcherConfig;\n const customHeaders = headers && normalizeHeaders(headers);\n return async function makeHttpRequest({\n payload,\n signal\n }) {\n const body = toJson ? toJson(payload) : JSON.stringify(payload);\n const requestInfo = {\n ...dispatcherConfig,\n body,\n headers: {\n ...customHeaders,\n // Keep these headers lowercase so they will override any user-supplied headers above.\n accept: \"application/json\",\n \"content-length\": body.length.toString(),\n \"content-type\": \"application/json; charset=utf-8\"\n },\n method: \"POST\",\n signal\n };\n const response = await fetch(url, requestInfo);\n if (!response.ok) {\n throw new SolanaError(SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR, {\n headers: response.headers,\n message: response.statusText,\n statusCode: response.status\n });\n }\n if (fromJson) {\n return fromJson(await response.text(), payload);\n }\n return await response.json();\n };\n}\nvar SOLANA_RPC_METHODS = [\n \"getAccountInfo\",\n \"getBalance\",\n \"getBlock\",\n \"getBlockCommitment\",\n \"getBlockHeight\",\n \"getBlockProduction\",\n \"getBlocks\",\n \"getBlocksWithLimit\",\n \"getBlockTime\",\n \"getClusterNodes\",\n \"getEpochInfo\",\n \"getEpochSchedule\",\n \"getFeeForMessage\",\n \"getFirstAvailableBlock\",\n \"getGenesisHash\",\n \"getHealth\",\n \"getHighestSnapshotSlot\",\n \"getIdentity\",\n \"getInflationGovernor\",\n \"getInflationRate\",\n \"getInflationReward\",\n \"getLargestAccounts\",\n \"getLatestBlockhash\",\n \"getLeaderSchedule\",\n \"getMaxRetransmitSlot\",\n \"getMaxShredInsertSlot\",\n \"getMinimumBalanceForRentExemption\",\n \"getMultipleAccounts\",\n \"getProgramAccounts\",\n \"getRecentPerformanceSamples\",\n \"getRecentPrioritizationFees\",\n \"getSignaturesForAddress\",\n \"getSignatureStatuses\",\n \"getSlot\",\n \"getSlotLeader\",\n \"getSlotLeaders\",\n \"getStakeMinimumDelegation\",\n \"getSupply\",\n \"getTokenAccountBalance\",\n \"getTokenAccountsByDelegate\",\n \"getTokenAccountsByOwner\",\n \"getTokenLargestAccounts\",\n \"getTokenSupply\",\n \"getTransaction\",\n \"getTransactionCount\",\n \"getVersion\",\n \"getVoteAccounts\",\n \"index\",\n \"isBlockhashValid\",\n \"minimumLedgerSlot\",\n \"requestAirdrop\",\n \"sendTransaction\",\n \"simulateTransaction\"\n];\nfunction isSolanaRequest(payload) {\n return isJsonRpcPayload(payload) && SOLANA_RPC_METHODS.includes(payload.method);\n}\n\n// src/http-transport-for-solana-rpc.ts\nfunction createHttpTransportForSolanaRpc(config) {\n return createHttpTransport({\n ...config,\n fromJson: (rawResponse, payload) => isSolanaRequest(payload) ? parseJsonWithBigInts(rawResponse) : JSON.parse(rawResponse),\n toJson: (payload) => isSolanaRequest(payload) ? stringifyJsonWithBigInts(payload) : JSON.stringify(payload)\n });\n}\n\nexport { createHttpTransport, createHttpTransportForSolanaRpc };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","// src/index.ts\nvar objToString = Object.prototype.toString;\nvar objKeys = Object.keys || function(obj) {\n const keys = [];\n for (const name in obj) {\n keys.push(name);\n }\n return keys;\n};\nfunction stringify(val, isArrayProp) {\n let i, max, str, keys, key, propVal, toStr;\n if (val === true) {\n return \"true\";\n }\n if (val === false) {\n return \"false\";\n }\n switch (typeof val) {\n case \"object\":\n if (val === null) {\n return null;\n } else if (\"toJSON\" in val && typeof val.toJSON === \"function\") {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n if (toStr === \"[object Array]\") {\n str = \"[\";\n max = val.length - 1;\n for (i = 0; i < max; i++) {\n str += stringify(val[i], true) + \",\";\n }\n if (max > -1) {\n str += stringify(val[i], true);\n }\n return str + \"]\";\n } else if (toStr === \"[object Object]\") {\n keys = objKeys(val).sort();\n max = keys.length;\n str = \"\";\n i = 0;\n while (i < max) {\n key = keys[i];\n propVal = stringify(val[key], false);\n if (propVal !== void 0) {\n if (str) {\n str += \",\";\n }\n str += JSON.stringify(key) + \":\" + propVal;\n }\n i++;\n }\n return \"{\" + str + \"}\";\n } else {\n return JSON.stringify(val);\n }\n }\n case \"function\":\n case \"undefined\":\n return isArrayProp ? null : void 0;\n case \"bigint\":\n return `${val.toString()}n`;\n case \"string\":\n return JSON.stringify(val);\n default:\n return isFinite(val) ? val : null;\n }\n}\nfunction index_default(val) {\n const returnVal = stringify(val, false);\n if (returnVal !== void 0) {\n return \"\" + returnVal;\n }\n}\n\nexport { index_default as default };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { createSolanaRpcApi } from '@solana/rpc-api';\nexport * from '@solana/rpc-api';\nimport { createRpc, isJsonRpcPayload } from '@solana/rpc-spec';\nexport * from '@solana/rpc-spec';\nimport { SolanaError, SOLANA_ERROR__RPC__INTEGER_OVERFLOW, safeCaptureStackTrace } from '@solana/errors';\nimport { pipe } from '@solana/functional';\nimport { createHttpTransportForSolanaRpc } from '@solana/rpc-transport-http';\nimport fastStableStringify from '@solana/fast-stable-stringify';\n\n// src/index.ts\nfunction createSolanaJsonRpcIntegerOverflowError(methodName, keyPath, value) {\n let argumentLabel = \"\";\n if (typeof keyPath[0] === \"number\") {\n const argPosition = keyPath[0] + 1;\n const lastDigit = argPosition % 10;\n const lastTwoDigits = argPosition % 100;\n if (lastDigit == 1 && lastTwoDigits != 11) {\n argumentLabel = argPosition + \"st\";\n } else if (lastDigit == 2 && lastTwoDigits != 12) {\n argumentLabel = argPosition + \"nd\";\n } else if (lastDigit == 3 && lastTwoDigits != 13) {\n argumentLabel = argPosition + \"rd\";\n } else {\n argumentLabel = argPosition + \"th\";\n }\n } else {\n argumentLabel = `\\`${keyPath[0].toString()}\\``;\n }\n const path = keyPath.length > 1 ? keyPath.slice(1).map((pathPart) => typeof pathPart === \"number\" ? `[${pathPart}]` : pathPart).join(\".\") : void 0;\n const error = new SolanaError(SOLANA_ERROR__RPC__INTEGER_OVERFLOW, {\n argumentLabel,\n keyPath,\n methodName,\n optionalPathLabel: path ? ` at path \\`${path}\\`` : \"\",\n value,\n ...path !== void 0 ? { path } : void 0\n });\n safeCaptureStackTrace(error, createSolanaJsonRpcIntegerOverflowError);\n return error;\n}\n\n// src/rpc-default-config.ts\nvar DEFAULT_RPC_CONFIG = {\n defaultCommitment: \"confirmed\",\n onIntegerOverflow(request, keyPath, value) {\n throw createSolanaJsonRpcIntegerOverflowError(request.methodName, keyPath, value);\n }\n};\n\n// ../event-target-impl/dist/index.browser.mjs\nvar o = globalThis.AbortController;\n\n// src/rpc-request-coalescer.ts\nvar EXPLICIT_ABORT_TOKEN;\nfunction createExplicitAbortToken() {\n return process.env.NODE_ENV !== \"production\" ? {\n EXPLICIT_ABORT_TOKEN: \"This object is thrown from the request that underlies a series of coalesced requests when the last request in that series aborts\"\n } : {};\n}\nfunction getRpcTransportWithRequestCoalescing(transport, getDeduplicationKey) {\n let coalescedRequestsByDeduplicationKey;\n return async function makeCoalescedHttpRequest(request) {\n const { payload, signal } = request;\n const deduplicationKey = getDeduplicationKey(payload);\n if (deduplicationKey === void 0) {\n return await transport(request);\n }\n if (!coalescedRequestsByDeduplicationKey) {\n queueMicrotask(() => {\n coalescedRequestsByDeduplicationKey = void 0;\n });\n coalescedRequestsByDeduplicationKey = {};\n }\n if (coalescedRequestsByDeduplicationKey[deduplicationKey] == null) {\n const abortController = new o();\n const responsePromise = (async () => {\n try {\n return await transport({\n ...request,\n signal: abortController.signal\n });\n } catch (e) {\n if (e === (EXPLICIT_ABORT_TOKEN ||= createExplicitAbortToken())) {\n return;\n }\n throw e;\n }\n })();\n coalescedRequestsByDeduplicationKey[deduplicationKey] = {\n abortController,\n numConsumers: 0,\n responsePromise\n };\n }\n const coalescedRequest = coalescedRequestsByDeduplicationKey[deduplicationKey];\n coalescedRequest.numConsumers++;\n if (signal) {\n const responsePromise = coalescedRequest.responsePromise;\n return await new Promise((resolve, reject) => {\n const handleAbort = (e) => {\n signal.removeEventListener(\"abort\", handleAbort);\n coalescedRequest.numConsumers -= 1;\n queueMicrotask(() => {\n if (coalescedRequest.numConsumers === 0) {\n const abortController = coalescedRequest.abortController;\n abortController.abort(EXPLICIT_ABORT_TOKEN ||= createExplicitAbortToken());\n }\n });\n reject(e.target.reason);\n };\n signal.addEventListener(\"abort\", handleAbort);\n responsePromise.then(resolve).catch(reject).finally(() => {\n signal.removeEventListener(\"abort\", handleAbort);\n });\n });\n } else {\n return await coalescedRequest.responsePromise;\n }\n };\n}\nfunction getSolanaRpcPayloadDeduplicationKey(payload) {\n return isJsonRpcPayload(payload) ? fastStableStringify([payload.method, payload.params]) : void 0;\n}\n\n// src/rpc-transport.ts\nfunction normalizeHeaders(headers) {\n const out = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out;\n}\nfunction createDefaultRpcTransport(config) {\n return pipe(\n createHttpTransportForSolanaRpc({\n ...config,\n headers: {\n ...false,\n ...config.headers ? normalizeHeaders(config.headers) : void 0,\n ...{\n // Keep these headers lowercase so they will override any user-supplied headers above.\n \"solana-client\": `js/${\"5.0.0\"}` \n }\n }\n }),\n (transport) => getRpcTransportWithRequestCoalescing(transport, getSolanaRpcPayloadDeduplicationKey)\n );\n}\n\n// src/rpc.ts\nfunction createSolanaRpc(clusterUrl, config) {\n return createSolanaRpcFromTransport(createDefaultRpcTransport({ url: clusterUrl, ...config }));\n}\nfunction createSolanaRpcFromTransport(transport) {\n return createRpc({\n api: createSolanaRpcApi(DEFAULT_RPC_CONFIG),\n transport\n });\n}\n\nexport { DEFAULT_RPC_CONFIG, createDefaultRpcTransport, createSolanaRpc, createSolanaRpcFromTransport };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { SolanaError, SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING, SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE } from '@solana/errors';\n\n// src/async-iterable.ts\n\n// ../event-target-impl/dist/index.browser.mjs\nvar o = globalThis.AbortController;\nvar t = globalThis.EventTarget;\n\n// src/async-iterable.ts\nvar EXPLICIT_ABORT_TOKEN;\nfunction createExplicitAbortToken() {\n return Symbol(\n process.env.NODE_ENV !== \"production\" ? \"This symbol is thrown from a socket's iterator when the connection is explicitly aborted by the user\" : void 0\n );\n}\nvar UNINITIALIZED = Symbol();\nfunction createAsyncIterableFromDataPublisher({\n abortSignal,\n dataChannelName,\n dataPublisher,\n errorChannelName\n}) {\n const iteratorState = /* @__PURE__ */ new Map();\n function publishErrorToAllIterators(reason) {\n for (const [iteratorKey, state] of iteratorState.entries()) {\n if (state.__hasPolled) {\n iteratorState.delete(iteratorKey);\n state.onError(reason);\n } else {\n state.publishQueue.push({\n __type: 1 /* ERROR */,\n err: reason\n });\n }\n }\n }\n const abortController = new o();\n abortSignal.addEventListener(\"abort\", () => {\n abortController.abort();\n publishErrorToAllIterators(EXPLICIT_ABORT_TOKEN ||= createExplicitAbortToken());\n });\n const options = { signal: abortController.signal };\n let firstError = UNINITIALIZED;\n dataPublisher.on(\n errorChannelName,\n (err) => {\n if (firstError === UNINITIALIZED) {\n firstError = err;\n abortController.abort();\n publishErrorToAllIterators(err);\n }\n },\n options\n );\n dataPublisher.on(\n dataChannelName,\n (data) => {\n iteratorState.forEach((state, iteratorKey) => {\n if (state.__hasPolled) {\n const { onData } = state;\n iteratorState.set(iteratorKey, { __hasPolled: false, publishQueue: [] });\n onData(data);\n } else {\n state.publishQueue.push({\n __type: 0 /* DATA */,\n data\n });\n }\n });\n },\n options\n );\n return {\n async *[Symbol.asyncIterator]() {\n if (abortSignal.aborted) {\n return;\n }\n if (firstError !== UNINITIALIZED) {\n throw firstError;\n }\n const iteratorKey = Symbol();\n iteratorState.set(iteratorKey, { __hasPolled: false, publishQueue: [] });\n try {\n while (true) {\n const state = iteratorState.get(iteratorKey);\n if (!state) {\n throw new SolanaError(SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING);\n }\n if (state.__hasPolled) {\n throw new SolanaError(\n SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE\n );\n }\n const publishQueue = state.publishQueue;\n try {\n if (publishQueue.length) {\n state.publishQueue = [];\n for (const item of publishQueue) {\n if (item.__type === 0 /* DATA */) {\n yield item.data;\n } else {\n throw item.err;\n }\n }\n } else {\n yield await new Promise((resolve, reject) => {\n iteratorState.set(iteratorKey, {\n __hasPolled: true,\n onData: resolve,\n onError: reject\n });\n });\n }\n } catch (e) {\n if (e === (EXPLICIT_ABORT_TOKEN ||= createExplicitAbortToken())) {\n return;\n } else {\n throw e;\n }\n }\n }\n } finally {\n iteratorState.delete(iteratorKey);\n }\n }\n };\n}\n\n// src/data-publisher.ts\nfunction getDataPublisherFromEventEmitter(eventEmitter) {\n return {\n on(channelName, subscriber, options) {\n function innerListener(ev) {\n if (ev instanceof CustomEvent) {\n const data = ev.detail;\n subscriber(data);\n } else {\n subscriber();\n }\n }\n eventEmitter.addEventListener(channelName, innerListener, options);\n return () => {\n eventEmitter.removeEventListener(channelName, innerListener);\n };\n }\n };\n}\n\n// src/demultiplex.ts\nfunction demultiplexDataPublisher(publisher, sourceChannelName, messageTransformer) {\n let innerPublisherState;\n const eventTarget = new t();\n const demultiplexedDataPublisher = getDataPublisherFromEventEmitter(eventTarget);\n return {\n ...demultiplexedDataPublisher,\n on(channelName, subscriber, options) {\n if (!innerPublisherState) {\n const innerPublisherUnsubscribe = publisher.on(sourceChannelName, (sourceMessage) => {\n const transformResult = messageTransformer(sourceMessage);\n if (!transformResult) {\n return;\n }\n const [destinationChannelName, message] = transformResult;\n eventTarget.dispatchEvent(\n new CustomEvent(destinationChannelName, {\n detail: message\n })\n );\n });\n innerPublisherState = {\n dispose: innerPublisherUnsubscribe,\n numSubscribers: 0\n };\n }\n innerPublisherState.numSubscribers++;\n const unsubscribe = demultiplexedDataPublisher.on(channelName, subscriber, options);\n let isActive = true;\n function handleUnsubscribe() {\n if (!isActive) {\n return;\n }\n isActive = false;\n options?.signal.removeEventListener(\"abort\", handleUnsubscribe);\n innerPublisherState.numSubscribers--;\n if (innerPublisherState.numSubscribers === 0) {\n innerPublisherState.dispose();\n innerPublisherState = void 0;\n }\n unsubscribe();\n }\n options?.signal.addEventListener(\"abort\", handleUnsubscribe);\n return handleUnsubscribe;\n }\n };\n}\n\nexport { createAsyncIterableFromDataPublisher, demultiplexDataPublisher, getDataPublisherFromEventEmitter };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { SolanaError, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN, getSolanaErrorFromJsonRpcError, SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID, SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED } from '@solana/errors';\nimport { createAsyncIterableFromDataPublisher, demultiplexDataPublisher } from '@solana/subscribable';\nimport { safeRace } from '@solana/promises';\nimport { createRpcMessage } from '@solana/rpc-spec-types';\n\n// src/rpc-subscriptions.ts\nfunction createSubscriptionRpc(rpcConfig) {\n return new Proxy(rpcConfig.api, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(target, p, receiver) {\n if (p === \"then\") {\n return void 0;\n }\n return function(...rawParams) {\n const notificationName = p.toString();\n const createRpcSubscriptionPlan = Reflect.get(target, notificationName, receiver);\n if (!createRpcSubscriptionPlan) {\n throw new SolanaError(SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN, {\n notificationName\n });\n }\n const subscriptionPlan = createRpcSubscriptionPlan(...rawParams);\n return createPendingRpcSubscription(rpcConfig.transport, subscriptionPlan);\n };\n }\n });\n}\nfunction createPendingRpcSubscription(transport, subscriptionsPlan) {\n return {\n async subscribe({ abortSignal }) {\n const notificationsDataPublisher = await transport({\n signal: abortSignal,\n ...subscriptionsPlan\n });\n return createAsyncIterableFromDataPublisher({\n abortSignal,\n dataChannelName: \"notification\",\n dataPublisher: notificationsDataPublisher,\n errorChannelName: \"error\"\n });\n }\n };\n}\n\n// src/rpc-subscriptions-api.ts\nfunction createRpcSubscriptionsApi(config) {\n return new Proxy({}, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(...args) {\n const [_, p] = args;\n const methodName = p.toString();\n return function(...params) {\n const rawRequest = { methodName, params };\n const request = config.requestTransformer ? config.requestTransformer(rawRequest) : rawRequest;\n return {\n execute(planConfig) {\n return config.planExecutor({ ...planConfig, request });\n },\n request\n };\n };\n }\n });\n}\n\n// src/rpc-subscriptions-channel.ts\nfunction transformChannelInboundMessages(channel, transform) {\n return Object.freeze({\n ...channel,\n on(type, subscriber, options) {\n if (type !== \"message\") {\n return channel.on(\n type,\n subscriber,\n options\n );\n }\n return channel.on(\n \"message\",\n (message) => subscriber(transform(message)),\n options\n );\n }\n });\n}\nfunction transformChannelOutboundMessages(channel, transform) {\n return Object.freeze({\n ...channel,\n send: (message) => channel.send(transform(message))\n });\n}\n\n// ../event-target-impl/dist/index.browser.mjs\nvar o = globalThis.AbortController;\nvar subscriberCountBySubscriptionIdByChannel = /* @__PURE__ */ new WeakMap();\nfunction decrementSubscriberCountAndReturnNewCount(channel, subscriptionId) {\n return augmentSubscriberCountAndReturnNewCount(-1, channel, subscriptionId);\n}\nfunction incrementSubscriberCount(channel, subscriptionId) {\n augmentSubscriberCountAndReturnNewCount(1, channel, subscriptionId);\n}\nfunction getSubscriberCountBySubscriptionIdForChannel(channel) {\n let subscriberCountBySubscriptionId = subscriberCountBySubscriptionIdByChannel.get(channel);\n if (!subscriberCountBySubscriptionId) {\n subscriberCountBySubscriptionIdByChannel.set(channel, subscriberCountBySubscriptionId = {});\n }\n return subscriberCountBySubscriptionId;\n}\nfunction augmentSubscriberCountAndReturnNewCount(amount, channel, subscriptionId) {\n if (subscriptionId === void 0) {\n return;\n }\n const subscriberCountBySubscriptionId = getSubscriberCountBySubscriptionIdForChannel(channel);\n if (!subscriberCountBySubscriptionId[subscriptionId] && amount > 0) {\n subscriberCountBySubscriptionId[subscriptionId] = 0;\n }\n const newCount = amount + subscriberCountBySubscriptionId[subscriptionId];\n if (newCount <= 0) {\n delete subscriberCountBySubscriptionId[subscriptionId];\n } else {\n subscriberCountBySubscriptionId[subscriptionId] = newCount;\n }\n return newCount;\n}\nvar cache = /* @__PURE__ */ new WeakMap();\nfunction getMemoizedDemultiplexedNotificationPublisherFromChannelAndResponseTransformer(channel, subscribeRequest, responseTransformer) {\n let publisherByResponseTransformer = cache.get(channel);\n if (!publisherByResponseTransformer) {\n cache.set(channel, publisherByResponseTransformer = /* @__PURE__ */ new WeakMap());\n }\n const responseTransformerKey = responseTransformer ?? channel;\n let publisher = publisherByResponseTransformer.get(responseTransformerKey);\n if (!publisher) {\n publisherByResponseTransformer.set(\n responseTransformerKey,\n publisher = demultiplexDataPublisher(channel, \"message\", (rawMessage) => {\n const message = rawMessage;\n if (!(\"method\" in message)) {\n return;\n }\n const transformedNotification = responseTransformer ? responseTransformer(message.params.result, subscribeRequest) : message.params.result;\n return [`notification:${message.params.subscription}`, transformedNotification];\n })\n );\n }\n return publisher;\n}\nasync function executeRpcPubSubSubscriptionPlan({\n channel,\n responseTransformer,\n signal,\n subscribeRequest,\n unsubscribeMethodName\n}) {\n let subscriptionId;\n channel.on(\n \"error\",\n () => {\n subscriptionId = void 0;\n subscriberCountBySubscriptionIdByChannel.delete(channel);\n },\n { signal }\n );\n const abortPromise = new Promise((_, reject) => {\n function handleAbort() {\n if (decrementSubscriberCountAndReturnNewCount(channel, subscriptionId) === 0) {\n const unsubscribePayload = createRpcMessage({\n methodName: unsubscribeMethodName,\n params: [subscriptionId]\n });\n subscriptionId = void 0;\n channel.send(unsubscribePayload).catch(() => {\n });\n }\n reject(this.reason);\n }\n if (signal.aborted) {\n handleAbort.call(signal);\n } else {\n signal.addEventListener(\"abort\", handleAbort);\n }\n });\n const subscribePayload = createRpcMessage(subscribeRequest);\n await channel.send(subscribePayload);\n const subscriptionIdPromise = new Promise((resolve, reject) => {\n const abortController = new o();\n signal.addEventListener(\"abort\", abortController.abort.bind(abortController));\n const options = { signal: abortController.signal };\n channel.on(\n \"error\",\n (err) => {\n abortController.abort();\n reject(err);\n },\n options\n );\n channel.on(\n \"message\",\n (message) => {\n if (message && typeof message === \"object\" && \"id\" in message && message.id === subscribePayload.id) {\n abortController.abort();\n if (\"error\" in message) {\n reject(getSolanaErrorFromJsonRpcError(message.error));\n } else {\n resolve(message.result);\n }\n }\n },\n options\n );\n });\n subscriptionId = await safeRace([abortPromise, subscriptionIdPromise]);\n if (subscriptionId == null) {\n throw new SolanaError(SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID);\n }\n incrementSubscriberCount(channel, subscriptionId);\n const notificationPublisher = getMemoizedDemultiplexedNotificationPublisherFromChannelAndResponseTransformer(\n channel,\n subscribeRequest,\n responseTransformer\n );\n const notificationKey = `notification:${subscriptionId}`;\n return {\n on(type, listener, options) {\n switch (type) {\n case \"notification\":\n return notificationPublisher.on(\n notificationKey,\n listener,\n options\n );\n case \"error\":\n return channel.on(\n \"error\",\n listener,\n options\n );\n default:\n throw new SolanaError(SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED, {\n channelName: type,\n supportedChannelNames: [\"notification\", \"error\"]\n });\n }\n }\n };\n}\n\nexport { createRpcSubscriptionsApi, createSubscriptionRpc, executeRpcPubSubSubscriptionPlan, transformChannelInboundMessages, transformChannelOutboundMessages };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { createRpcSubscriptionsApi, executeRpcPubSubSubscriptionPlan } from '@solana/rpc-subscriptions-spec';\nimport { getDefaultRequestTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpcSubscriptions, jsonParsedAccountsConfigs, KEYPATH_WILDCARD } from '@solana/rpc-transformers';\n\n// src/index.ts\nfunction createSolanaRpcSubscriptionsApi_INTERNAL(config) {\n const requestTransformer = getDefaultRequestTransformerForSolanaRpc(config);\n const responseTransformer = getDefaultResponseTransformerForSolanaRpcSubscriptions({\n allowedNumericKeyPaths: getAllowedNumericKeypaths()\n });\n return createRpcSubscriptionsApi({\n planExecutor({ request, ...rest }) {\n return executeRpcPubSubSubscriptionPlan({\n ...rest,\n responseTransformer,\n subscribeRequest: { ...request, methodName: request.methodName.replace(/Notifications$/, \"Subscribe\") },\n unsubscribeMethodName: request.methodName.replace(/Notifications$/, \"Unsubscribe\")\n });\n },\n requestTransformer\n });\n}\nfunction createSolanaRpcSubscriptionsApi(config) {\n return createSolanaRpcSubscriptionsApi_INTERNAL(config);\n}\nfunction createSolanaRpcSubscriptionsApi_UNSTABLE(config) {\n return createSolanaRpcSubscriptionsApi_INTERNAL(\n config\n );\n}\nvar memoizedKeypaths;\nfunction getAllowedNumericKeypaths() {\n if (!memoizedKeypaths) {\n memoizedKeypaths = {\n accountNotifications: jsonParsedAccountsConfigs.map((c) => [\"value\", ...c]),\n blockNotifications: [\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"preTokenBalances\",\n KEYPATH_WILDCARD,\n \"accountIndex\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"preTokenBalances\",\n KEYPATH_WILDCARD,\n \"uiTokenAmount\",\n \"decimals\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"postTokenBalances\",\n KEYPATH_WILDCARD,\n \"accountIndex\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"postTokenBalances\",\n KEYPATH_WILDCARD,\n \"uiTokenAmount\",\n \"decimals\"\n ],\n [\"value\", \"block\", \"transactions\", KEYPATH_WILDCARD, \"meta\", \"rewards\", KEYPATH_WILDCARD, \"commission\"],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"innerInstructions\",\n KEYPATH_WILDCARD,\n \"index\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"innerInstructions\",\n KEYPATH_WILDCARD,\n \"instructions\",\n KEYPATH_WILDCARD,\n \"programIdIndex\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"meta\",\n \"innerInstructions\",\n KEYPATH_WILDCARD,\n \"instructions\",\n KEYPATH_WILDCARD,\n \"accounts\",\n KEYPATH_WILDCARD\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"addressTableLookups\",\n KEYPATH_WILDCARD,\n \"writableIndexes\",\n KEYPATH_WILDCARD\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"addressTableLookups\",\n KEYPATH_WILDCARD,\n \"readonlyIndexes\",\n KEYPATH_WILDCARD\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"instructions\",\n KEYPATH_WILDCARD,\n \"programIdIndex\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"instructions\",\n KEYPATH_WILDCARD,\n \"accounts\",\n KEYPATH_WILDCARD\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"header\",\n \"numReadonlySignedAccounts\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"header\",\n \"numReadonlyUnsignedAccounts\"\n ],\n [\n \"value\",\n \"block\",\n \"transactions\",\n KEYPATH_WILDCARD,\n \"transaction\",\n \"message\",\n \"header\",\n \"numRequiredSignatures\"\n ],\n [\"value\", \"block\", \"rewards\", KEYPATH_WILDCARD, \"commission\"]\n ],\n programNotifications: jsonParsedAccountsConfigs.flatMap((c) => [\n [\"value\", KEYPATH_WILDCARD, \"account\", ...c],\n [KEYPATH_WILDCARD, \"account\", ...c]\n ])\n };\n }\n return memoizedKeypaths;\n}\n\nexport { createSolanaRpcSubscriptionsApi, createSolanaRpcSubscriptionsApi_UNSTABLE };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { SolanaError, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED } from '@solana/errors';\nimport { getDataPublisherFromEventEmitter } from '@solana/subscribable';\n\n// src/websocket-channel.ts\nvar t = globalThis.EventTarget;\n\n// ../ws-impl/dist/index.browser.mjs\nvar e = globalThis.WebSocket;\n\n// src/websocket-channel.ts\nvar NORMAL_CLOSURE_CODE = 1e3;\nfunction createWebSocketChannel({\n sendBufferHighWatermark,\n signal,\n url\n}) {\n if (signal.aborted) {\n return Promise.reject(signal.reason);\n }\n let bufferDrainWatcher;\n let hasConnected = false;\n const listenerRemovers = /* @__PURE__ */ new Set();\n function cleanupListeners() {\n listenerRemovers.forEach((r) => {\n r();\n });\n listenerRemovers.clear();\n }\n function handleAbort() {\n cleanupListeners();\n if (!hasConnected) {\n rejectOpen(signal.reason);\n }\n if (webSocket.readyState !== e.CLOSED && webSocket.readyState !== e.CLOSING) {\n webSocket.close(NORMAL_CLOSURE_CODE);\n }\n }\n function handleClose(ev) {\n cleanupListeners();\n bufferDrainWatcher?.onCancel();\n signal.removeEventListener(\"abort\", handleAbort);\n webSocket.removeEventListener(\"close\", handleClose);\n webSocket.removeEventListener(\"error\", handleError);\n webSocket.removeEventListener(\"message\", handleMessage);\n webSocket.removeEventListener(\"open\", handleOpen);\n if (!signal.aborted && !(ev.wasClean && ev.code === NORMAL_CLOSURE_CODE)) {\n eventTarget.dispatchEvent(\n new CustomEvent(\"error\", {\n detail: new SolanaError(SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED, {\n cause: ev\n })\n })\n );\n }\n }\n function handleError(ev) {\n if (signal.aborted) {\n return;\n }\n if (!hasConnected) {\n const failedToConnectError = new SolanaError(SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT, {\n errorEvent: ev\n });\n rejectOpen(failedToConnectError);\n eventTarget.dispatchEvent(\n new CustomEvent(\"error\", {\n detail: failedToConnectError\n })\n );\n }\n }\n function handleMessage(ev) {\n if (signal.aborted) {\n return;\n }\n eventTarget.dispatchEvent(new CustomEvent(\"message\", { detail: ev.data }));\n }\n const eventTarget = new t();\n const dataPublisher = getDataPublisherFromEventEmitter(eventTarget);\n function handleOpen() {\n hasConnected = true;\n resolveOpen({\n ...dataPublisher,\n async send(message) {\n if (webSocket.readyState !== e.OPEN) {\n throw new SolanaError(SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED);\n }\n if (!bufferDrainWatcher && webSocket.bufferedAmount > sendBufferHighWatermark) {\n let onCancel;\n const promise = new Promise((resolve, reject) => {\n const intervalId = setInterval(() => {\n if (webSocket.readyState !== e.OPEN || !(webSocket.bufferedAmount > sendBufferHighWatermark)) {\n clearInterval(intervalId);\n bufferDrainWatcher = void 0;\n resolve();\n }\n }, 16);\n onCancel = () => {\n bufferDrainWatcher = void 0;\n clearInterval(intervalId);\n reject(\n new SolanaError(\n SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED\n )\n );\n };\n });\n bufferDrainWatcher = {\n onCancel,\n promise\n };\n }\n if (bufferDrainWatcher) {\n if (ArrayBuffer.isView(message) && !(message instanceof DataView)) {\n const TypedArrayConstructor = message.constructor;\n message = new TypedArrayConstructor(message);\n }\n await bufferDrainWatcher.promise;\n }\n webSocket.send(message);\n }\n });\n }\n const webSocket = new e(url);\n signal.addEventListener(\"abort\", handleAbort);\n webSocket.addEventListener(\"close\", handleClose);\n webSocket.addEventListener(\"error\", handleError);\n webSocket.addEventListener(\"message\", handleMessage);\n webSocket.addEventListener(\"open\", handleOpen);\n let rejectOpen;\n let resolveOpen;\n return new Promise((resolve, reject) => {\n rejectOpen = reject;\n resolveOpen = resolve;\n });\n}\n\nexport { createWebSocketChannel };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","import { createSolanaRpcSubscriptionsApi } from '@solana/rpc-subscriptions-api';\nexport * from '@solana/rpc-subscriptions-api';\nimport { transformChannelInboundMessages, transformChannelOutboundMessages, createSubscriptionRpc } from '@solana/rpc-subscriptions-spec';\nexport * from '@solana/rpc-subscriptions-spec';\nimport { isSolanaError, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED, SolanaError, SOLANA_ERROR__RPC__INTEGER_OVERFLOW, safeCaptureStackTrace } from '@solana/errors';\nimport { createWebSocketChannel } from '@solana/rpc-subscriptions-channel-websocket';\nimport { pipe } from '@solana/functional';\nimport { parseJsonWithBigInts, stringifyJsonWithBigInts } from '@solana/rpc-spec-types';\nimport fastStableStringify from '@solana/fast-stable-stringify';\n\n// src/index.ts\nfunction createSolanaJsonRpcIntegerOverflowError(methodName, keyPath, value) {\n let argumentLabel = \"\";\n if (typeof keyPath[0] === \"number\") {\n const argPosition = keyPath[0] + 1;\n const lastDigit = argPosition % 10;\n const lastTwoDigits = argPosition % 100;\n if (lastDigit == 1 && lastTwoDigits != 11) {\n argumentLabel = argPosition + \"st\";\n } else if (lastDigit == 2 && lastTwoDigits != 12) {\n argumentLabel = argPosition + \"nd\";\n } else if (lastDigit == 3 && lastTwoDigits != 13) {\n argumentLabel = argPosition + \"rd\";\n } else {\n argumentLabel = argPosition + \"th\";\n }\n } else {\n argumentLabel = `\\`${keyPath[0].toString()}\\``;\n }\n const path = keyPath.length > 1 ? keyPath.slice(1).map((pathPart) => typeof pathPart === \"number\" ? `[${pathPart}]` : pathPart).join(\".\") : void 0;\n const error = new SolanaError(SOLANA_ERROR__RPC__INTEGER_OVERFLOW, {\n argumentLabel,\n keyPath,\n methodName,\n optionalPathLabel: path ? ` at path \\`${path}\\`` : \"\",\n value,\n ...path !== void 0 ? { path } : void 0\n });\n safeCaptureStackTrace(error, createSolanaJsonRpcIntegerOverflowError);\n return error;\n}\n\n// src/rpc-default-config.ts\nvar DEFAULT_RPC_SUBSCRIPTIONS_CONFIG = {\n defaultCommitment: \"confirmed\",\n onIntegerOverflow(request, keyPath, value) {\n throw createSolanaJsonRpcIntegerOverflowError(request.methodName, keyPath, value);\n }\n};\n\n// ../event-target-impl/dist/index.browser.mjs\nvar o = globalThis.AbortController;\n\n// src/rpc-subscriptions-autopinger.ts\nvar PING_PAYLOAD = {\n jsonrpc: \"2.0\",\n method: \"ping\"\n};\nfunction getRpcSubscriptionsChannelWithAutoping({\n abortSignal: callerAbortSignal,\n channel,\n intervalMs\n}) {\n let intervalId;\n function sendPing() {\n channel.send(PING_PAYLOAD).catch((e) => {\n if (isSolanaError(e, SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED)) {\n pingerAbortController.abort();\n }\n });\n }\n function restartPingTimer() {\n clearInterval(intervalId);\n intervalId = setInterval(sendPing, intervalMs);\n }\n const pingerAbortController = new o();\n pingerAbortController.signal.addEventListener(\"abort\", () => {\n clearInterval(intervalId);\n });\n callerAbortSignal.addEventListener(\"abort\", () => {\n pingerAbortController.abort();\n });\n channel.on(\n \"error\",\n () => {\n pingerAbortController.abort();\n },\n { signal: pingerAbortController.signal }\n );\n channel.on(\"message\", restartPingTimer, { signal: pingerAbortController.signal });\n if (globalThis.navigator.onLine) {\n restartPingTimer();\n }\n {\n globalThis.addEventListener(\n \"offline\",\n function handleOffline() {\n clearInterval(intervalId);\n },\n { signal: pingerAbortController.signal }\n );\n globalThis.addEventListener(\n \"online\",\n function handleOnline() {\n sendPing();\n restartPingTimer();\n },\n { signal: pingerAbortController.signal }\n );\n }\n return {\n ...channel,\n send(...args) {\n if (!pingerAbortController.signal.aborted) {\n restartPingTimer();\n }\n return channel.send(...args);\n }\n };\n}\n\n// src/rpc-subscriptions-channel-pool-internal.ts\nfunction createChannelPool() {\n return {\n entries: [],\n freeChannelIndex: -1\n };\n}\n\n// src/rpc-subscriptions-channel-pool.ts\nfunction getChannelPoolingChannelCreator(createChannel, { maxSubscriptionsPerChannel, minChannels }) {\n const pool = createChannelPool();\n function recomputeFreeChannelIndex() {\n if (pool.entries.length < minChannels) {\n pool.freeChannelIndex = -1;\n return;\n }\n let mostFreeChannel;\n for (let ii = 0; ii < pool.entries.length; ii++) {\n const nextPoolIndex = (pool.freeChannelIndex + ii + 2) % pool.entries.length;\n const nextPoolEntry = (\n // Start from the item two positions after the current item. This way, the\n // search will finish on the item after the current one. This ensures that, if\n // any channels tie for having the most capacity, the one that will be chosen is\n // the one immediately to the current one's right (wrapping around).\n pool.entries[nextPoolIndex]\n );\n if (nextPoolEntry.subscriptionCount < maxSubscriptionsPerChannel && (!mostFreeChannel || mostFreeChannel.subscriptionCount >= nextPoolEntry.subscriptionCount)) {\n mostFreeChannel = {\n poolIndex: nextPoolIndex,\n subscriptionCount: nextPoolEntry.subscriptionCount\n };\n }\n }\n pool.freeChannelIndex = mostFreeChannel?.poolIndex ?? -1;\n }\n return function getExistingChannelWithMostCapacityOrCreateChannel({ abortSignal }) {\n let poolEntry;\n function destroyPoolEntry() {\n const index = pool.entries.findIndex((entry) => entry === poolEntry);\n pool.entries.splice(index, 1);\n poolEntry.dispose();\n recomputeFreeChannelIndex();\n }\n if (pool.freeChannelIndex === -1) {\n const abortController = new o();\n const newChannelPromise = createChannel({ abortSignal: abortController.signal });\n newChannelPromise.then((newChannel) => {\n newChannel.on(\"error\", destroyPoolEntry, { signal: abortController.signal });\n }).catch(destroyPoolEntry);\n poolEntry = {\n channel: newChannelPromise,\n dispose() {\n abortController.abort();\n },\n subscriptionCount: 0\n };\n pool.entries.push(poolEntry);\n } else {\n poolEntry = pool.entries[pool.freeChannelIndex];\n }\n poolEntry.subscriptionCount++;\n abortSignal.addEventListener(\"abort\", function destroyConsumer() {\n poolEntry.subscriptionCount--;\n if (poolEntry.subscriptionCount === 0) {\n destroyPoolEntry();\n } else if (pool.freeChannelIndex !== -1) {\n pool.freeChannelIndex--;\n recomputeFreeChannelIndex();\n }\n });\n recomputeFreeChannelIndex();\n return poolEntry.channel;\n };\n}\nfunction getRpcSubscriptionsChannelWithJSONSerialization(channel) {\n return pipe(\n channel,\n (c) => transformChannelInboundMessages(c, JSON.parse),\n (c) => transformChannelOutboundMessages(c, JSON.stringify)\n );\n}\nfunction getRpcSubscriptionsChannelWithBigIntJSONSerialization(channel) {\n return pipe(\n channel,\n (c) => transformChannelInboundMessages(c, parseJsonWithBigInts),\n (c) => transformChannelOutboundMessages(c, stringifyJsonWithBigInts)\n );\n}\n\n// src/rpc-subscriptions-channel.ts\nfunction createDefaultSolanaRpcSubscriptionsChannelCreator(config) {\n return createDefaultRpcSubscriptionsChannelCreatorImpl({\n ...config,\n jsonSerializer: getRpcSubscriptionsChannelWithBigIntJSONSerialization\n });\n}\nfunction createDefaultRpcSubscriptionsChannelCreator(config) {\n return createDefaultRpcSubscriptionsChannelCreatorImpl({\n ...config,\n jsonSerializer: getRpcSubscriptionsChannelWithJSONSerialization\n });\n}\nfunction createDefaultRpcSubscriptionsChannelCreatorImpl(config) {\n if (/^wss?:/i.test(config.url) === false) {\n const protocolMatch = config.url.match(/^([^:]+):/);\n throw new DOMException(\n protocolMatch ? `Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${protocolMatch[1]}:' is not allowed.` : `Failed to construct 'WebSocket': The URL '${config.url}' is invalid.`\n );\n }\n const { intervalMs, ...rest } = config;\n const createDefaultRpcSubscriptionsChannel = ({ abortSignal }) => {\n return createWebSocketChannel({\n ...rest,\n sendBufferHighWatermark: config.sendBufferHighWatermark ?? // Let 128KB of data into the WebSocket buffer before buffering it in the app.\n 131072,\n signal: abortSignal\n }).then(config.jsonSerializer).then(\n (channel) => getRpcSubscriptionsChannelWithAutoping({\n abortSignal,\n channel,\n intervalMs: intervalMs ?? 5e3\n })\n );\n };\n return getChannelPoolingChannelCreator(createDefaultRpcSubscriptionsChannel, {\n maxSubscriptionsPerChannel: config.maxSubscriptionsPerChannel ?? /**\n * A note about this default. The idea here is that, because some RPC providers impose\n * an upper limit on the number of subscriptions you can make per channel, we must\n * choose a number low enough to avoid hitting that limit. Without knowing what provider\n * a given person is using, or what their limit is, we have to choose the lowest of all\n * known limits. As of this writing (October 2024) that is the public mainnet RPC node\n * (api.mainnet-beta.solana.com) at 100 subscriptions.\n */\n 100,\n minChannels: config.minChannels ?? 1\n });\n}\nfunction getRpcSubscriptionsTransportWithSubscriptionCoalescing(transport) {\n const cache = /* @__PURE__ */ new Map();\n return function rpcSubscriptionsTransportWithSubscriptionCoalescing(config) {\n const { request, signal } = config;\n const subscriptionConfigurationHash = fastStableStringify([request.methodName, request.params]);\n let cachedDataPublisherPromise = cache.get(subscriptionConfigurationHash);\n if (!cachedDataPublisherPromise) {\n const abortController = new o();\n const dataPublisherPromise = transport({\n ...config,\n signal: abortController.signal\n });\n dataPublisherPromise.then((dataPublisher) => {\n dataPublisher.on(\n \"error\",\n () => {\n cache.delete(subscriptionConfigurationHash);\n abortController.abort();\n },\n { signal: abortController.signal }\n );\n }).catch(() => {\n });\n cache.set(\n subscriptionConfigurationHash,\n cachedDataPublisherPromise = {\n abortController,\n dataPublisherPromise,\n numSubscribers: 0\n }\n );\n }\n cachedDataPublisherPromise.numSubscribers++;\n signal.addEventListener(\n \"abort\",\n () => {\n cachedDataPublisherPromise.numSubscribers--;\n if (cachedDataPublisherPromise.numSubscribers === 0) {\n queueMicrotask(() => {\n if (cachedDataPublisherPromise.numSubscribers === 0) {\n cache.delete(subscriptionConfigurationHash);\n cachedDataPublisherPromise.abortController.abort();\n }\n });\n }\n },\n { signal: cachedDataPublisherPromise.abortController.signal }\n );\n return cachedDataPublisherPromise.dataPublisherPromise;\n };\n}\nfunction createDefaultRpcSubscriptionsTransport({\n createChannel\n}) {\n return pipe(\n createRpcSubscriptionsTransportFromChannelCreator(\n createChannel\n ),\n (transport) => getRpcSubscriptionsTransportWithSubscriptionCoalescing(transport)\n );\n}\nfunction createRpcSubscriptionsTransportFromChannelCreator(createChannel) {\n return async ({ execute, signal }) => {\n const channel = await createChannel({ abortSignal: signal });\n return await execute({ channel, signal });\n };\n}\nfunction createSolanaRpcSubscriptionsImpl(clusterUrl, config) {\n const transport = createDefaultRpcSubscriptionsTransport({\n createChannel: createDefaultSolanaRpcSubscriptionsChannelCreator({ ...config, url: clusterUrl })\n });\n return createSolanaRpcSubscriptionsFromTransport(transport);\n}\nfunction createSolanaRpcSubscriptions(clusterUrl, config) {\n return createSolanaRpcSubscriptionsImpl(clusterUrl, config);\n}\nfunction createSolanaRpcSubscriptions_UNSTABLE(clusterUrl, config) {\n return createSolanaRpcSubscriptionsImpl(\n clusterUrl,\n config\n );\n}\nfunction createSolanaRpcSubscriptionsFromTransport(transport) {\n return createSubscriptionRpc({\n api: createSolanaRpcSubscriptionsApi(DEFAULT_RPC_SUBSCRIPTIONS_CONFIG),\n transport\n });\n}\n\nexport { DEFAULT_RPC_SUBSCRIPTIONS_CONFIG, createDefaultRpcSubscriptionsChannelCreator, createDefaultRpcSubscriptionsTransport, createDefaultSolanaRpcSubscriptionsChannelCreator, createRpcSubscriptionsTransportFromChannelCreator, createSolanaRpcSubscriptions, createSolanaRpcSubscriptionsFromTransport, createSolanaRpcSubscriptions_UNSTABLE, getChannelPoolingChannelCreator, getRpcSubscriptionsChannelWithAutoping, getRpcSubscriptionsChannelWithBigIntJSONSerialization, getRpcSubscriptionsChannelWithJSONSerialization, getRpcSubscriptionsTransportWithSubscriptionCoalescing };\n//# sourceMappingURL=index.browser.mjs.map\n//# sourceMappingURL=index.browser.mjs.map","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nObject.defineProperty(exports, '__esModule', { value: true })\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n const BASE_MAP = new Uint8Array(256)\n for (let j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (let i = 0; i < ALPHABET.length; i++) {\n const x = ALPHABET.charAt(i)\n const xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n const BASE = ALPHABET.length\n const LEADER = ALPHABET.charAt(0)\n const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n // eslint-disable-next-line no-empty\n if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n let zeroes = 0\n let length = 0\n let pbegin = 0\n const pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n const size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n const b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n let carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n let i = 0\n for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n let it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n let str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n let psz = 0\n // Skip and count leading '1's.\n let zeroes = 0\n let length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n const b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Find code of next character\n const charCode = source.charCodeAt(psz)\n // Base map can not be indexed using char code\n if (charCode > 255) { return }\n // Decode character\n let carry = BASE_MAP[charCode]\n // Invalid character\n if (carry === 255) { return }\n let i = 0\n for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n let it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n const vch = new Uint8Array(zeroes + (size - it4))\n let j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n const buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode,\n decodeUnsafe,\n decode\n }\n}\nexports.default = base\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","import { WebSessionManager as SessionManager, createSessionWithPrivy, buildSetDocumentsTransaction, convertRemainingAccounts } from '@pooflabs/core';\nimport { setCurrentUser } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { PublicKey, Connection, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { createSolanaRpc, createSolanaRpcSubscriptions } from '@solana/kit';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport bs58 from 'bs58';\nconst SURFNET_RPC_URL = \"https://surfpool.fly.dev\";\nlet React;\nlet ReactDOM;\nlet privyImports;\nlet privySolana;\n// Only load React and Privy dependencies if we're in a browser\nif (typeof window !== 'undefined') {\n React = require('react');\n ReactDOM = require('react-dom/client');\n privyImports = require('@privy-io/react-auth');\n privySolana = require('@privy-io/react-auth/solana');\n}\nconst getDefaultPrivyConfig = () => ({\n appId: \"cm4ve714908o27dk2yurpnfhd\",\n config: {\n embeddedWallets: {\n solana: {\n createOnLogin: \"users-without-wallets\"\n }\n },\n appearance: {\n walletChainType: 'solana-only'\n },\n externalWallets: { solana: { connectors: privySolana.toSolanaWalletConnectors() } }\n }\n});\nexport class PrivyWalletProvider {\n constructor(appName, appLogoUrl, privyConfig, networkUrl = null) {\n this.containerElement = null;\n this.chainId = 'solana:mainnet';\n this.root = null;\n this.privyMethods = null;\n this.pendingLogin = null;\n // This is used to store the pending transaction until the wallet is connected for workaround for the wallet not being connected after login completion\n this.pendingTransaction = null;\n // This is used to store pending signTransaction calls until the wallet is connected\n this.pendingSignTransaction = null;\n // This is used to store pending signMessage calls until the wallet is connected\n this.pendingSignMessage = null;\n // This is used to store pending signAndSubmitTransaction calls until the wallet is connected\n this.pendingSignAndSubmitTransaction = null;\n this.networkUrl = networkUrl;\n if (typeof window === 'undefined') {\n throw new Error('PrivyWalletProvider can only be instantiated in a browser environment');\n }\n if (PrivyWalletProvider.instance) {\n return PrivyWalletProvider.instance;\n }\n this.containerElement = null;\n this.root = null;\n this.privyMethods = null;\n this.privyConfig = privyConfig !== null && privyConfig !== void 0 ? privyConfig : getDefaultPrivyConfig();\n // Only use the appName and appLogoUrl if no privyConfig is provided\n if (privyConfig == null) {\n if (appName != null && appName != '') {\n this.privyConfig.config.appearance.landingHeader = appName;\n }\n if (appLogoUrl != null && appLogoUrl != '') {\n this.privyConfig.config.appearance.logo = appLogoUrl;\n }\n }\n // Ensure externalWallets connectors are always configured — required for\n // useWallets().ready to resolve even when no browser extension is present\n if (!this.privyConfig.config.externalWallets && privySolana) {\n this.privyConfig.config.externalWallets = {\n solana: { connectors: privySolana.toSolanaWalletConnectors() }\n };\n }\n // Add Solana RPC configuration for v3\n let devnetUrl = SOLANA_DEVNET_RPC_URL;\n let mainnetUrl = SOLANA_MAINNET_RPC_URL;\n if (networkUrl != null) {\n if (networkUrl.includes('mainnet')) {\n mainnetUrl = networkUrl;\n this.chainId = 'solana:mainnet';\n }\n else if (networkUrl.includes('devnet')) {\n devnetUrl = networkUrl;\n this.chainId = 'solana:devnet';\n }\n }\n if (!this.privyConfig.config.solana) {\n this.privyConfig.config.solana = {};\n }\n this.privyConfig.config.solana.rpcs = {\n 'solana:devnet': {\n rpc: createSolanaRpc(devnetUrl),\n rpcSubscriptions: createSolanaRpcSubscriptions(devnetUrl.replace('https://', 'wss://'))\n },\n 'solana:mainnet': {\n rpc: createSolanaRpc(mainnetUrl),\n rpcSubscriptions: createSolanaRpcSubscriptions(mainnetUrl.replace('https://', 'wss://'))\n }\n };\n const existingProviders = document.querySelectorAll('[data-privy-provider]');\n existingProviders.forEach(el => el.remove());\n this.initialize();\n // Assign this instance to the static instance property\n PrivyWalletProvider.instance = this;\n }\n // Optional: Provide a static method to get the instance\n static getInstance(appName, appLogoUrl, privyConfig) {\n if (!PrivyWalletProvider.instance) {\n new PrivyWalletProvider(appName, appLogoUrl, privyConfig);\n }\n return PrivyWalletProvider.instance;\n }\n initialize() {\n if (!this.containerElement) {\n this.containerElement = document.createElement('div');\n this.containerElement.setAttribute('data-privy-provider', 'true');\n document.body.appendChild(this.containerElement);\n const that = this;\n const PrivyComponent = () => {\n const privy = privyImports.usePrivy();\n const useOAuthTokens = privyImports.useOAuthTokens();\n const useFundWalletSolana = privySolana.useFundWallet();\n const useSendTransactionSolana = privySolana.useSignAndSendTransaction();\n const { signTransaction } = privySolana.useSignTransaction();\n const { signMessage: signMessageHook } = privySolana.useSignMessage();\n const { ready: walletReady, wallets } = privySolana.useWallets();\n const { createWallet } = privySolana.useCreateWallet();\n const { exportWallet } = privySolana.useExportWallet();\n const useSolanaWallets = { createWallet, exportWallet, ready: walletReady, wallets };\n const useIdentityToken = privyImports.useIdentityToken();\n const { connectWallet } = privyImports.useConnectWallet({\n onSuccess: async ({ wallet }) => {\n await that.createSession(wallet.address, await privy.getAccessToken(), useIdentityToken.identityToken);\n // If there's a pending transaction, execute it now\n if (that.pendingTransaction) {\n const { evmTransactionData, solTransactionData, options, resolve, reject } = that.pendingTransaction;\n try {\n const result = await that.runTransaction(evmTransactionData, solTransactionData, options);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingTransaction = null;\n }\n // If there's a pending signTransaction, execute it now\n if (that.pendingSignTransaction) {\n const { transaction, resolve, reject } = that.pendingSignTransaction;\n try {\n const result = await that.signTransaction(transaction);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingSignTransaction = null;\n }\n // If there's a pending signMessage, execute it now\n if (that.pendingSignMessage) {\n const { message, resolve, reject } = that.pendingSignMessage;\n try {\n const result = await that.signMessage(message);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingSignMessage = null;\n }\n // If there's a pending signAndSubmitTransaction, execute it now\n if (that.pendingSignAndSubmitTransaction) {\n const { transaction, feePayer, resolve, reject } = that.pendingSignAndSubmitTransaction;\n try {\n const result = await that.signAndSubmitTransaction(transaction, feePayer);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n that.pendingSignAndSubmitTransaction = null;\n }\n },\n onError: (error) => {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Wallet connection error:', error);\n }\n if (that.pendingTransaction) {\n that.pendingTransaction.reject(error);\n that.pendingTransaction = null;\n }\n if (that.pendingSignTransaction) {\n that.pendingSignTransaction.reject(error);\n that.pendingSignTransaction = null;\n }\n if (that.pendingSignMessage) {\n that.pendingSignMessage.reject(error);\n that.pendingSignMessage = null;\n }\n if (that.pendingSignAndSubmitTransaction) {\n that.pendingSignAndSubmitTransaction.reject(error);\n that.pendingSignAndSubmitTransaction = null;\n }\n }\n });\n const { login } = privyImports.useLogin({\n onComplete: async ({ user }) => {\n var _a;\n // This is a hack to indicate to the app that privy login is not complete\n // @ts-ignore\n window.runningPrivyOnComplete = true;\n if (!user) {\n SessionManager.clearSession();\n return;\n }\n const solanaLinkedAccounts = user.linkedAccounts.filter((account) => account.chainType === 'solana');\n const sortedLinkedAccounts = solanaLinkedAccounts.sort((a, b) => new Date(b.latestVerifiedAt).getTime() - new Date(a.latestVerifiedAt).getTime());\n let finalAddress = (_a = sortedLinkedAccounts[0]) === null || _a === void 0 ? void 0 : _a.address;\n if (!finalAddress) {\n const solanaWallet = await createWallet();\n finalAddress = solanaWallet.address;\n SessionManager.clearSession();\n return;\n }\n const session = await SessionManager.getSession();\n if (!session || finalAddress !== session.address) {\n try {\n const accessToken = await privy.getAccessToken();\n const idToken = useIdentityToken.identityToken;\n await that.createSession(finalAddress, accessToken, idToken);\n }\n catch (error) {\n console.error('Error creating session:', error);\n }\n }\n // @ts-ignore\n window.runningPrivyOnComplete = false;\n setCurrentUser({ address: finalAddress, provider: that });\n if (that.pendingLogin) {\n that.pendingLogin.resolve({ address: finalAddress, provider: that });\n that.pendingLogin = null;\n }\n },\n onError: (error) => {\n // Only log errors that aren't user-initiated cancellations\n if (error !== 'exited_auth_flow' && (error === null || error === void 0 ? void 0 : error.message) !== 'exited_auth_flow') {\n console.error('Login error:', error);\n }\n if (that.pendingLogin) {\n that.pendingLogin.reject(error);\n that.pendingLogin = null;\n }\n }\n });\n const { logout } = privyImports.useLogout({\n onSuccess: () => {\n SessionManager.clearSession();\n setCurrentUser(null);\n }\n });\n React.useEffect(() => {\n if (privy.ready) {\n that.privyMethods = {\n ready: privy.ready,\n walletReady: walletReady,\n authenticated: privy.authenticated,\n wallets,\n login,\n logout,\n connectWallet,\n getAccessToken: privy.getAccessToken,\n identityToken: useIdentityToken.identityToken,\n usePrivy: privy,\n useOAuthTokens: useOAuthTokens,\n useFundWalletSolana: useFundWalletSolana,\n useSendTransactionSolana: useSendTransactionSolana,\n useSolanaWallets: useSolanaWallets,\n signTransaction: signTransaction,\n signMessage: signMessageHook,\n };\n }\n }, [privy.ready, privy.authenticated, wallets, login, logout, walletReady]);\n return null;\n };\n const FinalPrivyComponent = () => {\n if (typeof window === 'undefined') {\n return null;\n }\n return React.createElement(privyImports.PrivyProvider, {\n appId: this.privyConfig.appId,\n config: this.privyConfig.config,\n children: React.createElement(PrivyComponent)\n });\n };\n this.root = ReactDOM.createRoot(this.containerElement);\n this.root.render(React.createElement(FinalPrivyComponent));\n }\n }\n async login() {\n var _a, _b;\n await this.ensureReady();\n // Check if we have a valid session that matches an authenticated wallet\n const session = await SessionManager.getSession();\n if (((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.authenticated) && ((_b = this.privyMethods.wallets) === null || _b === void 0 ? void 0 : _b.length) > 0 && session) {\n // Find the wallet matching the session\n const matchingWallet = this.privyMethods.wallets.find((wallet) => wallet.address === session.address);\n if (matchingWallet) {\n // Valid session with matching wallet, return immediately\n setCurrentUser({ address: matchingWallet.address, provider: this });\n return {\n address: matchingWallet.address,\n provider: this\n };\n }\n // Session exists but doesn't match any connected wallet\n // This can happen after wallet switching - force fresh login\n console.log('Session wallet mismatch detected, forcing fresh login flow');\n }\n // If no valid session or wallet mismatch, force a fresh login flow\n // This ensures the user can select the correct wallet, especially after logout\n if (this.pendingLogin) {\n return new Promise((resolve, reject) => {\n this.pendingLogin.resolve = resolve;\n this.pendingLogin.reject = reject;\n });\n }\n return new Promise((resolve, reject) => {\n this.pendingLogin = { resolve, reject };\n // open Privy modal to let user select/verify wallet\n this.privyMethods.login();\n // safety timeout\n setTimeout(() => {\n if (this.pendingLogin) {\n this.pendingLogin.reject(new Error(\"Login timed out\"));\n this.pendingLogin = null;\n }\n }, 180000);\n });\n }\n async getNativeMethods() {\n var _a;\n await this.ensureReady();\n return (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.usePrivy;\n }\n async logout() {\n await this.ensureReady();\n await this.privyMethods.logout();\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b, _c;\n await this.ensureReady({ waitForWallets: true });\n let session = await SessionManager.getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n let privyWallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n let privyWallet = privyWallets === null || privyWallets === void 0 ? void 0 : privyWallets.find((wallet) => wallet.address === sessionAddress);\n // If wallet not found yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!privyWallets || privyWallets.length === 0 || !privyWallet) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n privyWallet = await this.waitForMatchingWallet(sessionAddress);\n }\n }\n if (!privyWallet) {\n // If there's already a pending transaction, throw an error to prevent overlapping calls\n if (this.pendingTransaction) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // Create a promise to wait for the transaction result\n return new Promise((resolve, reject) => {\n this.pendingTransaction = {\n resolve,\n reject,\n evmTransactionData: _evmTransactionData,\n solTransactionData,\n options\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingTransaction) {\n this.pendingTransaction.reject(new Error(\"Wallet connection timed out\"));\n this.pendingTransaction = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n // Proceed with the transaction using privyWallet\n const wallet = privyWallet;\n if (solTransactionData == null) {\n throw new Error(\"Solana transaction data is required\");\n }\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, \"confirmed\");\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n let app_id = solTransactionData.appId;\n if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n const customAppId = window.CUSTOM_TAROBASE_APP_ID_HEADER;\n if (customAppId) {\n app_id = customAppId;\n }\n }\n if (!app_id) {\n throw new Error(\"App ID is required\");\n }\n const anchorProvider = new anchor.AnchorProvider(connection, wallet.provider, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n let tx;\n let blockhash;\n let lastValidBlockHeight;\n if (solTransactionData.signedTransaction) {\n // Server already set the blockhash and co-signed — do NOT overwrite\n // the blockhash or it will invalidate the server's signature.\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n // Extract the blockhash that was baked into the signed message\n blockhash = tx.message.recentBlockhash;\n const latestBlockhash = await connection.getLatestBlockhash('confirmed');\n lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, new PublicKey(wallet.address), { app_id, documents: solTransactionData.txArgs[0].setDocumentData, delete_paths: solTransactionData.txArgs[0].deletePaths, txData: solTransactionData.txArgs[0].txData }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n blockhash = result.blockhash;\n lastValidBlockHeight = result.lastValidBlockHeight;\n }\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTx = 'recentBlockhash' in tx && !('message' in tx && 'staticAccountKeys' in tx.message);\n if (isLegacyTx) {\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n }\n else {\n tx.message.recentBlockhash = blockhash;\n }\n try {\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Just sign, don't submit - return raw signed bytes (same as original runTransaction)\n const signedTx = await this.signTransactionRaw(tx, privyWallet);\n return {\n signedTransaction: signedTx, // Raw Uint8Array from Privy\n blockNumber: 0,\n gasUsed: \"0\",\n data: \"\"\n };\n }\n // Sign and submit using shared helper\n const { signature, txInfo } = await this.signAndSubmitInternal(tx, privyWallet, rpcUrl, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_c = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _c === void 0 ? void 0 : _c.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n }\n /**\n * Signs a Solana transaction without submitting it.\n *\n * This method handles blockhash automatically if not set - you do NOT need to\n * set recentBlockhash on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign (Transaction or VersionedTransaction)\n * @returns The signed transaction\n */\n async signTransaction(transaction) {\n var _a, _b;\n await this.ensureReady({ waitForWallets: true });\n let privyWallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n let session = await SessionManager.getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n let privyWallet = privyWallets === null || privyWallets === void 0 ? void 0 : privyWallets.find((wallet) => wallet.address === sessionAddress);\n // If there's already a pending sign transaction, throw an error to prevent overlapping calls\n if (this.pendingSignTransaction) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // If wallet not found yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!privyWallets || privyWallets.length === 0 || !privyWallet) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n privyWallet = await this.waitForMatchingWallet(sessionAddress);\n }\n }\n // If still no wallet after waiting, trigger connection and queue the signing\n if (!privyWallet) {\n return new Promise((resolve, reject) => {\n this.pendingSignTransaction = {\n resolve,\n reject,\n transaction\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignTransaction) {\n this.pendingSignTransaction.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignTransaction = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n // Privy requires serialized transaction bytes, which requires a blockhash.\n // If the transaction doesn't have one, get a fresh blockhash and set it.\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = new PublicKey(privyWallet.address);\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n // Sign using raw method, then deserialize for the public API\n const signedTxRaw = await this.signTransactionRaw(transaction, privyWallet);\n return this.deserializeSignedTransaction(signedTxRaw);\n }\n /**\n * Signs and submits a Solana transaction to the network.\n *\n * This method handles blockhash and transaction confirmation automatically - you do NOT need to\n * set recentBlockhash or lastValidBlockHeight on the transaction before calling this method.\n * The network/RPC URL is derived from the provider's configuration (set during initialization).\n *\n * @param transaction - The transaction to sign and submit (Transaction or VersionedTransaction)\n * @param feePayer - Optional fee payer public key. If not provided and the transaction doesn't\n * already have a feePayer set, the connected wallet address will be used.\n * Useful for co-signing scenarios where a different account pays the fees.\n * @returns The transaction signature\n */\n async signAndSubmitTransaction(transaction, feePayer) {\n var _a, _b;\n await this.ensureReady({ waitForWallets: true });\n let privyWallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n let session = await SessionManager.getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n let privyWallet = privyWallets === null || privyWallets === void 0 ? void 0 : privyWallets.find((wallet) => wallet.address === sessionAddress);\n // If there's already a pending signAndSubmitTransaction, throw an error to prevent overlapping calls\n if (this.pendingSignAndSubmitTransaction) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // If wallet not found yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!privyWallets || privyWallets.length === 0 || !privyWallet) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n privyWallet = await this.waitForMatchingWallet(sessionAddress);\n }\n }\n // If still no wallet after waiting, trigger connection and queue the signing\n if (!privyWallet) {\n return new Promise((resolve, reject) => {\n this.pendingSignAndSubmitTransaction = {\n resolve,\n reject,\n transaction,\n feePayer\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignAndSubmitTransaction) {\n this.pendingSignAndSubmitTransaction.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignAndSubmitTransaction = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n // Get RPC URL and create connection\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Get fresh blockhash and set it on the transaction before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n // Set feePayer if not already set\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = feePayer !== null && feePayer !== void 0 ? feePayer : new PublicKey(privyWallet.address);\n }\n }\n else {\n // VersionedTransaction\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n // Note: VersionedTransaction feePayer is set in the message at creation time\n // and cannot be modified after creation\n }\n // Use shared sign and submit logic\n const { signature } = await this.signAndSubmitInternal(transaction, privyWallet, rpcUrl, connection);\n return signature;\n }\n // ============ Private Helpers ============\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL; // default to mainnet\n }\n /**\n * Internal sign transaction - serializes and signs via Privy\n * Returns the raw result from Privy (Uint8Array)\n * This mirrors exactly what runTransaction was doing\n */\n async signTransactionRaw(transaction, privyWallet) {\n var _a;\n // Serialize the transaction\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n let serializedForSign;\n if (isLegacyTransaction) {\n serializedForSign = transaction.serialize({ requireAllSignatures: false, verifySignatures: false });\n }\n else {\n serializedForSign = transaction.serialize();\n }\n // Sign via Privy - returns { signedTransaction: Uint8Array }\n const result = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.signTransaction({\n transaction: serializedForSign,\n wallet: privyWallet,\n chain: this.chainId\n }));\n // Privy returns { signedTransaction: Uint8Array }, unwrap it\n const signedTx = (result === null || result === void 0 ? void 0 : result.signedTransaction) || result;\n return signedTx;\n }\n /**\n * Deserialize a signed transaction from Uint8Array to Transaction object\n */\n deserializeSignedTransaction(signedTxRaw) {\n // Handle different formats Privy might return\n let signedTx;\n if (signedTxRaw instanceof Uint8Array) {\n signedTx = signedTxRaw;\n }\n else if (Array.isArray(signedTxRaw)) {\n signedTx = new Uint8Array(signedTxRaw);\n }\n else if (signedTxRaw && typeof signedTxRaw === 'object' && 'signedTransaction' in signedTxRaw) {\n // Privy might wrap the result\n signedTx = signedTxRaw.signedTransaction instanceof Uint8Array\n ? signedTxRaw.signedTransaction\n : new Uint8Array(signedTxRaw.signedTransaction);\n }\n else if (Buffer.isBuffer(signedTxRaw)) {\n signedTx = new Uint8Array(signedTxRaw);\n }\n else {\n throw new Error(`Unexpected signed transaction format: ${typeof signedTxRaw}`);\n }\n // Try to deserialize as VersionedTransaction first, fall back to legacy Transaction\n try {\n return VersionedTransaction.deserialize(signedTx);\n }\n catch (_a) {\n return Transaction.from(signedTx);\n }\n }\n /**\n * Internal sign and submit - handles Surfnet vs non-Surfnet logic\n * This is the core submission logic used by both signAndSubmitTransaction and runTransaction\n *\n * For Surfnet: sign with signTransactionRaw, then sendRawTransaction\n * For non-Surfnet: use Privy's signAndSendTransaction (combined operation)\n */\n async signAndSubmitInternal(transaction, privyWallet, rpcUrl, connection) {\n var _a;\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n let signature;\n if (isSurfnet) {\n // For Surfnet: sign with signTransactionRaw, then sendRawTransaction\n const signedTx = await this.signTransactionRaw(transaction, privyWallet);\n signature = await connection.sendRawTransaction(signedTx);\n }\n else {\n // For non-Surfnet: use Privy's combined signAndSendTransaction\n // Serialize the transaction for Privy API\n // Use duck typing instead of instanceof to handle multiple @solana/web3.js versions\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n let serializedTx;\n if (isLegacyTransaction) {\n serializedTx = transaction.serialize({ requireAllSignatures: false, verifySignatures: false });\n }\n else {\n serializedTx = transaction.serialize();\n }\n const result = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.useSendTransactionSolana.signAndSendTransaction({\n transaction: serializedTx,\n wallet: privyWallet,\n chain: this.chainId\n }));\n // Handle case where signature might be bytes instead of string\n const rawSig = result.signature;\n if (rawSig instanceof Uint8Array || Array.isArray(rawSig)) {\n signature = bs58.encode(rawSig instanceof Uint8Array ? rawSig : new Uint8Array(rawSig));\n }\n else {\n signature = rawSig;\n }\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return { signature, txInfo };\n }\n async signMessage(message) {\n var _a, _b, _c;\n await this.ensureReady({ waitForWallets: true });\n const session = await SessionManager.getSession();\n let sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n // If there's already a pending sign message, throw an error to prevent overlapping calls\n if (this.pendingSignMessage) {\n throw new Error(\"Oops... something went wrong. Please try again.\");\n }\n // If no wallets connected yet, it may be an embedded wallet (email login) that hasn't\n // appeared in the wallets array due to React state timing. Wait for it before\n // falling back to connectWallet() which shows an unwanted wallet selection modal.\n if (!((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets) || this.privyMethods.wallets.length === 0) {\n if (((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.authenticated) && sessionAddress) {\n const matchedWallet = await this.waitForMatchingWallet(sessionAddress);\n if (!matchedWallet) {\n return new Promise((resolve, reject) => {\n this.pendingSignMessage = {\n resolve,\n reject,\n message\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignMessage) {\n this.pendingSignMessage.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignMessage = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n }\n else {\n return new Promise((resolve, reject) => {\n this.pendingSignMessage = {\n resolve,\n reject,\n message\n };\n this.privyMethods.connectWallet();\n // Set a timeout to reject the promise if connection takes too long\n setTimeout(() => {\n if (this.pendingSignMessage) {\n this.pendingSignMessage.reject(new Error(\"Wallet connection timed out\"));\n this.pendingSignMessage = null;\n }\n }, 30000); // 30 seconds timeout\n });\n }\n }\n let privyWallet = this.privyMethods.wallets.find((wallet) => wallet.address === sessionAddress);\n if (!privyWallet) {\n // Session address is not a privy wallet, just default to the first wallet\n const accessToken = await this.privyMethods.getAccessToken();\n await this.createSession(this.privyMethods.wallets[0].address, accessToken, this.privyMethods.identityToken);\n setCurrentUser({ address: this.privyMethods.wallets[0].address, provider: this });\n const session = await SessionManager.getSession();\n sessionAddress = session === null || session === void 0 ? void 0 : session.address;\n if (!sessionAddress) {\n throw new Error('No wallet connected or logged in to sign message');\n }\n privyWallet = this.privyMethods.wallets[0];\n }\n // Use the Privy signMessage hook for Solana wallets\n // The message needs to be passed as a Uint8Array\n const messageBytes = getPlatform().textEncode(message);\n const result = await ((_c = this.privyMethods) === null || _c === void 0 ? void 0 : _c.signMessage({\n message: messageBytes,\n wallet: privyWallet,\n }));\n // The signature is returned as a Uint8Array, encode it as base58 (standard Solana format)\n const signatureBytes = (result === null || result === void 0 ? void 0 : result.signature) || result;\n const bs58 = await import('bs58');\n return bs58.default.encode(signatureBytes);\n }\n async restoreSession() {\n const session = await SessionManager.getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n else {\n return null;\n }\n }\n async createSession(address, accessToken, idToken) {\n if (accessToken == null || accessToken == '' || idToken == null || idToken == '') {\n return;\n }\n const createSessionResult = await createSessionWithPrivy(accessToken, address, idToken);\n await SessionManager.storeSession(address, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n }\n /**\n * Waits for a wallet matching the session address to appear in the wallets array.\n * This handles the timing gap where Privy's embedded wallet (created for email login users)\n * may not yet be in the useWallets() array when signTransaction is called immediately after login.\n */\n async waitForMatchingWallet(sessionAddress, timeoutMs = 10000) {\n var _a;\n const startTime = Date.now();\n while (Date.now() - startTime < timeoutMs) {\n const wallets = (_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.wallets;\n if (wallets && wallets.length > 0) {\n const wallet = wallets.find((w) => w.address === sessionAddress);\n if (wallet)\n return wallet;\n }\n await new Promise(resolve => setTimeout(resolve, 200));\n }\n return null;\n }\n async ensureReady({ waitForWallets = false, timeoutMs = 15000 } = {}) {\n const isReady = () => {\n var _a, _b;\n if (!((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.ready))\n return false;\n if (waitForWallets && !((_b = this.privyMethods) === null || _b === void 0 ? void 0 : _b.walletReady))\n return false;\n return true;\n };\n if (isReady())\n return;\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n const check = () => {\n if (isReady()) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Login provider failed to initialize. This can happen in incognito mode or when third-party cookies are blocked. Try using a regular browser window.'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n}\nPrivyWalletProvider.instance = null;\n","import { Buffer } from 'buffer';\nimport { WebSessionManager as SessionManager, createSessionWithSignature, genAuthNonce, genSolanaMessage, buildSetDocumentsTransaction, convertRemainingAccounts } from '@pooflabs/core';\nimport { setCurrentUser, setAuthLoading } from '../../global';\nimport { getPlatform, detectAndroid } from '../../platform';\nimport { Connection, PublicKey, VersionedTransaction } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL, SURFNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\n/**\n * Detects whether the current environment is a mobile browser capable of\n * Mobile Wallet Adapter (MWA) communication.\n *\n * Returns true on Android browsers (Chrome, etc.) where MWA intents work,\n * or inside a Seeker/Saga in-app browser context.\n */\nexport function isMobileWalletAvailable() {\n if (typeof window === 'undefined' || typeof navigator === 'undefined')\n return false;\n return detectAndroid();\n}\nconst ED25519_SIGNATURE_LENGTH = 64;\n// Dynamically imported MWA protocol module\nlet mwaProtocolModule = null;\nlet mwaProtocolLoadPromise = null;\nasync function loadMwaProtocol() {\n if (mwaProtocolModule)\n return;\n if (typeof window === 'undefined')\n return;\n if (mwaProtocolLoadPromise)\n return mwaProtocolLoadPromise;\n mwaProtocolLoadPromise = (async () => {\n try {\n mwaProtocolModule = await import('@solana-mobile/mobile-wallet-adapter-protocol-web3js');\n }\n catch (e) {\n console.warn('[SolanaMobileWallet] @solana-mobile/mobile-wallet-adapter-protocol-web3js not installed. Install it to enable Seeker wallet support.');\n throw new Error('Missing @solana-mobile/mobile-wallet-adapter-protocol-web3js dependency');\n }\n })();\n return mwaProtocolLoadPromise;\n}\n/**\n * Registers Mobile Wallet Adapter as a wallet-standard wallet so it appears\n * in wallet selection UIs and can be discovered by other wallet-standard consumers.\n *\n * Call this once at app startup (in a browser-only / non-SSR context).\n *\n * @param config - App identity and optional remote host authority for desktop QR code support\n */\nexport async function registerMobileWalletAdapter(config) {\n var _a;\n if (typeof window === 'undefined')\n return;\n try {\n const walletStandardMobile = await import('@solana-mobile/wallet-standard-mobile');\n const registerMwa = walletStandardMobile.registerMwa || ((_a = walletStandardMobile.default) === null || _a === void 0 ? void 0 : _a.registerMwa);\n if (!registerMwa) {\n console.warn('[SolanaMobileWallet] registerMwa not found in @solana-mobile/wallet-standard-mobile');\n return;\n }\n const options = {};\n if (config === null || config === void 0 ? void 0 : config.appIdentity) {\n options.appIdentity = config.appIdentity;\n }\n if (config === null || config === void 0 ? void 0 : config.chains) {\n options.chains = config.chains;\n }\n if (config === null || config === void 0 ? void 0 : config.remoteHostAuthority) {\n options.remoteHostAuthority = config.remoteHostAuthority;\n }\n // Use the library's default helpers if available\n if (walletStandardMobile.createDefaultAuthorizationCache) {\n options.authorizationCache = walletStandardMobile.createDefaultAuthorizationCache();\n }\n if (walletStandardMobile.createDefaultChainSelector) {\n options.chainSelector = walletStandardMobile.createDefaultChainSelector();\n }\n if (walletStandardMobile.createDefaultWalletNotFoundHandler) {\n options.onWalletNotFound = walletStandardMobile.createDefaultWalletNotFoundHandler();\n }\n registerMwa(options);\n }\n catch (e) {\n // @solana-mobile/wallet-standard-mobile is an optional dependency\n // Silently skip if not installed — the provider still works via\n // @solana-mobile/mobile-wallet-adapter-protocol-web3js directly\n console.debug('[SolanaMobileWallet] @solana-mobile/wallet-standard-mobile not available, skipping wallet-standard registration');\n }\n}\n/**\n * SolanaMobileWalletProvider implements the AuthProvider interface using the\n * Solana Mobile Wallet Adapter (MWA) protocol's low-level `transact` API.\n *\n * This enables TaroBase dApps to work with any MWA-compliant wallet on Solana\n * mobile devices (Seeker, Saga) — including the native Seed Vault Wallet,\n * Phantom, Solflare, and any other wallet that implements the MWA protocol.\n *\n * By using `transact()` directly (instead of the wallet-adapter wrapper),\n * login combines authorize + signMessage into a single wallet session —\n * meaning one popup/approval instead of two.\n */\nexport class SolanaMobileWalletProvider {\n constructor(networkUrl = null, config = {}) {\n // MWA authorization state\n this.authToken = null;\n this.walletUriBase = null;\n this.base64Address = null;\n this.authorizedPublicKey = null;\n this.publicKeyObj = null;\n this.networkUrl = networkUrl;\n this.config = config;\n if (typeof window === 'undefined') {\n throw new Error('SolanaMobileWalletProvider can only be instantiated in a browser environment');\n }\n if (SolanaMobileWalletProvider.instance) {\n return SolanaMobileWalletProvider.instance;\n }\n this.appIdentity = config.appIdentity || {\n name: 'TaroBase App',\n uri: getPlatform().getLocationOrigin(),\n };\n this.chain = `solana:${config.cluster || 'mainnet-beta'}`;\n SolanaMobileWalletProvider.instance = this;\n }\n static getInstance(networkUrl, config) {\n if (!SolanaMobileWalletProvider.instance) {\n new SolanaMobileWalletProvider(networkUrl, config);\n }\n return SolanaMobileWalletProvider.instance;\n }\n /** Config for transact() — routes to the same wallet if we've already authorized */\n getAssociationConfig() {\n if (this.walletUriBase) {\n return { baseUri: this.walletUriBase };\n }\n return undefined;\n }\n /** Reauthorize within a transact callback using a stored auth_token */\n async reauthorizeWallet(wallet) {\n if (!this.authToken) {\n // No existing auth — do a fresh authorize\n const authResult = await wallet.authorize({\n identity: this.appIdentity,\n chain: this.chain,\n });\n this.storeAuthResult(authResult);\n return authResult;\n }\n try {\n const authResult = await wallet.reauthorize({\n auth_token: this.authToken,\n identity: this.appIdentity,\n });\n this.storeAuthResult(authResult);\n return authResult;\n }\n catch (e) {\n // Reauth failed (token expired, wallet reset, etc.) — try fresh authorize\n console.warn('[SolanaMobileWallet] Reauthorization failed, attempting fresh authorize:', e === null || e === void 0 ? void 0 : e.message);\n const authResult = await wallet.authorize({\n identity: this.appIdentity,\n chain: this.chain,\n });\n this.storeAuthResult(authResult);\n return authResult;\n }\n }\n /** Persist auth result from an authorize/reauthorize call */\n storeAuthResult(authResult) {\n var _a;\n this.authToken = authResult.auth_token;\n this.walletUriBase = authResult.wallet_uri_base;\n if (((_a = authResult.accounts) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const account = authResult.accounts[0];\n this.base64Address = account.address;\n // Decode base64 address → PublicKey → base58\n const addressBytes = Uint8Array.from(getPlatform().atob(account.address), c => c.charCodeAt(0));\n this.publicKeyObj = new PublicKey(addressBytes);\n this.authorizedPublicKey = this.publicKeyObj.toBase58();\n }\n }\n async login() {\n var _a, _b, _c, _d, _e;\n setAuthLoading(true);\n try {\n await loadMwaProtocol();\n const { transact } = mwaProtocolModule;\n // Quick check: if we already have auth state and a valid session, skip\n if (this.authorizedPublicKey) {\n const existingSession = await SessionManager.getSession();\n if (existingSession && existingSession.address === this.authorizedPublicKey) {\n const user = { provider: this, address: this.authorizedPublicKey };\n setCurrentUser(user);\n return user;\n }\n }\n // Pre-fetch nonce from server while wallet is not yet connected\n const nonce = await genAuthNonce();\n // Single transact() call: authorize + signMessages — one wallet popup\n const result = await transact(async (wallet) => {\n // Step 1: Authorize — user approves the dApp\n const authResult = await wallet.authorize({\n identity: this.appIdentity,\n chain: this.chain,\n });\n const base64Addr = authResult.accounts[0].address;\n const addressBytes = Uint8Array.from(getPlatform().atob(base64Addr), c => c.charCodeAt(0));\n const pubkey = new PublicKey(addressBytes);\n const base58Addr = pubkey.toBase58();\n // Step 2: Sign the auth message — still in the same wallet session\n const messageText = await genSolanaMessage(base58Addr, nonce);\n const messageBytes = getPlatform().textEncode(messageText);\n const signedMessages = await wallet.signMessages({\n addresses: [base64Addr],\n payloads: [messageBytes],\n });\n // The signed payload is [original message bytes][64-byte ed25519 signature]\n const signedPayload = signedMessages[0];\n const signatureBytes = signedPayload.slice(-ED25519_SIGNATURE_LENGTH);\n return {\n base58Address: base58Addr,\n base64Address: base64Addr,\n publicKey: pubkey,\n signature: Buffer.from(signatureBytes).toString('base64'),\n messageText,\n authToken: authResult.auth_token,\n walletUriBase: authResult.wallet_uri_base,\n };\n }, this.getAssociationConfig());\n // Store MWA auth state for reauthorization in subsequent transact() calls\n this.authToken = result.authToken;\n this.walletUriBase = result.walletUriBase;\n this.base64Address = result.base64Address;\n this.authorizedPublicKey = result.base58Address;\n this.publicKeyObj = result.publicKey;\n // Check if we already have a valid session for this address\n const existingSession = await SessionManager.getSession();\n if (existingSession && existingSession.address === result.base58Address) {\n const user = { provider: this, address: result.base58Address };\n setCurrentUser(user);\n return user;\n }\n // Create new session on the server\n const createSessionResult = await createSessionWithSignature(result.base58Address, result.messageText, result.signature);\n await SessionManager.storeSession(result.base58Address, createSessionResult.accessToken, createSessionResult.idToken, createSessionResult.refreshToken);\n // Mark auth method\n try {\n getPlatform().storage.setItem('tarobase_last_auth_method', 'mobile-wallet-adapter');\n }\n catch (_f) { }\n const user = { provider: this, address: result.base58Address };\n setCurrentUser(user);\n return user;\n }\n catch (error) {\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('user rejected')) ||\n ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes('user denied')) ||\n ((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes('user cancelled')) ||\n ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.toLowerCase().includes('user canceled')) ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user declined'));\n if (!isUserRejection) {\n console.error('[SolanaMobileWallet] Login failed:', error);\n }\n throw error;\n }\n finally {\n setAuthLoading(false);\n }\n }\n async restoreSession() {\n const session = await SessionManager.getSession();\n if (session) {\n this.authorizedPublicKey = session.address;\n this.publicKeyObj = new PublicKey(session.address);\n return { provider: this, address: session.address };\n }\n return null;\n }\n async logout() {\n // Deauthorize with the wallet if we have an auth_token\n if (this.authToken) {\n try {\n await loadMwaProtocol();\n const { transact } = mwaProtocolModule;\n const authToken = this.authToken;\n await transact(async (wallet) => {\n await wallet.deauthorize({ auth_token: authToken });\n }, this.getAssociationConfig());\n }\n catch (error) {\n console.error('[SolanaMobileWallet] Deauthorize error:', error);\n }\n }\n this.authToken = null;\n this.walletUriBase = null;\n this.base64Address = null;\n this.authorizedPublicKey = null;\n this.publicKeyObj = null;\n SessionManager.clearSession();\n setCurrentUser(null);\n }\n async signMessage(message) {\n var _a, _b;\n if (!this.authorizedPublicKey || !this.base64Address) {\n throw new Error('Not connected. Call login() first.');\n }\n await loadMwaProtocol();\n const { transact } = mwaProtocolModule;\n const base64Addr = this.base64Address;\n try {\n const signedMessages = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n const messageBytes = getPlatform().textEncode(message);\n return wallet.signMessages({\n addresses: [base64Addr],\n payloads: [messageBytes],\n });\n }, this.getAssociationConfig());\n const signedPayload = signedMessages[0];\n const signatureBytes = signedPayload.slice(-ED25519_SIGNATURE_LENGTH);\n return Buffer.from(signatureBytes).toString('base64');\n }\n catch (error) {\n if (((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('not connected')) || ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.includes('not authorized')) ||\n (error === null || error === void 0 ? void 0 : error.code) === 'ERROR_AUTHORIZATION_FAILED') {\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n throw new Error(`Failed to sign message: ${error.message}`);\n }\n }\n async signTransaction(transaction) {\n var _a, _b;\n if (!this.publicKeyObj) {\n throw new Error('Not connected. Call login() first.');\n }\n await loadMwaProtocol();\n const { transact } = mwaProtocolModule;\n // Ensure blockhash and fee payer are set before signing\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n if (!legacyTx.feePayer && this.publicKeyObj) {\n legacyTx.feePayer = this.publicKeyObj;\n }\n }\n else {\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n try {\n const signedTransactions = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n return wallet.signTransactions({ transactions: [transaction] });\n }, this.getAssociationConfig());\n return signedTransactions[0];\n }\n catch (error) {\n if (((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('not connected')) || ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.includes('not authorized')) ||\n (error === null || error === void 0 ? void 0 : error.code) === 'ERROR_AUTHORIZATION_FAILED') {\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n throw new Error(`Failed to sign transaction: ${error.message}`);\n }\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n var _a, _b, _c, _d, _e, _f;\n if (!this.publicKeyObj) {\n throw new Error('Not connected. Call login() first.');\n }\n await loadMwaProtocol();\n const { transact } = mwaProtocolModule;\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n try {\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n const isLegacyTransaction = 'recentBlockhash' in transaction && !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTransaction) {\n const legacyTx = transaction;\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n if (!legacyTx.feePayer) {\n if (feePayer) {\n legacyTx.feePayer = feePayer;\n }\n else if (this.publicKeyObj) {\n legacyTx.feePayer = this.publicKeyObj;\n }\n }\n }\n else {\n const versionedTx = transaction;\n versionedTx.message.recentBlockhash = blockhash;\n }\n if (isSurfnet) {\n // Surfnet: sign-only, then submit to our specific RPC\n const signedTransactions = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n return wallet.signTransactions({ transactions: [transaction] });\n }, this.getAssociationConfig());\n const signedTx = signedTransactions[0];\n const signature = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n const confirmation = await connection.confirmTransaction({\n signature,\n blockhash,\n lastValidBlockHeight,\n }, 'confirmed');\n if (confirmation.value.err) {\n throw new Error(`Transaction failed: ${confirmation.value.err.toString()}`);\n }\n return signature;\n }\n // Non-surfnet: use signAndSendTransactions for wallet-optimized submission\n const signatures = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n return wallet.signAndSendTransactions({\n transactions: [transaction],\n commitment: 'confirmed',\n });\n }, this.getAssociationConfig());\n const signature = signatures[0];\n await confirmAndCheckTransaction(connection, signature);\n return signature;\n }\n catch (error) {\n if (((_a = error === null || error === void 0 ? void 0 : error.message) === null || _a === void 0 ? void 0 : _a.includes('not connected')) || ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.includes('not authorized')) ||\n (error === null || error === void 0 ? void 0 : error.code) === 'ERROR_AUTHORIZATION_FAILED') {\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes('user rejected')) ||\n ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.toLowerCase().includes('user denied')) ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user cancelled')) ||\n ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('[SolanaMobileWallet] Transaction failed:', error);\n }\n throw new Error(`Failed to execute transaction: ${error.message}`);\n }\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required for mobile wallet');\n }\n if (!this.publicKeyObj || !this.authorizedPublicKey) {\n await this.login();\n }\n await loadMwaProtocol();\n const { transact } = mwaProtocolModule;\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const isSurfnet = rpcUrl === SURFNET_RPC_URL;\n try {\n const publicKey = this.publicKeyObj;\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n let app_id = solTransactionData.appId;\n if (typeof window !== 'undefined' && window.CUSTOM_TAROBASE_APP_ID_HEADER) {\n app_id = window.CUSTOM_TAROBASE_APP_ID_HEADER;\n }\n if (!app_id) {\n throw new Error('App ID is required');\n }\n // Create a mock wallet adapter for Anchor (only publicKey is needed for building TX)\n const mockWalletAdapter = {\n publicKey,\n signTransaction: async (tx) => tx,\n signAllTransactions: async (txs) => txs,\n };\n const anchorProvider = new anchor.AnchorProvider(connection, mockWalletAdapter, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n let tx;\n if (solTransactionData.signedTransaction) {\n tx = VersionedTransaction.deserialize(Buffer.from(solTransactionData.signedTransaction, 'base64'));\n }\n else {\n const result = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, publicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n tx = result.tx;\n }\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n const [signedTx] = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n return wallet.signTransactions({ transactions: [tx] });\n }, this.getAssociationConfig());\n return {\n signedTransaction: signedTx,\n blockNumber: 0,\n gasUsed: '0',\n data: ''\n };\n }\n if (isSurfnet) {\n // Surfnet: sign then submit manually to our RPC\n const [signedTx] = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n return wallet.signTransactions({ transactions: [tx] });\n }, this.getAssociationConfig());\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n const signature = await connection.sendRawTransaction(signedTx.serialize(), {\n preflightCommitment: 'confirmed'\n });\n const confirmation = await connection.confirmTransaction({\n signature,\n blockhash,\n lastValidBlockHeight,\n }, 'confirmed');\n if (confirmation.value.err) {\n throw new Error(`Transaction failed: ${confirmation.value.err.toString()}`);\n }\n const txInfo = await connection.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed'\n });\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n // Non-surfnet: use signAndSendTransactions\n const signatures = await transact(async (wallet) => {\n await this.reauthorizeWallet(wallet);\n return wallet.signAndSendTransactions({\n transactions: [tx],\n commitment: 'confirmed',\n });\n }, this.getAssociationConfig());\n const signature = signatures[0];\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_b = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _b === void 0 ? void 0 : _b.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (error) {\n if (((_c = error === null || error === void 0 ? void 0 : error.message) === null || _c === void 0 ? void 0 : _c.includes('not connected')) || ((_d = error === null || error === void 0 ? void 0 : error.message) === null || _d === void 0 ? void 0 : _d.includes('not authorized')) ||\n (error === null || error === void 0 ? void 0 : error.code) === 'ERROR_AUTHORIZATION_FAILED') {\n await this.logout();\n throw new Error('Wallet connection lost. Please reconnect.');\n }\n const isUserRejection = (error === null || error === void 0 ? void 0 : error.code) === 4001 ||\n ((_e = error === null || error === void 0 ? void 0 : error.message) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('user rejected')) ||\n ((_f = error === null || error === void 0 ? void 0 : error.message) === null || _f === void 0 ? void 0 : _f.toLowerCase().includes('user denied')) ||\n ((_g = error === null || error === void 0 ? void 0 : error.message) === null || _g === void 0 ? void 0 : _g.toLowerCase().includes('user cancelled')) ||\n ((_h = error === null || error === void 0 ? void 0 : error.message) === null || _h === void 0 ? void 0 : _h.toLowerCase().includes('user canceled'));\n if (!isUserRejection) {\n console.error('[SolanaMobileWallet] Transaction failed:', error);\n }\n throw new Error(`Failed to execute transaction: ${error.message}`);\n }\n }\n async getNativeMethods() {\n return {\n authToken: this.authToken,\n walletUriBase: this.walletUriBase,\n publicKey: this.publicKeyObj,\n base64Address: this.base64Address,\n };\n }\n /* ----------------------------------------------------------- *\n * Private Helpers\n * ----------------------------------------------------------- */\n getRpcUrl(network) {\n if (this.networkUrl) {\n return this.networkUrl;\n }\n if (network === 'solana_devnet') {\n return SOLANA_DEVNET_RPC_URL;\n }\n else if (network === 'solana_mainnet') {\n return SOLANA_MAINNET_RPC_URL;\n }\n else if (network === 'surfnet') {\n return SURFNET_RPC_URL;\n }\n return SOLANA_MAINNET_RPC_URL;\n }\n}\nSolanaMobileWalletProvider.instance = null;\n","/**\n * Privy Expo Auth Provider — React Native implementation of AuthProvider.\n *\n * Uses @privy-io/expo instead of @privy-io/react-auth.\n * Uses ReactNativeSessionManager instead of WebSessionManager.\n *\n * IMPORTANT — Expo/RN consumers must:\n * 1. Install polyfills: fast-text-encoding, react-native-get-random-values\n * 2. Install @privy-io/expo, @privy-io/expo-native-extensions\n * 3. Call ReactNativeSessionManager.configure({ storage, atob }) at startup\n * 4. Call setPlatform({ ... }) from @pooflabs/web at startup\n * 5. Wrap their app tree with PrivyProvider from @privy-io/expo\n * 6. Create this provider and pass the Privy hooks/methods via setPrivyMethods()\n *\n * Unlike the web PrivyWalletProvider which renders a hidden React DOM tree\n * to host Privy's React context, this provider expects the RN app itself\n * to render <PrivyProvider> and then bridge the hooks via setPrivyMethods().\n */\nimport { ReactNativeSessionManager as SessionManager, createSessionWithPrivy, buildSetDocumentsTransaction, convertRemainingAccounts, } from '@pooflabs/core';\nimport { setCurrentUser } from '../../global';\nimport { getPlatform } from '../../platform';\nimport { PublicKey, Connection, Transaction, VersionedTransaction, } from '@solana/web3.js';\nimport * as anchor from '@coral-xyz/anchor';\nimport { SOLANA_DEVNET_RPC_URL, SOLANA_MAINNET_RPC_URL } from '..';\nimport { confirmAndCheckTransaction } from './transaction-utils';\nimport bs58 from 'bs58';\nconst SURFNET_RPC_URL = 'https://surfpool.fly.dev';\n// -----------------------------------------------------------------------\n// Provider implementation\n// -----------------------------------------------------------------------\nexport class PrivyExpoProvider {\n constructor(appId, networkUrl = null) {\n this.privyMethods = null;\n this.appId = appId;\n this.networkUrl = networkUrl;\n }\n /**\n * Bridge Privy hooks from the app's React tree into this provider.\n *\n * Call this from a component rendered inside <PrivyProvider>:\n * ```tsx\n * const privy = usePrivy();\n * const wallet = useEmbeddedSolanaWallet();\n * const { getAccessToken } = usePrivy();\n * const { getIdentityToken } = useIdentityToken();\n *\n * useEffect(() => {\n * provider.setPrivyMethods({\n * isReady: privy.isReady,\n * isAuthenticated: !!privy.user,\n * user: privy.user,\n * login: privy.login,\n * logout: privy.logout,\n * getAccessToken,\n * getIdentityToken,\n * getWalletProvider: async () => {\n * if (!wallet.wallets[0]) return null;\n * const provider = await wallet.wallets[0].getProvider();\n * return {\n * address: wallet.wallets[0].address,\n * signMessage: provider.signMessage,\n * signTransaction: provider.signTransaction,\n * signAndSendTransaction: provider.signAndSendTransaction,\n * };\n * },\n * });\n * }, [privy.isReady, privy.user, wallet.wallets]);\n * ```\n */\n setPrivyMethods(methods) {\n this.privyMethods = methods;\n }\n // -------------------------------------------------------------------\n // AuthProvider interface\n // -------------------------------------------------------------------\n async login() {\n var _a;\n await this.ensureReady();\n // Check for existing session — verify the stored address matches the\n // currently authenticated Privy wallet (guards against account switches\n // without an explicit logout).\n const session = await SessionManager.getSession();\n if (session && ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated)) {\n const wallet = await this.privyMethods.getWalletProvider();\n if (wallet && wallet.address === session.address) {\n return { provider: this, address: session.address };\n }\n // Stale session — clear and continue to fresh login flow\n SessionManager.clearSession();\n }\n // Trigger Privy login\n const privyUser = await this.privyMethods.login();\n if (!privyUser)\n return null;\n // Get the wallet\n const wallet = await this.privyMethods.getWalletProvider();\n if (!wallet) {\n throw new Error('No embedded Solana wallet found after login. Ensure embeddedWallets.solana.createOnLogin is configured.');\n }\n // Create Tarobase session\n const accessToken = await this.privyMethods.getAccessToken();\n const identityToken = await this.privyMethods.getIdentityToken();\n if (!accessToken || !identityToken) {\n throw new Error('Failed to get Privy tokens after login.');\n }\n await this.createSession(wallet.address, accessToken, identityToken);\n const user = { provider: this, address: wallet.address };\n setCurrentUser(user);\n return user;\n }\n async runTransaction(_evmTransactionData, solTransactionData, options) {\n var _a;\n await this.ensureReady();\n if (!solTransactionData) {\n throw new Error('Solana transaction data is required');\n }\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl(solTransactionData.network);\n const connection = new Connection(rpcUrl, 'confirmed');\n const remainingAccounts = convertRemainingAccounts(solTransactionData.txArgs[0].remainingAccounts);\n let app_id = solTransactionData.appId;\n if (typeof globalThis !== 'undefined' && globalThis.CUSTOM_TAROBASE_APP_ID_HEADER) {\n app_id = globalThis.CUSTOM_TAROBASE_APP_ID_HEADER;\n }\n if (!app_id) {\n throw new Error('App ID is required');\n }\n // Create a mock wallet adapter for Anchor (only publicKey needed for building TX)\n const walletPublicKey = new PublicKey(wallet.address);\n const anchorWallet = {\n publicKey: walletPublicKey,\n signTransaction: async (tx) => tx,\n signAllTransactions: async (txs) => txs,\n };\n const anchorProvider = new anchor.AnchorProvider(connection, anchorWallet, anchor.AnchorProvider.defaultOptions());\n const finalDeduped = [];\n for (const acc of remainingAccounts) {\n const existing = finalDeduped.find((d) => d.pubkey.equals(acc.pubkey));\n if (existing) {\n existing.isSigner = existing.isSigner || acc.isSigner;\n existing.isWritable = existing.isWritable || acc.isWritable;\n }\n else {\n finalDeduped.push(acc);\n }\n }\n const { tx, blockhash, lastValidBlockHeight } = await buildSetDocumentsTransaction(connection, solTransactionData.txArgs[0].idl, anchorProvider, walletPublicKey, {\n app_id,\n documents: solTransactionData.txArgs[0].setDocumentData,\n delete_paths: solTransactionData.txArgs[0].deletePaths,\n txData: solTransactionData.txArgs[0].txData,\n }, finalDeduped, solTransactionData.lutKey, solTransactionData.preInstructions, false, solTransactionData.additionalLutAddresses);\n // Set blockhash\n const isLegacyTx = 'recentBlockhash' in tx &&\n !('message' in tx && 'staticAccountKeys' in tx.message);\n if (isLegacyTx) {\n tx.recentBlockhash = blockhash;\n tx.lastValidBlockHeight = lastValidBlockHeight;\n }\n else {\n tx.message.recentBlockhash = blockhash;\n }\n try {\n if ((options === null || options === void 0 ? void 0 : options.shouldSubmitTx) === false) {\n // Sign only — don't submit\n const signed = await wallet.signTransaction(tx);\n return {\n signedTransaction: signed.signedTransaction,\n blockNumber: 0,\n gasUsed: '0',\n data: '',\n };\n }\n // Sign and submit\n const { signature, txInfo } = await this.signAndSubmitInternal(tx, wallet, rpcUrl, connection);\n return {\n transactionSignature: signature,\n blockNumber: (txInfo === null || txInfo === void 0 ? void 0 : txInfo.slot) || 0,\n gasUsed: ((_a = txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta) === null || _a === void 0 ? void 0 : _a.fee.toString()) || '0',\n data: txInfo === null || txInfo === void 0 ? void 0 : txInfo.meta,\n };\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n }\n async signMessage(message) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n const messageBytes = getPlatform().textEncode(message);\n const result = await wallet.signMessage(messageBytes);\n return bs58.encode(result.signature);\n }\n async signTransaction(transaction) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n // Ensure blockhash is set\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n if (!legacyTx.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n }\n if (!legacyTx.feePayer) {\n legacyTx.feePayer = new PublicKey(wallet.address);\n }\n }\n else {\n const versionedTx = transaction;\n if (!versionedTx.message.recentBlockhash) {\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n }\n const result = await wallet.signTransaction(transaction);\n // Deserialize the signed transaction\n const signedBytes = result.signedTransaction;\n try {\n return VersionedTransaction.deserialize(signedBytes);\n }\n catch (_a) {\n return Transaction.from(signedBytes);\n }\n }\n async signAndSubmitTransaction(transaction, feePayer) {\n await this.ensureReady();\n const wallet = await this.getWalletOrThrow();\n const rpcUrl = this.getRpcUrl();\n const connection = new Connection(rpcUrl, 'confirmed');\n // Ensure blockhash\n const isLegacyTx = 'recentBlockhash' in transaction &&\n !('message' in transaction && 'staticAccountKeys' in transaction.message);\n if (isLegacyTx) {\n const legacyTx = transaction;\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');\n legacyTx.recentBlockhash = blockhash;\n legacyTx.lastValidBlockHeight = lastValidBlockHeight;\n legacyTx.feePayer = feePayer || new PublicKey(wallet.address);\n }\n else {\n const versionedTx = transaction;\n const { blockhash } = await connection.getLatestBlockhash('confirmed');\n versionedTx.message.recentBlockhash = blockhash;\n }\n const { signature } = await this.signAndSubmitInternal(transaction, wallet, rpcUrl, connection);\n return signature;\n }\n async restoreSession() {\n const session = await SessionManager.getSession();\n if (session) {\n return { provider: this, address: session.address };\n }\n return null;\n }\n async logout() {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isAuthenticated) {\n await this.privyMethods.logout();\n }\n SessionManager.clearSession();\n }\n async getNativeMethods() {\n return this.privyMethods;\n }\n // -------------------------------------------------------------------\n // Private helpers\n // -------------------------------------------------------------------\n async createSession(address, accessToken, idToken) {\n if (!accessToken || !idToken)\n return;\n const result = await createSessionWithPrivy(accessToken, address, idToken);\n if (result) {\n await SessionManager.storeSession(address, result.accessToken, result.idToken, result.refreshToken);\n }\n }\n async getWalletOrThrow() {\n var _a;\n const wallet = await ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.getWalletProvider());\n if (!wallet) {\n throw new Error('No Privy wallet available. Ensure the user is logged in and an embedded Solana wallet exists.');\n }\n return wallet;\n }\n async signAndSubmitInternal(transaction, wallet, rpcUrl, connection) {\n let signature;\n if (rpcUrl.includes('surfpool') || rpcUrl === SURFNET_RPC_URL) {\n // Surfnet: sign locally, then submit raw\n const signed = await wallet.signTransaction(transaction);\n const txSig = await connection.sendRawTransaction(signed.signedTransaction, {\n skipPreflight: true,\n maxRetries: 3,\n });\n signature = txSig;\n }\n else {\n // Non-Surfnet: use Privy's combined sign+send\n const result = await wallet.signAndSendTransaction(transaction, connection);\n signature = result.signature;\n }\n const txInfo = await confirmAndCheckTransaction(connection, signature);\n return { signature, txInfo };\n }\n getRpcUrl(network) {\n if (this.networkUrl)\n return this.networkUrl;\n if (network === 'solana_devnet')\n return SOLANA_DEVNET_RPC_URL;\n if (network === 'solana_mainnet')\n return SOLANA_MAINNET_RPC_URL;\n if (network === 'surfnet')\n return SURFNET_RPC_URL;\n return SOLANA_MAINNET_RPC_URL;\n }\n async ensureReady(timeoutMs = 15000) {\n if (!this.privyMethods) {\n throw new Error('PrivyExpoProvider.setPrivyMethods() must be called before using auth. ' +\n 'Bridge the Privy hooks from your React Native component tree.');\n }\n if (this.privyMethods.isReady)\n return;\n return new Promise((resolve, reject) => {\n const startTime = Date.now();\n const check = () => {\n var _a;\n if ((_a = this.privyMethods) === null || _a === void 0 ? void 0 : _a.isReady) {\n resolve();\n }\n else if (Date.now() - startTime > timeoutMs) {\n reject(new Error('Privy Expo SDK failed to initialize within timeout.'));\n }\n else {\n setTimeout(check, 100);\n }\n };\n check();\n });\n }\n}\n"],"names":["require","exports","this","axios","buffer","base64Js","hasRequiredBase64Js","requireBase64Js","ieee754","hasRequiredIeee754","requireIeee754","hasRequiredBuffer","requireBuffer","bufferExports","hasRequiredBs58","requireBs58","bs58Exports","bs58","getIdToken","init","SURFNET_RPC_URL","login","logout","configInit","authLogin","authLogout","React","sdkLogin","sdkLogout","getIdTokenCore","require$$0","require$$1","ReactDOM","SessionManager","Buffer","getAllowedNumericKeypaths","memoizedKeypaths","normalizeHeaders","createSolanaJsonRpcIntegerOverflowError","o","EXPLICIT_ABORT_TOKEN","createExplicitAbortToken","fastStableStringify","t"],"mappings":"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AG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,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C,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;;IAExB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI;IACxB,CAAC,CAAC,EAAE,CAAC,GA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,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;AACtF,QAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE;;AAEtF,IAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,E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AAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,MAAM;AAChC,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM;AAChG,MAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,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C,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI;AAC3C,IAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,C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I,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,IAAE,EAAE,IAAI,CAAC,GAAG,EAAE;AACd,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACX,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,IAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAChB,I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C,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;;AAExB;IACE,CAAC,GAAG,CAAC;IACL,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;IACnE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CA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E,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAChD,IAAE,UAAU,EAAE,UAAU,EAAE,UA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AAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC1D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;MACjD,EAAE,IAAI,SAAS;AACnB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAA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,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5B,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACvC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;AACzC,MAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACnC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB;MACI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,MAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;MACrC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;MACxB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3D,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC;MAClD,GAAG,IAAI,SAAS;AACpB,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AACb,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AACf,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;QACT,GAAG,CAAC,MAAM,EAAE;AAClB,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;AACA,IAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;MACd,WAAW,GAAG,UAAU;AAC5B,IAAA;;IAEE,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;MACjC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;MAC3C,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;;MAErC,IAAI,KAAK,GAAG,CAAC;MACb,IAAI,OAAO,GAAG,CAAC;AACnB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C;AACA;QACM,IAAI,MAAM,GAAG,OAAO;QACpB,OAAO,GAAG,CAAC;AACjB,QAAM,IAAI,KAAK,GAAG,KAAK,GAAG,SAAS;AACnC,QAAM,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;AACrE,UAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;UACb,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;UACzB,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,UAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;;AAErB,UAAQ,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS;AAC9B,UAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC;AACrD,UAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAC7B,UAAQ,KAAK,GAAG,EAAE,GAAG,SAAS;UACtB,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;;AAE3C,UAAQ,OAAO,IAAI,MAAM,KAAK,EAAE;UACxB,MAAM,IAAI,SAAS;AAC3B,QAAA;AACA,QAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QACpB,KAAK,GAAG,MAAM;QACd,MAAM,GAAG,OAAO;AACtB,MAAA;AACA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;AAC1B,MAAA,CAAK,MAAM;QACL,GAAG,CAAC,MAAM,EAAE;AAClB,MAAA;;AAEA,MAAI,OAAO,GAAG,CAAC,MAAM,EAAE;AACvB,IAAA;;IAEE,SAAS,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACvC;AACA;AACA;MACI,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACnC,IAAA;;AAEA,IAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AACjD,MAAI,IAAI,GAAG;MACP,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACtC,MAAI,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;QAC3C,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACvC,MAAA,CAAK,MAAM,IAAI,GAAG,GAAG,EAAE,EAAE;QACnB,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC,MAAA,CAAK,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;QACrB,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACpC,MAAA,CAAK,MAAM;QACL,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AACtC,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;AAsMH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AAC1B,MAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;MAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;IAC/B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AAC1B,MAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;MAC/C,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;IACrC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;IACxC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC1B,MAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE5B,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;;AAE3B;MACI,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;QACjC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,KAAK,KAAK,GAAG,SAAS,CAAC;QAC9C,KAAK,KAAK,EAAE;AAClB,QAAM,KAAK,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC;AAClC;AACA,QAAM,KAAK,IAAI,EAAE,KAAK,EAAE;QAClB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACpC,MAAA;;AAEA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QACrB,IAAI,CAAC,MAAM,EAAE;AACnB,MAAA;AACA,MAAI,IAAI,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;;MAEzC,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI;IACxC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AACrC,MAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;MACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAClC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AAC3B,MAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;;AAExC;MACI,IAAI,GAAG,GAAG,IAAI;MACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE;AACxD,QAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACtB,MAAA;;AAEA,MAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;AAC9D,UAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;;AAExB,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE;MAC3C,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,MAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;MACjB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE;AAC3B,MAAI,IAAI,SAAS,GAAG,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,MAAI,IAAI,CAAC;;AAET,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,IAAI,KAAK,GAAG,CAAC;;AAEnB,QAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS;AAChD,UAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC;UAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;AACjC,UAAQ,KAAK,GAAG,QAAQ,MAAM,EAAE,GAAG,CAAC,CAAC;AACrC,QAAA;;QAEM,IAAI,KAAK,EAAE;AACjB,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;UACrB,IAAI,CAAC,MAAM,EAAE;AACrB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,QAAA;;QAEM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9B,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACzB,QAAA;;AAEA,QAAM,IAAI,CAAC,MAAM,IAAI,CAAC;AACtB,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAC7C;AACA,MAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC/B,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAG;;AAEH;AACA;AACA;AACA,IAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;MAC3D,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,MAAI,IAAI,CAAC;MACL,IAAI,IAAI,EAAE;QACR,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE;AACnC,MAAA,CAAK,MAAM;QACL,CAAC,GAAG,CAAC;AACX,MAAA;;AAEA,MAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;AACrB,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;MAC9C,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC;MAC/C,IAAI,WAAW,GAAG,QAAQ;;MAE1B,CAAC,IAAI,CAAC;MACN,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;;AAEtB;MACI,IAAI,WAAW,EAAE;AACrB,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAClC,UAAQ,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,QAAA;AACA,QAAM,WAAW,CAAC,MAAM,GAAG,CAAC;AAC5B,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAEZ,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,QAAM,IAAI,CAAC,MAAM,IAAI,CAAC;AACtB,QAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA;AACA,MAAA,CAAK,MAAM;AACX,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,MAAM,GAAG,CAAC;AACrB,MAAA;;MAEI,IAAI,KAAK,GAAG,CAAC;MACb,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;AACxD,QAAM,KAAK,GAAG,IAAI,GAAG,IAAI;AACzB,MAAA;;AAEA;AACA,MAAI,IAAI,WAAW,IAAI,KAAK,KAAK,CAAC,EAAE;QAC9B,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK;AACrD,MAAA;;AAEA,MAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,MAAM,GAAG,CAAC;AACrB,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;AAEH,IAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7D;AACA,MAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;MAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC5C,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;MACvC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;MACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;MACvC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;MACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MACxC,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC;AAC/C,MAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;MAChB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE;AAC1B,MAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;AAElB;MACI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK;;AAEtC;MACI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;AAEzB,MAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACpB,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE;MAC3C,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC;AACjD,MAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;MACjB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE;;MAEvB,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,yCAAyC,CAAC;;AAE1E,MAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAM,CAAC,EAAE;AACT,MAAA;AACA,MAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE1C,MAAI,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;AACzC,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;MACzC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;AAC3B,MAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;;AAExC;AACA,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,QAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC3D,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjD,UAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC;AACzB,UAAQ,OAAO,IAAI;AACnB,QAAA;;AAEA,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrB,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA;AACA,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;;AAExB;MACI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;AACxE,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;QAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;UACzB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AAC7B,QAAA,CAAO,MAAM;UACL,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3B,QAAA;AACA,MAAA;AACA,MAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;;AAE9C,MAAI,OAAO,IAAI;IACf,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;AAC3B,MAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;;AAExC,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrB,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA,MAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;;AAExB,MAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAChD,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,QAAM,IAAI,CAAC,QAAQ,GAAG,CAAC;AACvB,MAAA,CAAK,MAAM;AACX;QACM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjE,UAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;UAC1B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC9B,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AACvC,MAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;;AAErB,MAAI,OAAO,IAAI;IACf,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AACrC,MAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE;IAC9B,CAAG;;AAEH,IAAE,EAAE,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACtE,MAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK;AAChC,MAAI,IAAI,CAAC;;AAET,MAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;AAErB,MAAI,IAAI,CAAC;MACL,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK;AAC7C,QAAM,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;AAC1C,QAAM,CAAC,IAAI,KAAK,GAAG,SAAS;AAC5B,QAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;AAC3C,MAAA;MACI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,QAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK;AAC7C,QAAM,KAAK,GAAG,CAAC,IAAI,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;AAC3C,MAAA;;MAEI,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;;AAEzC;AACA,MAAI,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;MACpB,KAAK,GAAG,CAAC;AACb,MAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,QAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACtC,QAAM,KAAK,GAAG,CAAC,IAAI,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;AACnC,MAAA;AACA,MAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;;AAErB,MAAI,OAAO,IAAI,CAAC,MAAM,EAAE;IACxB,CAAG;;AAEH,IAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;MACpD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;;AAExC,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;MACpB,IAAI,CAAC,GAAG,GAAG;;AAEf;AACA,MAAI,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;MACnC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACtC,MAAI,KAAK,GAAG,EAAE,GAAG,OAAO;AACxB,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AACxB,QAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACrB,QAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACrC,MAAA;;AAEA;MACI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAC/B,MAAI,IAAI,CAAC;;AAET,MAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AACxB,QAAM,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AACtB,QAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;QAChB,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACnC,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,UAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;QACvB,CAAC,GAAG,IAAI;QACR,IAAI,CAAC,EAAE;AACb,UAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACtB,QAAA;AACA,MAAA;;AAEA,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS;AACtD,WAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;AAEvC;AACA;AACA,QAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC;;QAExC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,QAAM,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC/B,UAAQ,EAAE,EAAE;AACZ,UAAQ,CAAC,CAAC,QAAQ,GAAG,CAAC;UACd,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,UAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,YAAU,CAAC,CAAC,QAAQ,IAAI,CAAC;AACzB,UAAA;AACA,QAAA;QACM,IAAI,CAAC,EAAE;AACb,UAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AACvB,QAAA;AACA,MAAA;MACI,IAAI,CAAC,EAAE;QACL,CAAC,CAAC,MAAM,EAAE;AAChB,MAAA;MACI,CAAC,CAAC,MAAM,EAAE;;AAEd;MACI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACvC,QAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACrB,MAAA;;AAEA,MAAI,OAAO;AACX,QAAM,GAAG,EAAE,CAAC,IAAI,IAAI;AACpB,QAAM,GAAG,EAAE;OACN;IACL,CAAG;;AAEH;AACA;AACA;AACA;AACA,IAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9D,MAAI,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;;AAEzB,MAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACvB,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;SACd;AACP,MAAA;;AAEA,MAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG;AACrB,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnD,QAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;;AAExC,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC3B,QAAA;;AAEA,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;UACnB,IAAI,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5C,YAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,UAAA;AACA,QAAA;;AAEA,QAAM,OAAO;UACL,GAAG,EAAE,GAAG;AAChB,UAAQ,GAAG,EAAE;SACN;AACP,MAAA;;AAEA,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnD,QAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;;AAExC,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC3B,QAAA;;AAEA,QAAM,OAAO;UACL,GAAG,EAAE,GAAG;UACR,GAAG,EAAE,GAAG,CAAC;SACV;AACP,MAAA;;MAEI,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,MAAM,CAAC,EAAE;AAC9C,QAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;;AAE9C,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;UACnB,IAAI,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5C,YAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,UAAA;AACA,QAAA;;AAEA,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,GAAG,CAAC,GAAG;AACpB,UAAQ,GAAG,EAAE;SACN;AACP,MAAA;;AAEA;;AAEA;AACA,MAAI,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACvD,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,UAAQ,GAAG,EAAE;SACN;AACP,MAAA;;AAEA;AACA,MAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,OAAO;AACf,YAAU,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,YAAU,GAAG,EAAE;WACN;AACT,QAAA;;AAEA,QAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,UAAQ,OAAO;YACL,GAAG,EAAE,IAAI;AACnB,YAAU,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;WACrC;AACT,QAAA;;AAEA,QAAM,OAAO;AACb,UAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,UAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACrC;AACP,MAAA;;MAEI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG;IAC7C,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG;IAC7C,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG;IAC5C,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE;MAC9C,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE7B;MACI,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG;;MAElC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG;;MAE3D,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;MACvB,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;MACrB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;;AAE3B;AACA,MAAI,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;;AAEzD;MACI,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC1B,MAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE5B,MAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;MACxB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG;;MAEvB,IAAI,GAAG,GAAG,CAAC;AACf,MAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG;AACjD,MAAA;;AAEA,MAAI,OAAO,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG;IAChC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC1B,MAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG;;AAE5B,MAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC;;MAExB,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS;AACrD,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACnC,QAAM,KAAK,GAAG,CAAC,GAAG,GAAG;AACrB,MAAA;;MAEI,IAAI,CAAC,MAAM,EAAE;MACb,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI;IACxC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACxC,MAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC5B,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;;MAEnB,IAAI,CAAC,GAAG,IAAI;AAChB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;;AAErB,MAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC1B,QAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAA,CAAK,MAAM;AACX,QAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACnB,MAAA;;AAEA;AACA,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACrB,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;AAErB;AACA,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACrB,MAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;MAEjB,IAAI,CAAC,GAAG,CAAC;;MAET,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AACrC,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,QAAM,EAAE,CAAC;AACT,MAAA;;AAEA,MAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;AACtB,MAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;;AAEtB,MAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;AACxB,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;YACd,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACtC,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,YAAA;;AAEA,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,UAAA;AACA,QAAA;;AAEA,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;YACd,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACtC,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,cAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtB,YAAA;;AAEA,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,YAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,UAAA;AACA,QAAA;;QAEM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAO,MAAM;AACb,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;AACV,QAAM,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;OAChB;IACL,CAAG;;AAEH;AACA;AACA;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE;AAC5C,MAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AAC5B,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;;MAEnB,IAAI,CAAC,GAAG,IAAI;AAChB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;;AAErB,MAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC1B,QAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnB,MAAA,CAAK,MAAM;AACX,QAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE;AACnB,MAAA;;AAEA,MAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,MAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;;AAEtB,MAAI,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE;;AAEzB,MAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC3C,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,YAAU,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AAC1B,cAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA;;AAEA,YAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,UAAA;AACA,QAAA;;AAEA,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/E,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,YAAU,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AAC1B,cAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAA;;AAEA,YAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,UAAA;AACA,QAAA;;QAEM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA,CAAO,MAAM;AACb,UAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,UAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACnB,QAAA;AACA,MAAA;;AAEA,MAAI,IAAI,GAAG;MACP,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;QACnB,GAAG,GAAG,EAAE;AACd,MAAA,CAAK,MAAM;QACL,GAAG,GAAG,EAAE;AACd,MAAA;;MAEI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,QAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE;MACnC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE;;AAEvC,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,MAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE;AACvB,MAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;AAClB,MAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;;AAElB;AACA,MAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE;AAC3D,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAA;;AAEA,MAAI,GAAG;AACP,QAAM,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,QAAA;AACA,QAAM,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,UAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnB,QAAA;;QAEM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACtB,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB;UACQ,IAAI,CAAC,GAAG,CAAC;UACT,CAAC,GAAG,CAAC;UACL,CAAC,GAAG,CAAC;AACb,QAAA,CAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;UACrC;AACR,QAAA;;AAEA,QAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACf,MAAA,CAAK,QAAQ,IAAI;;AAEjB,MAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACrC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;MACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,IAAI;MACrC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACpC,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MACxC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;IAC9B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,MAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnC,MAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;MAChB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE;AAC1B,MAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;AAElB;AACA,MAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,QAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxB,QAAM,OAAO,IAAI;AACjB,MAAA;;AAEA;MACI,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACzB,CAAC,IAAI,KAAK;AAChB,QAAM,KAAK,GAAG,CAAC,KAAK,EAAE;QAChB,CAAC,IAAI,SAAS;AACpB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACvB,MAAA;AACA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QACrB,IAAI,CAAC,MAAM,EAAE;AACnB,MAAA;AACA,MAAI,OAAO,IAAI;IACf,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,MAAI,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,MAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC;;AAE1B,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;MAC/C,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC;;MAE7C,IAAI,CAAC,MAAM,EAAE;;AAEjB,MAAI,IAAI,GAAG;AACX,MAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,GAAG,GAAG,CAAC;AACb,MAAA,CAAK,MAAM;QACL,IAAI,QAAQ,EAAE;UACZ,GAAG,GAAG,CAAC,GAAG;AAClB,QAAA;;AAEA,QAAM,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,mBAAmB,CAAC;;QAE7C,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B,QAAM,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;AAC5C,MAAA;MACI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAC5C,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;AACA;AACA;AACA;IACE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,EAAE;AAC5D,MAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC;;MAEvD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;MACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAC5C,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C;MACI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;MACtC,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;;MAEvC,IAAI,GAAG,GAAG,CAAC;AACf,MAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;;AAE9B,QAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,QAAM,IAAI,CAAC,GAAG,CAAC,EAAE;UACT,GAAG,GAAG,EAAE;AAChB,QAAA,CAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;UAChB,GAAG,GAAG,CAAC;AACf,QAAA;QACM;AACN,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;MAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;IAChC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;MAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;IAC/B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;MACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;MACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;MAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;IAC9B,CAAG;;AAEH;AACA;AACA;AACA;IACE,EAAE,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AAC9B,MAAI,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC;IACvB,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MACxC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC;MAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,+BAA+B,CAAC;MAC5D,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;IAC7C,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sDAAsD,CAAC;MACxE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;IACrC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACpD,MAAI,IAAI,CAAC,GAAG,GAAG,GAAG;AAClB,MAAI,OAAO,IAAI;IACf,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE;MAC9C,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC;AAC9D,MAAI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;MACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;MACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;MAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;MACtD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;MAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACnC,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC3D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC3D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC;AAC3D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH;IACE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC;AAC1D,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7B,CAAG;;IAED,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,MAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;MACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;IAClC,CAAG;;AAEH;IACE,IAAI,MAAM,GAAG;MACX,IAAI,EAAE,IAAI;MACV,IAAI,EAAE,IAAI;MACV,IAAI,EAAE,IAAI;AACd,MAAI,MAAM,EAAE;KACT;;AAEH;AACA,IAAE,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;AAC5B;AACA,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI;MAChB,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;MACtB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;MAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;AAElD,MAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AAC1B,IAAA;;IAEE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AAC3C,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;AAC1B,MAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AACpD;AACA;MACI,IAAI,CAAC,GAAG,GAAG;AACf,MAAI,IAAI,IAAI;;AAEZ,MAAI,GAAG;QACD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7B,QAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,QAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE;AAC1B,MAAA,CAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC;;AAE1B,MAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,MAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACnB,QAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,QAAM,CAAC,CAAC,MAAM,GAAG,CAAC;AAClB,MAAA,CAAK,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AACxB,QAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACpB,MAAA,CAAK,MAAM;AACX,QAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE;AACjC;UACQ,CAAC,CAAC,KAAK,EAAE;AACjB,QAAA,CAAO,MAAM;AACb;UACQ,CAAC,CAAC,MAAM,EAAE;AAClB,QAAA;AACA,MAAA;;AAEA,MAAI,OAAO,CAAC;IACZ,CAAG;;AAEH,IAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;MACnD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAChC,CAAG;;IAED,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;MAC5C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAG;;IAED,SAAS,IAAI,IAAI;MACf,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,MAAM;AACZ,QAAM,yEAAyE,CAAC;AAChF,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;AAExB,IAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;AACxD;MACI,IAAI,IAAI,GAAG,QAAQ;;AAEvB,MAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1C,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,MAAA;AACA,MAAI,MAAM,CAAC,MAAM,GAAG,MAAM;;AAE1B,MAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3B,QAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACxB,QAAM,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB;AACN,MAAA;;AAEA;MACI,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,MAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;;AAE/C,MAAI,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1D,IAAI,GAAG,IAAI;AACjB,MAAA;MACI,IAAI,MAAM,EAAE;MACZ,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;MAC1B,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AACzC,QAAM,KAAK,CAAC,MAAM,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM;AACX,QAAM,KAAK,CAAC,MAAM,IAAI,CAAC;AACvB,MAAA;IACA,CAAG;;IAED,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC9C;MACI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;MACzB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACjC,MAAI,GAAG,CAAC,MAAM,IAAI,CAAC;;AAEnB;MACI,IAAI,EAAE,GAAG,CAAC;AACd,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9B,QAAM,EAAE,IAAI,CAAC,GAAG,KAAK;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS;AACnC,QAAM,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,SAAS,IAAI,CAAC,CAAC;AAC5C,MAAA;;AAEA;AACA,MAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QACnC,GAAG,CAAC,MAAM,EAAE;AAClB,QAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;UACnC,GAAG,CAAC,MAAM,EAAE;AACpB,QAAA;AACA,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,SAAS,IAAI,IAAI;MACf,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,MAAM;AACZ,QAAM,gEAAgE,CAAC;AACvE,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;IAEtB,SAAS,IAAI,IAAI;MACf,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,MAAM;AACZ,QAAM,uDAAuD,CAAC;AAC9D,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;;IAEtB,SAAS,MAAM,IAAI;AACrB;MACI,MAAM,CAAC,IAAI;AACf,QAAM,IAAI;AACV,QAAM,OAAO;AACb,QAAM,qEAAqE,CAAC;AAC5E,IAAA;AACA,IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;;IAExB,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAChD;MACI,IAAI,KAAK,GAAG,CAAC;AACjB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAM,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;AAChD,QAAM,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS;QACvB,EAAE,MAAM,EAAE;;AAEhB,QAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;QACjB,KAAK,GAAG,EAAE;AAChB,MAAA;AACA,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK;AACrC,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;IACE,EAAE,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AACpC;MACI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC;;AAEzC,MAAI,IAAI,KAAK;AACb,MAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACzB,QAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,QAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,QAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAA,CAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;AAClC,QAAM,KAAK,GAAG,IAAI,MAAM,EAAE;AAC1B,MAAA,CAAK,MAAM;AACX,QAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC9C,MAAA;AACA,MAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK;;AAExB,MAAI,OAAO,KAAK;IAChB,CAAG;;AAEH;AACA;AACA;AACA,IAAE,SAAS,GAAG,EAAE,CAAC,EAAE;AACnB,MAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,QAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACtB,QAAM,IAAI,CAAC,KAAK,GAAG,KAAK;AACxB,MAAA,CAAK,MAAM;QACL,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gCAAgC,CAAC;AACxD,QAAM,IAAI,CAAC,CAAC,GAAG,CAAC;AAChB,QAAM,IAAI,CAAC,KAAK,GAAG,IAAI;AACvB,MAAA;AACA,IAAA;;IAEE,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE;MAC7C,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,+BAA+B,CAAC;AAC7D,MAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,iCAAiC,CAAC;IACpD,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE;AACpD,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,EAAE,+BAA+B,CAAC;AAC5E,MAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACnC,QAAM,iCAAiC,CAAC;IACxC,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACzC,MAAI,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;;AAEhE,MAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAI,OAAO,CAAC;IACZ,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;AACvC,MAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AACpB,QAAM,OAAO,CAAC,CAAC,KAAK,EAAE;AACtB,MAAA;;AAEA,MAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;IACxC,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAClB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MACnB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAClB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEnB,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MACnB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,QAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtB,MAAA;AACA,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;MAChB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;MACrC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAClC,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;MACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;MACrC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE;;MAEhC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9B,MAAI,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;;AAE1B;AACA,MAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,QAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7B,MAAA;;AAEA;AACA;AACA;MACI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,CAAC;AACb,MAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5C,QAAM,CAAC,EAAE;AACT,QAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACjB,MAAA;AACA,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;;AAEvB,MAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,MAAI,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE;;AAE3B;AACA;AACA,MAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;MACnC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;AAC9B,MAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;AAErC,MAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,QAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;AACrB,MAAA;;MAEI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;MACxC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,CAAC;MACT,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvB,IAAI,GAAG,GAAG,CAAC;AACjB,QAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,UAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE;AAC1B,QAAA;AACA,QAAM,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;AAEtD,QAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrB,QAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACpB,QAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACf,CAAC,GAAG,CAAC;AACX,MAAA;;AAEA,MAAI,OAAO,CAAC;IACZ,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;MACrC,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,MAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5B,QAAM,GAAG,CAAC,QAAQ,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACpC,MAAA,CAAK,MAAM;AACX,QAAM,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3B,MAAA;IACA,CAAG;;AAEH,IAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5C,MAAI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,MAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE;;MAEvC,IAAI,UAAU,GAAG,CAAC;MAClB,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC;AACxC,MAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,MAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACd,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC,MAAA;;AAEA,MAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;MAChB,IAAI,OAAO,GAAG,CAAC;MACf,IAAI,UAAU,GAAG,CAAC;MAClB,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;AACpC,MAAI,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,KAAK,GAAG,EAAE;AAChB,MAAA;;AAEA,MAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,QAAM,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;UACnC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AACjC,UAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAU,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,UAAA;;UAEQ,IAAI,GAAG,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;YAC9B,UAAU,GAAG,CAAC;YACd;AACV,UAAA;;UAEQ,OAAO,KAAK,CAAC;UACb,OAAO,IAAI,GAAG;AACtB,UAAQ,UAAU,EAAE;AACpB,UAAQ,IAAI,UAAU,KAAK,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;;AAE/D,UAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;UACjC,UAAU,GAAG,CAAC;UACd,OAAO,GAAG,CAAC;AACnB,QAAA;QACM,KAAK,GAAG,EAAE;AAChB,MAAA;;AAEA,MAAI,OAAO,GAAG;IACd,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;MACjD,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;MAExB,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;IACpC,CAAG;;IAED,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE;AACzD,MAAI,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE;AACzB,MAAI,GAAG,CAAC,GAAG,GAAG,IAAI;AAClB,MAAI,OAAO,GAAG;IACd,CAAG;;AAEH;AACA;AACA;;IAEE,EAAE,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAChC,MAAI,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC;IACxB,CAAG;;AAEH,IAAE,SAAS,IAAI,EAAE,CAAC,EAAE;AACpB,MAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;MAEjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;MAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE;QACzB,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1C,MAAA;;AAEA,MAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,MAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrC,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;MAEjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,MAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,IAAA;AACA,IAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;;IAEnB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACtD,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAG;;IAED,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE;AAC1D,MAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,MAAI,CAAC,CAAC,GAAG,GAAG,IAAI;AAChB,MAAI,OAAO,CAAC;IACZ,CAAG;;AAEH,IAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;MACzC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AAClC,QAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACpB,QAAM,CAAC,CAAC,MAAM,GAAG,CAAC;AAClB,QAAM,OAAO,CAAC;AACd,MAAA;;MAEI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;MACpC,IAAI,GAAG,GAAG,CAAC;;MAEX,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACtB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAC1B,CAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACxB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAA;;AAEA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;AAEH,IAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;MACvC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;;MAE9D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;MACpC,IAAI,GAAG,GAAG,CAAC;MACX,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QACtB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAC1B,CAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACxB,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,MAAA;;AAEA,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;;IAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AAC1C;MACI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtD,MAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAG;EACH,CAAC,EAAmC,MAAM,EAAEC,EAAI,CAAC,CAAA;;;;;;;;AC39GjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;AACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;AACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AACD;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,YAAY;AAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;AAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AACpD,QAAQ,CAAC;AACT,KAAK,CAAC;AACN,CAAC;AACD;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI;AACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACnF,IAAI,CAAC;AACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3C,YAAY;AACZ,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,CAAC;AACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,IAAI,CAAC;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD;AACA,SAAS,QAAQ,GAAG;AACpB,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;AACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,OAAO,EAAE,CAAC;AACd;;AAEA,IAAI,KAAK,kBAAkB,YAAY;AACvC,IAAI,SAAS,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,IAAI,CAAC;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC,EAAE,CAAC,CAAC;AACL,IAAI,UAAU,kBAAkB,UAAU,MAAM,EAAE;AAClD,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClC,IAAI,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AAC/D,QAAQ,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACtC,QAAQ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACV,IAAI,UAAU,kBAAkB,UAAU,MAAM,EAAE;AAClD,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAClC,IAAI,SAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC9C,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AAC/D,QAAQ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B,QAAQ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AAC1B,QAAQ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9B,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,CAAC;AACL,IAAI,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC,KAAK,CAAC,CAAC;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,YAAY;AACrC,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;AAC1C;AACA,QAAQ,OAAO,SAAS,CAAC;AACzB,IAAI,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,IAAI,OAAO,GAAG;AACd,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AACrD,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,2BAA2B,EAAE,GAAG;AACpC,IAAI,iBAAiB,EAAE,IAAI;AAC3B,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,mBAAmB,EAAE,QAGzB,CAAC,CAAC;AACF,IAAI,qBAAqB,kBAAkB,YAAY;AACvD,IAAI,SAAS,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,KAAK,EAAE,EAAE;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAChC;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE;AAC5C,YAAY,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACvC,YAAY,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AAClG,YAAY,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAChD,YAAY,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACtG,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;AACrD;AACA,YAAY,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,YAAY,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;AACrC,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9B,gBAAgB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE;AAC/C,YAAY,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1C,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;AACjC,gBAAgB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC7C,YAAY,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACvD,YAAY,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAC9F,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;AAC/B,gBAAgB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACjD,YAAY,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,YAAY,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE;AAC7C,YAAY,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACxC,YAAY,KAAK,CAAC,cAAc,EAAE,CAAC;AACnC,YAAY,IAAI,KAAK,CAAC,gBAAgB,EAAE;AACxC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjC,YAAY,CAAC;AACb,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;AAC/B,gBAAgB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACxB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAChC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACvC,YAAY,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC1C,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,YAAY,EAAE;AAC/D,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;AACzD,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,SAAS,EAAE;AAC5D,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,EAAE;AAC3D,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,UAAU,CAAC;AACpD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE;AACnE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,IAAI,CAAC;AAC9C,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE;AACtE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,OAAO,CAAC;AACjD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE;AACrE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,qBAAqB,CAAC,MAAM,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACrE,QAAQ,CAAC;AACT,QAAQ,GAAG,EAAE,UAAU,KAAK,EAAE;AAC9B,YAAY,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACrC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1B,gBAAgB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE;AAC1E,gBAAgB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACjD,oBAAoB,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;AAC1C,gBAAgB,CAAC;AACjB,qBAAqB,IAAI,OAAO,YAAY,IAAI,EAAE;AAClD,oBAAoB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;AACxC,gBAAgB,CAAC;AACjB,qBAAqB;AACrB,oBAAoB,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;AAC9C,gBAAgB,CAAC;AACjB,gBAAgB,OAAO,GAAG,CAAC;AAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,YAAY,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AACpE,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE;AACA;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;AACvD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;AACrD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE;AACzE;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1B,gBAAgB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAC3C,YAAY,CAAC;AACb,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW;AAC5C,kBAAkB,qBAAqB,CAAC,MAAM;AAC9C,kBAAkB,qBAAqB,CAAC,UAAU,CAAC;AACnD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE;AAClE;AACA;AACA;AACA,QAAQ,GAAG,EAAE,YAAY;AACzB,YAAY,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC,CAAC;AACP;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AACpE,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,IAAI,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAC1D,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AACjD,YAAY,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACjD,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrC,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AACxE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;AAC9D,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAQ,CAAC;AACT,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE;AAC3D,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE;AAC3D,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,QAAQ,CAAC;AACT,aAAa;AACb,YAAY,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC/H,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,mBAAmB,EAAE;AACjE,gBAAgB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7C,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE;AACjF,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjD,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACrE,QAAQ,IAAI,GAAG,EAAE,EAAE,CAAC;AACpB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpD,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,IAAI;AAChB,gBAAgB,KAAK,IAAI,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE;AACzJ,oBAAoB,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;AACvD,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7D,gBAAgB,CAAC;AACjB,YAAY,CAAC;AACb,YAAY,OAAO,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACrD,oBAAoB;AACpB,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChH,gBAAgB,CAAC;AACjB,wBAAwB,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE;AACpF,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACnC;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AACzD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACtD,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACrC,QAAQ,CAAC;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACjC;AACA;AACA,YAAY,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAChE,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,2BAA2B,EAAE,2BAA2B,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC5W,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,YAAY,KAAK;AACjB,gBAAgB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACnG,YAAY,IAAI,KAAK,GAAG,oBAAoB,EAAE;AAC9C,gBAAgB,KAAK,GAAG,oBAAoB,CAAC;AAC7C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACzC,QAAQ,OAAO,KAAK,CAAC;AACrB,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACxD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE;AAC9C,YAAY,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;AACvD,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,WAAW,EAAE;AACzE,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC7C,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC/C,YAAY,IAAI,GAAG,GAAG,WAAW,EAAE,CAAC;AACpC,YAAY,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,gBAAgB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,YAAY,CAAC;AACb,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AAC5B,gBAAgB,OAAO,GAAG,CAAC;AAC3B,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;AACnC,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAC3D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACzD,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,KAAK,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,KAAK,MAAM,GAAG,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAClR,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AAC5C,YAAY,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AACnF,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AACrC,YAAY,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC;AAC7D,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,aAAa,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,aAAa,IAAI,CAAC,UAAU,GAAG,EAAE;AACjC;AACA,YAAY,IAAI,KAAK,CAAC,YAAY,EAAE;AACpC,gBAAgB,OAAO;AACvB,YAAY,CAAC;AACb,YAAY,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/E,YAAY,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU;AACxC,kBAAkB,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC;AACtD,kBAAkB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,YAAY,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;AACrD,YAAY,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;AACvC,YAAY,KAAK,CAAC,aAAa,EAAE,CAAC;AAClC,YAAY,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAClH,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACjE,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE,MAAM,EAAE;AAC1E,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE,QAAQ,CAAC;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AAC9D,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7B,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE;AACpF,QAAQ,IAAI,aAAa,IAAI,QAAQ,EAAE;AACvC;AACA,YAAY,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxC,QAAQ,CAAC;AACT,aAAa;AACb;AACA,YAAY,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAQ,CAAC;AACT,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AACnE,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AAChE,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,YAAY,OAAO;AACnB,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9D,IAAI,CAAC,CAAC;AACN,IAAI,qBAAqB,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AACjE,QAAQ,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C,QAAQ,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1C,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,qBAAqB,CAAC;AACjC,CAAC,EAAE,CAAC;;AChkBJ,SAAS,uBAAuB,EAAE,CAAC,EAAE;AACrC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AAClG;;AAEA,IAAI,gBAAgB;AACpB,IAAI,yBAAyB;;AAE7B,SAAS,qBAAqB,IAAI;AAClC,CAAC,IAAI,yBAAyB,EAAE,OAAO,gBAAgB;AACvD,CAAC,yBAAyB,GAAG,CAAC;;AAE9B,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;AAC1B,EAAE,WAAW;AACb,EAAE,aAAa;;AAEf;AACA,EAAE,2BAA2B;AAC7B,EAAE,mBAAmB;AACrB,EAAE,kCAAkC;AACpC,EAAE,iCAAiC;AACnC,EAAE,oCAAoC;AACtC,EAAE,wBAAwB;AAC1B,EAAE,uBAAuB;AACzB,EAAE,oBAAoB;AACtB,EAAE,kBAAkB;AACpB,EAAE,mBAAmB;AACrB,EAAE,iBAAiB;AACnB,EAAE,gCAAgC;AAClC,EAAE,+BAA+B;AACjC,EAAE,gCAAgC;AAClC,EAAE,gCAAgC;AAClC,EAAE,YAAY;AACd,EAAE,6BAA6B;AAC/B,EAAE,2BAA2B;AAC7B,EAAE,mCAAmC;AACrC,EAAE,iCAAiC;AACnC,EAAE,qBAAqB;AACvB,EAAE,cAAc;AAChB,EAAE,YAAY;AACd,EAAE,sBAAsB;AACxB,EAAE,iBAAiB;AACnB,EAAE,gBAAgB;AAClB,EAAE,eAAe;AACjB,EAAE;AACF,EAAE,CAAC;;AAEH;AACA,CAAC,gBAAgB,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAC/D,CAAC,OAAO,gBAAgB;AACxB;;AAEA,IAAI,qBAAqB,GAAG,qBAAqB,EAAE;AACnD,IAAI,cAAc,gBAAgB,uBAAuB,CAAC,qBAAqB,CAAC;;AAEhF,MAAM,SAAS,GAAG,aAAa;AAC/B,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,IAAI,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC;AAC9D,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChD,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC;AAChC;AACA,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AACpD,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3E,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,IAAI,QAAQ,KAAK,CAAC,IAAI,KAAK,cAAc;AACzC,SAAS,CAAC,KAAK,CAAC,QAAQ;AACxB,YAAY,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG;AACzC,aAAa,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAC3E;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/B;AACA,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3F;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/B;AACA,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACjG;AACA,SAAS,iCAAiC,CAAC,KAAK,EAAE;AAClD,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,wBAAwB,CAAC,KAAK,CAAC;AACnE;AACA,SAAS,UAAU,CAAC,KAAK,GAAG,SAAS,EAAE;AACvC,IAAI,MAAM,gBAAgB,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC;AACpE,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,QAAQ,OAAO,CAAC;AAChB,IAAI;AACJ;AACA,IAAI,IAAI,YAAY,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAC7D;AACA,IAAI,IAAI,YAAY,KAAK,CAAC,EAAE;AAC5B,QAAQ,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;AAC/E,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC;AACpC;AACA,SAAS,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE;AACtD,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AACzC;AACA,SAAS,gBAAgB,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,WAAW,GAAG,GAAG,EAAE;AACjF,IAAI,MAAM,eAAe,GAAG,CAAC,IAAI,WAAW,GAAG,WAAW;AAC1D,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAClD,IAAI,OAAO,KAAK,GAAG,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,WAAW,GAAG,GAAG,EAAE;AACxC,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,KAAK;AACnD,QAAQ,MAAM,KAAK,GAAG,WAAW,GAAG,WAAW;AAC/C,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;AACjD,IAAI,CAAC;AACL;AACA,MAAM,eAAe,GAAG;AACxB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,cAAc,EAAE,iCAAiC;AACrD,IAAI,UAAU,EAAE,OAAO;AACvB,IAAI,kBAAkB,EAAE,KAAK;AAC7B,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,IAAI,uBAAuB,EAAE,MAAM,EAAE,CAAC;AACtC,IAAI,gBAAgB,EAAE;AACtB,CAAC;AACD,SAAS,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE;AACnD,IAAI,OAAO,EAAE,GAAG,eAAe,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE;AAC1E;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,GAAG,KAAK,EAAE;AAC/E,IAAI,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,cAAc,IAAI,EAAE,CAAC;AACxE,IAAI,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,CAAC;AAC1D,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,oBAAoB,EAAE;AAC/D,QAAQ,YAAY,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE;AACjD,IAAI;AACJ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY;AACpC,IAAI,OAAO,YAAY;AACvB;AACA,SAAS,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE;AAC1C;AACA,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACvD;AACA,QAAQ,OAAO,MAAM,CAAC,KAAK;AAC3B,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE;AAC/D,QAAQ,OAAO,MAAM,CAAC,SAAS;AAC/B,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE;AACjE,QAAQ,OAAO,MAAM,CAAC,UAAU;AAChC,IAAI;AACJ;AACA,eAAe,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE;AAChD,IAAI,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,YAAY;AACpD,IAAI,MAAM,oBAAoB,GAAG,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,IAAI,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC;AAClG;AACA,IAAI,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE;AAClD,QAAQ,IAAI;AACZ,YAAY,MAAM,wBAAwB,GAAG,MAAM,oBAAoB;AACvE;AACA,YAAY,OAAO,wBAAwB,KAAK,KAAK;AACrD,QAAQ;AACR,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,oBAAoB;AAC/B;AACA,eAAe,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;AACvE,IAAI,YAAY,CAAC,UAAU,IAAI,CAAC;AAChC,IAAI,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,YAAY;AACpE,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC;AAC5D;AACA;AACA,IAAI,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;AACpC,IAAI,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE;AAC/E,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,eAAe;AAC7E,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,mBAAmB,GAAG,KAAK;AACpE,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC,QAAQ;AACR,QAAQ,MAAM,CAAC,OAAO,GAAG,OAAO;AAChC,IAAI;AACJ,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AAC9C,IAAI,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC;AACzD,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACrD,IAAI;AACJ,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,QAAQ,MAAM,aAAa,GAAG,MAAM;AACpC,YAAY,YAAY,CAAC,OAAO,CAAC;AACjC,YAAY,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAQ,CAAC;AACT,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM;AACzC,YAAY,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE;AACpD,gBAAgB,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;AACzE,YAAY;AACZ,QAAQ,CAAC,EAAE,KAAK,CAAC;AACjB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE;AAC7C,YAAY,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClF,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,2BAA2B,CAAC,YAAY,EAAE,KAAK,EAAE;AAChE,IAAI,IAAI,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,OAAO;AACvD,QAAQ,MAAM,YAAY,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC;AAClF;AACA,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,cAAc,KAAK;AACtD,IAAI,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACpF,QAAQ,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC;AACrD,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE;AACjD;AACA,YAAY,MAAM,CAAC,cAAc,GAAG,MAAM,KAAK;AAC/C,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,qBAAqB,GAAG,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,KAAK;AACjG,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AAChC;AACA,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC;AACpE,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC/E;AACA,YAAY,OAAO,KAAK,CAAC,QAAQ;AACjC,QAAQ;AACR,QAAQ,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AACpD,YAAY,OAAO,WAAW,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC;AAC1E,QAAQ;AACR,QAAQ,MAAM,2BAA2B,CAAC,YAAY,EAAE,KAAK,CAAC;AAC9D,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE;AAC1D,CAAC;AACD;AACA,UAAU,CAAC,cAAc,GAAG,cAAc;AAC1C,UAAU,CAAC,kBAAkB,GAAG,kBAAkB;AAClD,UAAU,CAAC,wBAAwB,GAAG,wBAAwB;AAC9D,UAAU,CAAC,iCAAiC,GAAG,iCAAiC;AAChF,UAAU,CAAC,gBAAgB,GAAG,gBAAgB;AAC9C,UAAU,CAAC,WAAW,GAAG,WAAW;AACpC,UAAU,CAAC,gBAAgB,GAAG,gBAAgB;;AAE9C,IAAI,WAAW;AACf,eAAe,kBAAkB,GAAG;AACpC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,WAAW,GAAGC,WAAK,CAAC,MAAM,CAAC;AACnC,YAAY,OAAO,EAAE,MAAM,CAAC,UAAU;AACtC,YAAY,OAAO,EAAE;AACrB,gBAAgB,cAAc,EAAE,kBAAkB;AAClD,aAAa;AACb,YAAY,OAAO,EAAE,KAAK;AAC1B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,WAAW;AACtB;AACA,eAAe,YAAY,GAAG;AAC9B,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B,IAAI,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;AACtD,QAAQ;AACR,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK;AAC9B;AACA,eAAe,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AACvE,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B,IAAI,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AACnD,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,SAAS;AACjB,QAAQ,UAAU,EAAE,MAAM,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,IAAI;AACxB;AACA,eAAe,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;AACxE,IAAI,IAAI,EAAE;AACV;AACA;AACA;AACA,IAAI,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;AAC7H,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM;AAC/C,QAAQ;AACR,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AAC7C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAC9B,IAAI,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AACnD,QAAQ,KAAK;AACb,QAAQ,UAAU,EAAE,MAAM,CAAC,UAAU;AACrC,QAAQ,SAAS;AACjB,QAAQ,OAAO,EAAE,YAAY;AAC7B,QAAQ;AACR,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,IAAI;AAC5B,IAAI,oBAAoB,GAAG,IAAI;AAC/B,eAAe,cAAc,CAAC,YAAY,EAAE;AAC5C,IAAI,IAAI,iBAAiB,IAAI,oBAAoB,KAAK,YAAY,EAAE;AACpE,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,oBAAoB,GAAG,YAAY;AACvC,IAAI,IAAI,aAAa;AACrB,IAAI,aAAa,GAAG,iBAAiB,GAAG,CAAC,YAAY;AACrD,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE;AACrD,YAAY,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AAC5C,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AACtC,YAAY,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACnE,gBAAgB,YAAY;AAC5B,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,OAAO,QAAQ,CAAC,IAAI;AAChC,QAAQ;AACR,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,iBAAiB,KAAK,aAAa,EAAE;AACrD,gBAAgB,iBAAiB,GAAG,IAAI;AACxC,gBAAgB,oBAAoB,GAAG,IAAI;AAC3C,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC,GAAG;AACR,IAAI,OAAO,iBAAiB;AAC5B;AACA,eAAe,wBAAwB,CAAC,oBAAoB,EAAE;AAC9D;;AAEA,MAAM,iBAAiB,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAClC,QAAQ,IAAI,GAAG,KAAK,CAAC;AACrB,YAAY,GAAG,IAAI,IAAI;AACvB,aAAa,IAAI,GAAG,KAAK,CAAC;AAC1B,YAAY,GAAG,IAAI,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC;AACxB,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;AAC3E,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK;AACzC,QAAQ,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC;AAC/E,YAAY,OAAO;AACnB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB,YAAY,KAAK,EAAE,YAAY;AAC/B,SAAS,CAAC,CAAC;AACX,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,UAAU,GAAG;AAC9B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAC/E,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU;AAC9C,YAAY,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE;AACzC,gBAAgB,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU;AACnD,gBAAgB,IAAI,CAAC,YAAY;AACjC,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC;AACpE,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,MAAM,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE;AAChL,oBAAoB,MAAM,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC;AACpG,oBAAoB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAC9F,oBAAoB,IAAI,CAAC,UAAU;AACnC,wBAAwB,OAAO,IAAI;AACnC,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACzD,oBAAoB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACvE,gBAAgB;AAChB;AACA,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB;AACA,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE;AACnE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,YAAY,GAAG;AAC1B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ,QAAQ,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAClE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,eAAe,GAAG;AAC7B;AACA,QAAQ,OAAO,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACxE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,UAAU,GAAG;AACxB,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAC/E,QAAQ,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI;AAC3D,IAAI;AACJ,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAC/E,QAAQ,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI;AAChE,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE;AACnE,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY;AACZ,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAC/E,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,OAAO,GAAG,OAAO;AACpC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAClG,QAAQ,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3F,IAAI;AACJ;AACA,iBAAiB,CAAC,4BAA4B,GAAG,0BAA0B;;AAE3E,IAAI,iBAAiB,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACnD,CAAC,SAAS,EAAE,IAAI;AAChB,CAAC,iBAAiB,EAAE;AACpB,CAAC,CAAC;;AAEF,IAAIC,QAAM,GAAG,EAAE;;AAEf,IAAIC,UAAQ,GAAG,EAAE;;AAEjB,IAAIC,qBAAmB;;AAEvB,SAASC,iBAAe,IAAI;AAC5B,CAAC,IAAID,qBAAmB,EAAE,OAAOD,UAAQ;AACzC,CAACC,qBAAmB,GAAG,CAAC;;AAExB,CAACD,UAAQ,CAAC,UAAU,GAAG,UAAU;AACjC,CAACA,UAAQ,CAAC,WAAW,GAAG,WAAW;AACnC,CAACA,UAAQ,CAAC,aAAa,GAAG,aAAa;;AAEvC,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,SAAS,GAAG,EAAE;AACnB,CAAC,IAAI,GAAG,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,UAAU,GAAG,KAAK;;AAEjE,CAAC,IAAI,IAAI,GAAG,kEAAkE;AAC9E,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClD,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpC,CAAC;;AAED;AACA;AACA,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;;AAElC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE;AACxB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM;;AAEvB,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE;AACpB,KAAK,MAAM,IAAI,KAAK,CAAC,gDAAgD;AACrE,GAAG;;AAEH;AACA;AACA,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAClC,GAAG,IAAI,QAAQ,KAAK,EAAE,EAAE,QAAQ,GAAG,GAAG;;AAEtC,GAAG,IAAI,eAAe,GAAG,QAAQ,KAAK;AACtC,OAAO;AACP,OAAO,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;;AAEzB,GAAG,OAAO,CAAC,QAAQ,EAAE,eAAe;AACpC,CAAC;;AAED;AACA,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE;AAC3B,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,GAAG,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;AAChC,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,eAAe,IAAI,CAAC,GAAG,CAAC,IAAI;AACnD,CAAC;;AAED,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE;AACvD,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,eAAe,IAAI,CAAC,GAAG,CAAC,IAAI;AACnD,CAAC;;AAED,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE;AAC5B,GAAG,IAAI,GAAG;AACV,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AAC1B,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB,GAAG,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEhC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;;AAEjE,GAAG,IAAI,OAAO,GAAG,CAAC;;AAElB;AACA,GAAG,IAAI,GAAG,GAAG,eAAe,GAAG;AAC/B,OAAO,QAAQ,GAAG;AAClB,OAAO,QAAQ;;AAEf,GAAG,IAAI,CAAC;AACR,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AAChC,KAAK,GAAG;AACR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,IAAI;AACxC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;AACvC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AAChC,GAAG;;AAEH,GAAG,IAAI,eAAe,KAAK,CAAC,EAAE;AAC9B,KAAK,GAAG;AACR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AAChC,GAAG;;AAEH,GAAG,IAAI,eAAe,KAAK,CAAC,EAAE;AAC9B,KAAK,GAAG;AACR,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI;AACvC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI;AAChC,GAAG;;AAEH,GAAG,OAAO;AACV,CAAC;;AAED,CAAC,SAAS,eAAe,EAAE,GAAG,EAAE;AAChC,GAAG,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAClC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;AAC7B,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAK,MAAM,CAAC,GAAG,GAAG,IAAI;AACtB,CAAC;;AAED,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1C,GAAG,IAAI,GAAG;AACV,GAAG,IAAI,MAAM,GAAG,EAAE;AAClB,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,KAAK,GAAG;AACR,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ;AACnC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AACrC,QAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAK,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACtC,GAAG;AACH,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE;AACxB,CAAC;;AAED,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE;AAChC,GAAG,IAAI,GAAG;AACV,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM;AACzB,GAAG,IAAI,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC;AAC5B,GAAG,IAAI,KAAK,GAAG,EAAE;AACjB,GAAG,IAAI,cAAc,GAAG,KAAK,CAAC;;AAE9B;AACA,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,cAAc,EAAE;AAC3E,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;AACjG,GAAG;;AAEH;AACA,GAAG,IAAI,UAAU,KAAK,CAAC,EAAE;AACzB,KAAK,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACzB,KAAK,KAAK,CAAC,IAAI;AACf,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,OAAO;AACP,MAAM;AACN,GAAG,CAAC,MAAM,IAAI,UAAU,KAAK,CAAC,EAAE;AAChC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACjD,KAAK,KAAK,CAAC,IAAI;AACf,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;AACxB,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAChC,OAAO;AACP,MAAM;AACN,GAAG;;AAEH,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE;AACvB,CAAC;AACD,CAAC,OAAOA,UAAQ;AAChB;;AAEA,IAAIG,SAAO,GAAG,EAAE;;AAEhB;;AAEA,IAAIC,oBAAkB;;AAEtB,SAASC,gBAAc,IAAI;AAC3B,CAAC,IAAID,oBAAkB,EAAE,OAAOD,SAAO;AACvC,CAACC,oBAAkB,GAAG,CAAC;AACvB,CAACD,SAAO,CAAC,IAAI,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9D,GAAG,IAAI,CAAC,EAAE,CAAC;AACX,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AACrC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AAC7B,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC;AACxB,GAAG,IAAI,KAAK,GAAG,EAAE;AACjB,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC;AAClC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;AACxB,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;;AAE7B,GAAG,CAAC,IAAI,CAAC;;AAET,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACjB,GAAG,KAAK,IAAI,IAAI;AAChB,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;AAE9E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACjB,GAAG,KAAK,IAAI,IAAI;AAChB,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;AAE9E,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE;AAChB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AAClB,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE;AAC1B,KAAK,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,QAAQ;AAC9C,GAAG,CAAC,MAAM;AACV,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;AAClB,GAAG;AACH,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;AACjD,CAAC,CAAC;;AAEF,CAACA,SAAO,CAAC,KAAK,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;AACtE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACd,GAAG,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;AACrC,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AAC7B,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC;AACxB,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AAClC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;AACxB,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;;AAE9D,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE1B,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC3C,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,KAAK,CAAC,GAAG,IAAI;AACb,GAAG,CAAC,MAAM;AACV,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/C,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,OAAO,CAAC,EAAE;AACV,OAAO,CAAC,IAAI,CAAC;AACb,KAAK;AACL,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE;AACzB,OAAO,KAAK,IAAI,EAAE,GAAG,CAAC;AACtB,KAAK,CAAC,MAAM;AACZ,OAAO,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AAC3C,KAAK;AACL,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE;AACzB,OAAO,CAAC,EAAE;AACV,OAAO,CAAC,IAAI,CAAC;AACb,KAAK;;AAEL,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE;AAC5B,OAAO,CAAC,GAAG,CAAC;AACZ,OAAO,CAAC,GAAG,IAAI;AACf,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE;AAChC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAChD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;AACpB,KAAK,CAAC,MAAM;AACZ,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7D,OAAO,CAAC,GAAG,CAAC;AACZ,KAAK;AACL,GAAG;;AAEH,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;;AAElF,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;AACtB,GAAG,IAAI,IAAI,IAAI;AACf,GAAG,OAAO,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;;AAEjF,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;AACpC,CAAC,CAAC;AACF,CAAC,OAAOA,SAAO;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIG,mBAAiB;;AAErB,SAASC,eAAa,IAAI;AAC1B,CAAC,IAAID,mBAAiB,EAAE,OAAOP,QAAM;AACrC,CAACO,mBAAiB,GAAG,CAAC;AACtB,CAAC,CAAC,UAAU,SAAS,EAAE;;AAEvB,EAAE,MAAM,MAAM,GAAGJ,iBAAe,EAAE;AAClC,EAAE,MAAM,OAAO,GAAGG,gBAAc,EAAE;AAClC,EAAE,MAAM,mBAAmB;AAC3B,IAAI,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU;AACxE,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AACnD,QAAQ,IAAI;;AAEZ,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM;AAC3B,EAAE,SAAS,CAAC,UAAU,GAAG,UAAU;AACnC,EAAE,SAAS,CAAC,iBAAiB,GAAG,EAAE;;AAElC,EAAE,MAAM,YAAY,GAAG,UAAU;AACjC,EAAE,SAAS,CAAC,UAAU,GAAG,YAAY;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,mBAAmB,GAAG,iBAAiB,EAAE;;AAElD,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,OAAO,OAAO,KAAK,WAAW;AACnE,MAAM,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;AAC3C,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM,2EAA2E;AACjF,MAAM;AACN,KAAK;AACL,EAAE;;AAEF,EAAE,SAAS,iBAAiB,IAAI;AAChC;AACA,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;AACtD,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC;AACxD,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC;AACvC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,KAAK;AAC3B,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,OAAO;AACb,IAAI;AACJ,EAAE;;AAEF,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE;AACpD,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,GAAG,EAAE,YAAY;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;AACzC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI;AACJ,GAAG,CAAC;;AAEJ,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE;AACpD,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,GAAG,EAAE,YAAY;AACrB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;AACzC,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI;AACJ,GAAG,CAAC;;AAEJ,EAAE,SAAS,YAAY,EAAE,MAAM,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,YAAY,EAAE;AAC/B,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,GAAG,MAAM,GAAG,gCAAgC;AACpF,IAAI;AACJ;AACA,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACtC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;AAChD,IAAI,OAAO;AACX,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,SAAS,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAClD;AACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;AAChD,QAAQ,MAAM,IAAI,SAAS;AAC3B,UAAU;AACV;AACA,MAAM;AACN,MAAM,OAAO,WAAW,CAAC,GAAG;AAC5B,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM;AAC7C,EAAE;;AAEF,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;;AAEzB,EAAE,SAAS,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAClD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,OAAO,UAAU,CAAC,KAAK,EAAE,gBAAgB;AAC/C,IAAI;;AAEJ,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACnC,MAAM,OAAO,aAAa,CAAC,KAAK;AAChC,IAAI;;AAEJ,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACvB,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,6EAA6E;AACrF,QAAQ,sCAAsC,IAAI,OAAO,KAAK;AAC9D;AACA,IAAI;;AAEJ,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;AACtC,SAAS,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE;AAC1D,MAAM,OAAO,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAC5D,IAAI;;AAEJ,IAAI,IAAI,OAAO,iBAAiB,KAAK,WAAW;AAChD,SAAS,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC;AAC7C,SAAS,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE;AACjE,MAAM,OAAO,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAC5D,IAAI;;AAEJ,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ;AACR;AACA,IAAI;;AAEJ,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;AACpD,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,EAAE;AAC9C,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM;AAC1D,IAAI;;AAEJ,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;AAC/B,IAAI,IAAI,CAAC,EAAE,OAAO;;AAElB,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;AACnE,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE;AACzD,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,MAAM;AACtF,IAAI;;AAEJ,IAAI,MAAM,IAAI,SAAS;AACvB,MAAM,6EAA6E;AACnF,MAAM,sCAAsC,IAAI,OAAO,KAAK;AAC5D;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAC3D,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM;AAC/C,EAAE,CAAC;;AAEH;AACA;AACA,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;AAC/D,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;;AAE3C,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAC7B,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,wCAAwC;AAClE,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE;AACzB,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,GAAG,IAAI,GAAG,gCAAgC;AAClF,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAI,UAAU,CAAC,IAAI,CAAC;AACpB,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;AACnB,MAAM,OAAO,YAAY,CAAC,IAAI;AAC9B,IAAI;AACJ,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B;AACA;AACA;AACA,MAAM,OAAO,OAAO,QAAQ,KAAK;AACjC,UAAU,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ;AAChD,UAAU,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;AACtC,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,IAAI;AAC5B,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjD,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ;AACrC,EAAE,CAAC;;AAEH,EAAE,SAAS,WAAW,EAAE,IAAI,EAAE;AAC9B,IAAI,UAAU,CAAC,IAAI,CAAC;AACpB,IAAI,OAAO,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACxD,EAAE;;AAEF;AACA;AACA;AACA,EAAE,MAAM,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AACvC,IAAI,OAAO,WAAW,CAAC,IAAI;AAC3B,EAAE,CAAC;AACH;AACA;AACA;AACA,EAAE,MAAM,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;AAC3C,IAAI,OAAO,WAAW,CAAC,IAAI;AAC3B,EAAE,CAAC;;AAEH,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;AACzD,MAAM,QAAQ,GAAG,MAAM;AACvB,IAAI;;AAEJ,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACtC,MAAM,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AACzD,IAAI;;AAEJ,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;AACnD,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;;AAElC,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;;AAE9C,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE;AAC3B;AACA;AACA;AACA,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;AAChC,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,aAAa,EAAE,KAAK,EAAE;AACjC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AACnE,IAAI,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;AACpC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACxC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;AAC7B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE;AACrC,IAAI,IAAI,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;AAC3C,MAAM,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC;AAC5C,MAAM,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU;AAC1E,IAAI;AACJ,IAAI,OAAO,aAAa,CAAC,SAAS;AAClC,EAAE;;AAEF,EAAE,SAAS,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE;AACvD,IAAI,IAAI,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;AACzD,MAAM,MAAM,IAAI,UAAU,CAAC,sCAAsC;AACjE,IAAI;;AAEJ,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE;AACvD,MAAM,MAAM,IAAI,UAAU,CAAC,sCAAsC;AACjE,IAAI;;AAEJ,IAAI,IAAI,GAAG;AACX,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AAC1D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AACjC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC;AAC7C,IAAI,CAAC,MAAM;AACX,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC;AACrD,IAAI;;AAEJ;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;;AAEhD,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE;AAC5B,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACzC,MAAM,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;;AAEnC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO;AACf,MAAM;;AAEN,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC9B,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE;AAClC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACrE,QAAQ,OAAO,YAAY,CAAC,CAAC;AAC7B,MAAM;AACN,MAAM,OAAO,aAAa,CAAC,GAAG;AAC9B,IAAI;;AAEJ,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC1D,MAAM,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI;AACnC,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE;AAC5B;AACA;AACA,IAAI,IAAI,MAAM,IAAI,YAAY,EAAE;AAChC,MAAM,MAAM,IAAI,UAAU,CAAC,iDAAiD;AAC5E,2BAA2B,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ;AAC5E,IAAI;AACJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE;AAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE;AAC3B,MAAM,MAAM,GAAG,CAAC;AAChB,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;AAC/B,EAAE;;AAEF,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE;AAC1C,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI;AAC5C,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS;AAC5B,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,IAAI,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;AAC7E,IAAI,IAAI,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;AAC7E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACpD,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ;AACR;AACA,IAAI;;AAEJ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO;;AAExB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;;AAEpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACxD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,QAAQ;AACR,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,QAAQ,EAAE;AACrD,IAAI,QAAQ,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;AAC1C,MAAM,KAAK,KAAK;AAChB,MAAM,KAAK,MAAM;AACjB,MAAM,KAAK,OAAO;AAClB,MAAM,KAAK,OAAO;AAClB,MAAM,KAAK,QAAQ;AACnB,MAAM,KAAK,QAAQ;AACnB,MAAM,KAAK,QAAQ;AACnB,MAAM,KAAK,MAAM;AACjB,MAAM,KAAK,OAAO;AAClB,MAAM,KAAK,SAAS;AACpB,MAAM,KAAK,UAAU;AACrB,QAAQ,OAAO;AACf,MAAM;AACN,QAAQ,OAAO;AACf;AACA,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACjD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,MAAM,IAAI,SAAS,CAAC,6CAA6C;AACvE,IAAI;;AAEJ,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,IAAI;;AAEJ,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,MAAM,MAAM,GAAG,CAAC;AAChB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACxC,QAAQ,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAChC,MAAM;AACN,IAAI;;AAEJ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7C,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE;AACvC,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AAC9C,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3D,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/B,QAAQ,CAAC,MAAM;AACf,UAAU,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;AACvC,YAAY,MAAM;AAClB,YAAY,GAAG;AACf,YAAY;AACZ,WAAW;AACX,QAAQ;AACR,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxC,QAAQ,MAAM,IAAI,SAAS,CAAC,6CAA6C;AACzE,MAAM,CAAC,MAAM;AACb,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC7B,MAAM;AACN,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM;AACvB,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,SAAS,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,MAAM,OAAO,MAAM,CAAC;AACpB,IAAI;AACJ,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;AACvE,MAAM,OAAO,MAAM,CAAC;AACpB,IAAI;AACJ,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,4EAA4E;AACpF,QAAQ,gBAAgB,GAAG,OAAO;AAClC;AACA,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM;AAC7B,IAAI,MAAM,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACrE,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE,OAAO;;AAExC;AACA,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,SAAS;AACb,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,QAAQ;AACrB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO;AACjB,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AACrC,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,SAAS;AACtB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,GAAG,GAAG;AACvB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,GAAG,KAAK;AACzB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,QAAQ;AACR,UAAU,IAAI,WAAW,EAAE;AAC3B,YAAY,OAAO,SAAS,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;AAC9D,UAAU;AACV,UAAU,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE;AAClD,UAAU,WAAW,GAAG,IAAI;AAC5B;AACA,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU;;AAEhC,EAAE,SAAS,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/C,IAAI,IAAI,WAAW,GAAG,KAAK;;AAE3B;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,CAAC;AACf,IAAI;AACJ;AACA;AACA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7B,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;AAChD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AACvB,IAAI;;AAEJ,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;AAClB,MAAM,OAAO;AACb,IAAI;;AAEJ;AACA,IAAI,GAAG,MAAM,CAAC;AACd,IAAI,KAAK,MAAM,CAAC;;AAEhB,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE;AACtB,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;;AAEpC,IAAI,OAAO,IAAI,EAAE;AACjB,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE1C,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE3C,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE5C,QAAQ,KAAK,QAAQ;AACrB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE7C,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE7C,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,SAAS;AACtB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG;;AAE9C,QAAQ;AACR,UAAU,IAAI,WAAW,EAAE,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AAC9E,UAAU,QAAQ,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE,WAAW,EAAE;AAClD,UAAU,WAAW,GAAG,IAAI;AAC5B;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI;;AAEnC,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACZ,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACvB,MAAM,MAAM,IAAI,UAAU,CAAC,2CAA2C;AACtE,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACvB,MAAM,MAAM,IAAI,UAAU,CAAC,2CAA2C;AACtE,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;AACvB,MAAM,MAAM,IAAI,UAAU,CAAC,2CAA2C;AACtE,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,IAAI;AACnD,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC9B,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE,OAAO;AAC7B,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM;AAChE,IAAI,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS;AAC7C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;;AAE7D,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE;AAChD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B;AAC5E,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO;AAC3B,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;AACvC,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AACjD,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,MAAM,GAAG,GAAG,SAAS,CAAC,iBAAiB;AAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;AACvE,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,OAAO;AACzC,IAAI,OAAO,UAAU,GAAG,GAAG,GAAG;AAC9B,EAAE,CAAC;AACH,EAAE,IAAI,mBAAmB,EAAE;AAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO;AACpE,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;AACvF,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;AACpE,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS;AACzB,QAAQ,kEAAkE;AAC1E,QAAQ,gBAAgB,IAAI,OAAO,MAAM;AACzC;AACA,IAAI;;AAEJ,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC7B,MAAM,KAAK,GAAG,CAAC;AACf,IAAI;AACJ,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AAC3B,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACtC,IAAI;AACJ,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AACjC,MAAM,SAAS,GAAG,CAAC;AACnB,IAAI;AACJ,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI;;AAEJ,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACpF,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC/C,IAAI;;AAEJ,IAAI,IAAI,SAAS,IAAI,OAAO,IAAI,KAAK,IAAI,GAAG,EAAE;AAC9C,MAAM,OAAO;AACb,IAAI;AACJ,IAAI,IAAI,SAAS,IAAI,OAAO,EAAE;AAC9B,MAAM,OAAO;AACb,IAAI;AACJ,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE;AACtB,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,KAAK,MAAM,CAAC;AAChB,IAAI,GAAG,MAAM,CAAC;AACd,IAAI,SAAS,MAAM,CAAC;AACpB,IAAI,OAAO,MAAM,CAAC;;AAElB,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,OAAO;;AAEhC,IAAI,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS;AAC/B,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK;AACvB,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE9B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;AACnD,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;;AAE/C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE;AACzC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACvB,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;AACzB,QAAQ;AACR,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO;AACtB,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE;AACzE;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;;AAEpC;AACA,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACxC,MAAM,QAAQ,GAAG,UAAU;AAC3B,MAAM,UAAU,GAAG,CAAC;AACpB,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,UAAU,EAAE;AACxC,MAAM,UAAU,GAAG,UAAU;AAC7B,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,WAAW,EAAE;AACzC,MAAM,UAAU,GAAG,WAAW;AAC9B,IAAI;AACJ,IAAI,UAAU,GAAG,CAAC,UAAU,CAAC;AAC7B,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE;AACjC;AACA,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,IAAI;;AAEJ;AACA,IAAI,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU;AAC/D,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE;AACrC,MAAM,IAAI,GAAG,EAAE,OAAO;AACtB,WAAW,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACzC,IAAI,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE;AAC/B,MAAM,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC;AAC7B,WAAW,OAAO;AAClB,IAAI;;AAEJ;AACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACtC,IAAI;;AAEJ;AACA,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B;AACA,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO;AACf,MAAM;AACN,MAAM,OAAO,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG;AAChE,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AACvB,MAAM,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE;AAC9D,QAAQ,IAAI,GAAG,EAAE;AACjB,UAAU,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;AAC1E,QAAQ,CAAC,MAAM;AACf,UAAU,OAAO,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU;AAC9E,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG;AAClE,IAAI;;AAEJ,IAAI,MAAM,IAAI,SAAS,CAAC,sCAAsC;AAC9D,EAAE;;AAEF,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE;AAC9D,IAAI,IAAI,SAAS,GAAG,CAAC;AACrB,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM;AAC9B,IAAI,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM;;AAE9B,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;AAC/C,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO;AACrD,UAAU,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC7D,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,UAAU,OAAO;AACjB,QAAQ;AACR,QAAQ,SAAS,GAAG,CAAC;AACrB,QAAQ,SAAS,IAAI,CAAC;AACtB,QAAQ,SAAS,IAAI,CAAC;AACtB,QAAQ,UAAU,IAAI,CAAC;AACvB,MAAM;AACN,IAAI;;AAEJ,IAAI,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;AAC3B,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE;AAC3B,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,MAAM,CAAC,MAAM;AACb,QAAQ,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,SAAS;AAC7C,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,UAAU,GAAG,EAAE;AACzB,MAAM,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE;AAChF,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE,UAAU,GAAG,CAAC;AAC/C,UAAU,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG;AACpE,QAAQ,CAAC,MAAM;AACf,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU;AACpD,UAAU,UAAU,GAAG,EAAE;AACzB,QAAQ;AACR,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS;AAChF,MAAM,KAAK,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC5C,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;AACjD,YAAY,KAAK,GAAG,KAAK;AACzB,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,KAAK,EAAE,OAAO;AAC1B,MAAM;AACN,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC5E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK;AACvD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC1E,IAAI,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI;AACrE,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;AAClF,IAAI,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK;AACtE,EAAE,CAAC;;AAEH,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAClD,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM;AACzC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,GAAG,SAAS;AACxB,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,MAAM,IAAI,MAAM,GAAG,SAAS,EAAE;AAC9B,QAAQ,MAAM,GAAG,SAAS;AAC1B,MAAM;AACN,IAAI;;AAEJ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;;AAEhC,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;AAC7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;AACzB,IAAI;AACJ,IAAI,IAAI,CAAC;AACT,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1D,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO;AACtC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACnD,IAAI,OAAO,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AACnF,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACpD,IAAI,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AAC/D,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACrD,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AAChE,EAAE;;AAEF,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACnD,IAAI,OAAO,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;AACtF,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7E;AACA,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,MAAM,QAAQ,GAAG,MAAM;AACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,MAAM,GAAG,CAAC;AAChB;AACA,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACnE,MAAM,QAAQ,GAAG,MAAM;AACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,MAAM,GAAG,CAAC;AAChB;AACA,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;AAC3B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5B,QAAQ,MAAM,GAAG,MAAM,KAAK,CAAC;AAC7B,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,QAAQ,GAAG,MAAM;AACrD,MAAM,CAAC,MAAM;AACb,QAAQ,QAAQ,GAAG,MAAM;AACzB,QAAQ,MAAM,GAAG,SAAS;AAC1B,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,IAAI,KAAK;AACrB,QAAQ;AACR;AACA,IAAI;;AAEJ,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM;AAC1C,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS;;AAEtE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACnF,MAAM,MAAM,IAAI,UAAU,CAAC,wCAAwC;AACnE,IAAI;;AAEJ,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;;AAEpC,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,SAAS;AACb,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEtD,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEvD,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,QAAQ;AACrB,QAAQ,KAAK,QAAQ;AACrB,UAAU,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAExD,QAAQ,KAAK,QAAQ;AACrB;AACA,UAAU,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEzD,QAAQ,KAAK,MAAM;AACnB,QAAQ,KAAK,OAAO;AACpB,QAAQ,KAAK,SAAS;AACtB,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEvD,QAAQ;AACR,UAAU,IAAI,WAAW,EAAE,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AAC9E,UAAU,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE;AAClD,UAAU,WAAW,GAAG,IAAI;AAC5B;AACA,IAAI;AACJ,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC/C,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3D;AACA,EAAE,CAAC;;AAEH,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACzC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE;AAC3C,MAAM,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG;AACrC,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACvD,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACvC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,IAAI,MAAM,GAAG,GAAG,EAAE;;AAElB,IAAI,IAAI,CAAC,GAAG,KAAK;AACjB,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAM,IAAI,SAAS,GAAG,IAAI;AAC1B,MAAM,IAAI,gBAAgB,GAAG,CAAC,SAAS,GAAG,IAAI;AAC9C,UAAU;AACV,UAAU,CAAC,SAAS,GAAG,IAAI;AAC3B,cAAc;AACd,cAAc,CAAC,SAAS,GAAG,IAAI;AAC/B,kBAAkB;AAClB,kBAAkB,CAAC;;AAEnB,MAAM,IAAI,CAAC,GAAG,gBAAgB,IAAI,GAAG,EAAE;AACvC,QAAQ,IAAI,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa;;AAE5D,QAAQ,QAAQ,gBAAgB;AAChC,UAAU,KAAK,CAAC;AAChB,YAAY,IAAI,SAAS,GAAG,IAAI,EAAE;AAClC,cAAc,SAAS,GAAG,SAAS;AACnC,YAAY;AACZ,YAAY;AACZ,UAAU,KAAK,CAAC;AAChB,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,EAAE;AAC9C,cAAc,aAAa,GAAG,CAAC,SAAS,GAAG,IAAI,KAAK,GAAG,IAAI,UAAU,GAAG,IAAI,CAAC;AAC7E,cAAc,IAAI,aAAa,GAAG,IAAI,EAAE;AACxC,gBAAgB,SAAS,GAAG,aAAa;AACzC,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,UAAU,KAAK,CAAC;AAChB,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,IAAI,EAAE;AAC7E,cAAc,aAAa,GAAG,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,KAAK,GAAG,IAAI,SAAS,GAAG,IAAI,CAAC;AACxG,cAAc,IAAI,aAAa,GAAG,KAAK,KAAK,aAAa,GAAG,MAAM,IAAI,aAAa,GAAG,MAAM,CAAC,EAAE;AAC/F,gBAAgB,SAAS,GAAG,aAAa;AACzC,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,UAAU,KAAK,CAAC;AAChB,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,SAAS,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,YAAY,UAAU,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,IAAI,EAAE;AAC7G,cAAc,aAAa,GAAG,CAAC,SAAS,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,KAAK,GAAG,IAAI,UAAU,GAAG,IAAI,CAAC;AACtI,cAAc,IAAI,aAAa,GAAG,MAAM,IAAI,aAAa,GAAG,QAAQ,EAAE;AACtE,gBAAgB,SAAS,GAAG,aAAa;AACzC,cAAc;AACd,YAAY;AACZ;AACA,MAAM;;AAEN,MAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AAC9B;AACA;AACA,QAAQ,SAAS,GAAG,MAAM;AAC1B,QAAQ,gBAAgB,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,MAAM,EAAE;AACrC;AACA,QAAQ,SAAS,IAAI,OAAO;AAC5B,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC;AACnD,QAAQ,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK;AAC9C,MAAM;;AAEN,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACzB,MAAM,CAAC,IAAI,gBAAgB;AAC3B,IAAI;;AAEJ,IAAI,OAAO,qBAAqB,CAAC,GAAG;AACpC,EAAE;;AAEF;AACA;AACA;AACA,EAAE,MAAM,oBAAoB,GAAG,MAAM;;AAErC,EAAE,SAAS,qBAAqB,EAAE,UAAU,EAAE;AAC9C,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM;AACjC,IAAI,IAAI,GAAG,IAAI,oBAAoB,EAAE;AACrC,MAAM,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;AAC1D,IAAI;;AAEJ;AACA,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE;AACpB,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK;AACtC,QAAQ,MAAM;AACd,QAAQ,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,oBAAoB;AACrD,OAAO;AACP,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACxC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAEnC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACzC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAEnC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AACtC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;;AAE1B,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AACtC,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG;;AAE/C,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACtC,MAAM,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1C,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACvC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACjE,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACvD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AAC3B,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK;AACnB,IAAI,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG;;AAEzC,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,MAAM,KAAK,IAAI,GAAG;AAClB,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AAC9B,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,EAAE;AAC5B,MAAM,KAAK,GAAG,GAAG;AACjB,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE;AACjB,MAAM,GAAG,IAAI,GAAG;AAChB,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;AAC1B,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AAC1B,MAAM,GAAG,GAAG,GAAG;AACf,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK;;AAEhC,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AAC5C;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;;AAEnD,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;AACA;AACA,EAAE,SAAS,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AACnF,IAAI,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,uCAAuC;AAC3F,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AAC7B,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACnF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE/D,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AACnC,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AAC7B,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACnF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;AAClD,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,CAAC;AACzC,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,OAAO,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC7C,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,UAAU,CAAC,GAAG,GAAG;AAC9C,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS;AAC5B,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC,MAAM;AACtB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;AAChD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAChD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACzB,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,SAAS,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS;AACrC,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;AAC/B,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS;AACpC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE;AAC1F,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,EAAE,GAAG,KAAK;AACpB,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;;AAE9B,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;;AAEpB,IAAI,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;AACjD,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE;AAC1F,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC;;AAEpB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AACvC,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI;;AAEV,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE;AACjD,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACjF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE/D,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;AACnC,IAAI;AACJ,IAAI,GAAG,IAAI,IAAI;;AAEf,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;;AAEtD,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACjF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;;AAE/D,IAAI,IAAI,CAAC,GAAG,UAAU;AACtB,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAChC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AACpC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG;AACrC,IAAI;AACJ,IAAI,GAAG,IAAI,IAAI;;AAEf,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;;AAEtD,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;AACnE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC;AACpD,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC1C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,UAAU,GAAG;AAC/C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,GAAG,GAAG,UAAU,GAAG;AAC/C,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE;AAC7B,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;;AAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,kBAAkB,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE;AACxF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AAChC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;;AAEnB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,KAAK;AAClB,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,kBAAkB,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE;AACxF,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;AACnD,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;AAC5B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC;;AAEpB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AACrC,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,MAAM,IAAI;AACV,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACjD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE;AACzE,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAClD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACjD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC3E,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAClD,EAAE,CAAC;;AAEH,EAAE,SAAS,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACxD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C;AAChG,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,UAAU,CAAC,mCAAmC;AAC5F,IAAI,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC5E,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;AAC9B,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC5F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AACtD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,IAAI;;AAEJ,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;AAC/B,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI;AAC7C,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW;AAC9B,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC5F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,UAAU,GAAG,UAAU,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AACtD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACnC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AACvC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI;AAC7C,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AAC7B,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC9E,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa;AAChC,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAClE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACzD,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;AAE/C,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;AACtB,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACzD,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;AAE/C,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;AACxB,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;AAChB,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;AACpB,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACvG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACtF,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACvG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACtF,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC1F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;;AAErD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAClE,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;AAC/B,IAAI,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AAC/C,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAChE,QAAQ,GAAG,GAAG,CAAC;AACf,MAAM;AACN,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI;AAC1D,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC1F,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;;AAErD,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAClE,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,GAAG,GAAG,CAAC;AACf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACnC,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE;AACvC,MAAM,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAChE,QAAQ,GAAG,GAAG,CAAC;AACf,MAAM;AACN,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI;AAC1D,IAAI;;AAEJ,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC5E,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC;AAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC;AAC5E,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,CAAC;AACjD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;AACrC,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACrG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AAC1G,EAAE,CAAC,CAAC;;AAEJ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACrG,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC;AAC1G,EAAE,CAAC,CAAC;;AAEJ,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5D,IAAI,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC5E,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC7D,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;AACnE,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;AACzD,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AAClF,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;AAC1D,EAAE,CAAC;;AAEH,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;AACpE,IAAI,KAAK,GAAG,CAAC,KAAK;AAClB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACzC,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1D,IAAI,OAAO,MAAM,GAAG;AACpB,EAAE;;AAEF,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;AAC1D,EAAE,CAAC;;AAEH,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpF,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;AAC3D,EAAE,CAAC;;AAEH;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B;AACnF,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC;AACzB,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM;AAC5C,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM;AACjE,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC;AACrC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK;;AAE3C;AACA,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,OAAO;AAC9B,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;;AAEzD;AACA,IAAI,IAAI,WAAW,GAAG,CAAC,EAAE;AACzB,MAAM,MAAM,IAAI,UAAU,CAAC,2BAA2B;AACtD,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB;AACpF,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,IAAI,UAAU,CAAC,yBAAyB;;AAE/D;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM;AAC5C,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE;AACnD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK;AAC/C,IAAI;;AAEJ,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK;;AAE3B,IAAI,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE;AAClF;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9C,IAAI,CAAC,MAAM;AACX,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;AACnC,QAAQ,MAAM;AACd,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;AACjC,QAAQ;AACR,OAAO;AACP,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;AACpE;AACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrC,QAAQ,QAAQ,GAAG,KAAK;AACxB,QAAQ,KAAK,GAAG,CAAC;AACjB,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM;AACzB,MAAM,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC1C,QAAQ,QAAQ,GAAG,GAAG;AACtB,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM;AACzB,MAAM;AACN,MAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAClE,QAAQ,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACvD,MAAM;AACN,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACxE,QAAQ,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ;AAC3D,MAAM;AACN,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,GAAG,GAAG;AAC9C,YAAY,QAAQ,KAAK,QAAQ,EAAE;AACnC;AACA,UAAU,GAAG,GAAG,IAAI;AACpB,QAAQ;AACR,MAAM;AACN,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG;AACrB,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;AACzC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACvB,IAAI;;AAEJ;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;AAC/D,MAAM,MAAM,IAAI,UAAU,CAAC,oBAAoB;AAC/C,IAAI;;AAEJ,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE;AACtB,MAAM,OAAO;AACb,IAAI;;AAEJ,IAAI,KAAK,GAAG,KAAK,KAAK,CAAC;AACvB,IAAI,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;;AAErD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;;AAErB,IAAI,IAAI,CAAC;AACT,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACrB,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG;AACvC,UAAU;AACV,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACpC,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM;AAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AACrB,QAAQ,MAAM,IAAI,SAAS,CAAC,aAAa,GAAG,GAAG;AAC/C,UAAU,mCAAmC;AAC7C,MAAM;AACN,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE;AACxC,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;AACxC,MAAM;AACN,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH;AACA;;AAEA;AACA,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AACrC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,SAAS,IAAI,CAAC;AAC/C,MAAM,WAAW,CAAC,GAAG;AACrB,QAAQ,KAAK,EAAE;;AAEf,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;AAC/C,UAAU,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAClD,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,YAAY,EAAE;AACxB,SAAS,CAAC;;AAEV;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3C;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC;AACnB;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB,MAAM;;AAEN,MAAM,IAAI,IAAI,CAAC,GAAG;AAClB,QAAQ,OAAO;AACf,MAAM;;AAEN,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,UAAU,YAAY,EAAE,IAAI;AAC5B,UAAU,UAAU,EAAE,IAAI;AAC1B,UAAU,KAAK;AACf,UAAU,QAAQ,EAAE;AACpB,SAAS,CAAC;AACV,MAAM;;AAEN,MAAM,QAAQ,CAAC,GAAG;AAClB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;AACtD,MAAM;AACN,KAAK;AACL,EAAE;;AAEF,EAAE,CAAC,CAAC,0BAA0B;AAC9B,IAAI,UAAU,IAAI,EAAE;AACpB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,4BAA4B;AACnD,MAAM;;AAEN,MAAM,OAAO;AACb,IAAI,CAAC,EAAE,UAAU,CAAC;AAClB,EAAE,CAAC,CAAC,sBAAsB;AAC1B,IAAI,UAAU,IAAI,EAAE,MAAM,EAAE;AAC5B,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,iDAAiD,EAAE,OAAO,MAAM,CAAC;AAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;AACjB,EAAE,CAAC,CAAC,kBAAkB;AACtB,IAAI,UAAU,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACjC,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,kBAAkB,CAAC;AACxD,MAAM,IAAI,QAAQ,GAAG,KAAK;AAC1B,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;AAChE,QAAQ,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5C,QAAQ,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AAChC,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;AACnF,UAAU,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AACpD,QAAQ;AACR,QAAQ,QAAQ,IAAI,GAAG;AACvB,MAAM;AACN,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzD,MAAM,OAAO;AACb,IAAI,CAAC,EAAE,UAAU,CAAC;;AAElB,EAAE,SAAS,qBAAqB,EAAE,GAAG,EAAE;AACvC,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM;AACtB,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;AACxC,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACpC,EAAE;;AAEF;AACA;;AAEA,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;AACjD,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AACpC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,SAAS,EAAE;AAC7E,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AACxD,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;AACjE,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;AACpC,MAAM,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,EAAE;AAClD,MAAM,IAAI,KAAK;AACf,MAAM;AACN,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5C,UAAU,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC;AAC9E,kBAAkB,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK;AAC7D,IAAI;AACJ,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC;AACxC,EAAE;;AAEF,EAAE,SAAS,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,MAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK;AACjE,IAAI;AACJ,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;AACrC,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC;AACjC,MAAM,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK;AACrE,IAAI;;AAEJ,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE;AACpB,MAAM,MAAM,IAAI,MAAM,CAAC,wBAAwB;AAC/C,IAAI;;AAEJ,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ;AAC9C,sCAAsC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChE,sCAAsC,KAAK;AAC3C,EAAE;;AAEF;AACA;;AAEA,EAAE,MAAM,iBAAiB,GAAG,mBAAmB;;AAE/C,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE;AAC7B;AACA,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3B;AACA,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AACnD;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO;AAC/B;AACA,IAAI,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACjC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG;AACrB,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE;AACvC,IAAI,KAAK,GAAG,KAAK,IAAI,QAAQ;AAC7B,IAAI,IAAI,SAAS;AACjB,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAChC,IAAI,IAAI,aAAa,GAAG,IAAI;AAC5B,IAAI,MAAM,KAAK,GAAG,EAAE;;AAEpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACrC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;;AAEtC;AACA,MAAM,IAAI,SAAS,GAAG,MAAM,IAAI,SAAS,GAAG,MAAM,EAAE;AACpD;AACA,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B;AACA,UAAU,IAAI,SAAS,GAAG,MAAM,EAAE;AAClC;AACA,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,YAAY;AACZ,UAAU,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE;AACvC;AACA,YAAY,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,YAAY;AACZ,UAAU;;AAEV;AACA,UAAU,aAAa,GAAG,SAAS;;AAEnC,UAAU;AACV,QAAQ;;AAER;AACA,QAAQ,IAAI,SAAS,GAAG,MAAM,EAAE;AAChC,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7D,UAAU,aAAa,GAAG,SAAS;AACnC,UAAU;AACV,QAAQ;;AAER;AACA,QAAQ,SAAS,GAAG,CAAC,aAAa,GAAG,MAAM,IAAI,EAAE,GAAG,SAAS,GAAG,MAAM,IAAI,OAAO;AACjF,MAAM,CAAC,MAAM,IAAI,aAAa,EAAE;AAChC;AACA,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3D,MAAM;;AAEN,MAAM,aAAa,GAAG,IAAI;;AAE1B;AACA,MAAM,IAAI,SAAS,GAAG,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,KAAK,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI;AACjC,UAAU,SAAS,GAAG,IAAI,GAAG;AAC7B,SAAS;AACT,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI;AACjC,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI;AACxC,UAAU,SAAS,GAAG,IAAI,GAAG;AAC7B,SAAS;AACT,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,QAAQ,EAAE;AACvC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9B,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,SAAS,IAAI,IAAI,GAAG,IAAI;AAClC,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI;AACxC,UAAU,SAAS,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI;AACxC,UAAU,SAAS,GAAG,IAAI,GAAG;AAC7B,SAAS;AACT,MAAM,CAAC,MAAM;AACb,QAAQ,MAAM,IAAI,KAAK,CAAC,oBAAoB;AAC5C,MAAM;AACN,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,YAAY,EAAE,GAAG,EAAE;AAC9B,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC;AACA,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACjB,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACzC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;;AAE5B,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;AAClB,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,IAAI;;AAEJ,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,SAAS,aAAa,EAAE,GAAG,EAAE;AAC/B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;AAC9C,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AACjD,IAAI,IAAI,CAAC;AACT,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE;AAC3D,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,OAAO;AACX,EAAE;;AAEF;AACA;AACA;AACA,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;AAClC,IAAI,OAAO,GAAG,YAAY,IAAI;AAC9B,OAAO,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI;AAC7E,QAAQ,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;AAC1C,EAAE;AACF,EAAE,SAAS,WAAW,EAAE,GAAG,EAAE;AAC7B;AACA,IAAI,OAAO,GAAG,KAAK,GAAG;AACtB,EAAE;;AAEF;AACA;AACA,EAAE,MAAM,mBAAmB,GAAG,CAAC,YAAY;AAC3C,IAAI,MAAM,QAAQ,GAAG,kBAAkB;AACvC,IAAI,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;AAChC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACjC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE;AACxB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,QAAQ,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAClD,MAAM;AACN,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC,GAAG;;AAEN;AACA,EAAE,SAAS,kBAAkB,EAAE,EAAE,EAAE;AACnC,IAAI,OAAO,OAAO,MAAM,KAAK,WAAW,GAAG,sBAAsB,GAAG;AACpE,EAAE;;AAEF,EAAE,SAAS,sBAAsB,IAAI;AACrC,IAAI,MAAM,IAAI,KAAK,CAAC,sBAAsB;AAC1C,EAAE,CAAC;AACH,CAAC,CAAC,EAAEN,QAAM,CAAC;AACX,CAAC,OAAOA,QAAM;AACd;;AAEA,IAAIS,eAAa,GAAGD,eAAa,EAAE;;AAEnC,IAAI,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;;AAE9B;;AAEA,IAAI,qBAAqB;;AAEzB,SAAS,iBAAiB,IAAI;AAC9B,CAAC,IAAI,qBAAqB,EAAE,OAAO,UAAU,CAAC,OAAO;AACrD,CAAC,qBAAqB,GAAG,CAAC;AAC1B,CAAC,CAAC,UAAU,MAAM,EAAE,SAAS,EAAE;AAC/B;AACA,EAAE,IAAI,MAAM,GAAGA,eAAa,EAAE;AAC9B,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM;;AAE5B;AACA,EAAE,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACzB,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;AACzB,IAAI;AACJ,EAAE;AACF,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE;AACnF,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM;AAC3B,EAAE,CAAC,MAAM;AACT;AACA,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;AAChC,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU;AACjC,EAAE;;AAEF,EAAE,SAAS,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AACtD,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM;AAC/C,EAAE;;AAEF,EAAE,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;;AAExD;AACA,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;;AAE/B,EAAE,UAAU,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAC7D,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,MAAM,IAAI,SAAS,CAAC,+BAA+B;AACzD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM;AAC/C,EAAE,CAAC;;AAEH,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACrD,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACrD,IAAI;AACJ,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1B,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACxC,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAChC,MAAM,CAAC,MAAM;AACb,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,IAAI;AACJ,IAAI,OAAO;AACX,EAAE,CAAC;;AAEH,EAAE,UAAU,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AAC3C,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACrD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,IAAI;AACtB,EAAE,CAAC;;AAEH,EAAE,UAAU,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE;AAC/C,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B;AACrD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI;AACjC,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;AACnC,CAAC,OAAO,UAAU,CAAC,OAAO;AAC1B;;AAEA,IAAI,GAAG;AACP,IAAI,cAAc;;AAElB,SAAS,UAAU,IAAI;AACvB,CAAC,IAAI,cAAc,EAAE,OAAO,GAAG;AAC/B,CAAC,cAAc,GAAG,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC,MAAM;AACzC,CAAC,SAAS,IAAI,EAAE,QAAQ,EAAE;AAC1B,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAC1E,GAAG,IAAI,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACrC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG;AACtB,GAAG;AACH,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7B,KAAK,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AAC1E,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AACrB,GAAG;AACH,GAAG,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC7B,GAAG,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChD,GAAG,SAAS,MAAM,EAAE,MAAM,EAAE;AAC5B,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,YAAY,UAAU,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACjG,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC7E,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;AAC1C;AACA,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM;AAC7B,KAAK,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACrD,OAAO,MAAM,EAAE;AACf,OAAO,MAAM,EAAE;AACf,KAAK;AACL;AACA,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC;AACrD,KAAK,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACnC;AACA,KAAK,OAAO,MAAM,KAAK,IAAI,EAAE;AAC7B,OAAO,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC;AACA,OAAO,IAAI,CAAC,GAAG,CAAC;AAChB,OAAO,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACzF,SAAS,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AACxC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC;AACxC,SAAS,KAAK,GAAG,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC;AACrC,OAAO;AACP,OAAO,IAAI,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC5D,OAAO,MAAM,GAAG,CAAC;AACjB,OAAO,MAAM,EAAE;AACf,KAAK;AACL;AACA,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;AAC5B,KAAK,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC5C,OAAO,GAAG,EAAE;AACZ,KAAK;AACL;AACA,KAAK,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACpC,KAAK,OAAO,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,KAAK,OAAO;AACZ,GAAG;AACH,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE;AAClC,KAAK,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC9E,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,KAAK,IAAI,GAAG,GAAG,CAAC;AAChB;AACA,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,IAAI,MAAM,GAAG,CAAC;AACnB,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE;AACpC,OAAO,MAAM,EAAE;AACf,OAAO,GAAG,EAAE;AACZ,KAAK;AACL;AACA,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;AACpC;AACA,KAAK,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AACjC;AACA,OAAO,IAAI,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5C;AACA,OAAO,IAAI,QAAQ,GAAG,GAAG,EAAE,EAAE,MAAM,CAAC;AACpC;AACA,OAAO,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACrC;AACA,OAAO,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC;AACnC,OAAO,IAAI,CAAC,GAAG,CAAC;AAChB,OAAO,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACzF,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1C,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC;AACxC,SAAS,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,MAAM,CAAC;AACpC,OAAO;AACP,OAAO,IAAI,KAAK,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC5D,OAAO,MAAM,GAAG,CAAC;AACjB,OAAO,GAAG,EAAE;AACZ,KAAK;AACL;AACA,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,MAAM;AAC5B,KAAK,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7C,OAAO,GAAG,EAAE;AACZ,KAAK;AACL,KAAK,IAAI,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AACzD,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC;AAC9B,KAAK,IAAI,CAAC,GAAG,MAAM;AACnB,KAAK,OAAO,GAAG,KAAK,IAAI,EAAE;AAC1B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7B,KAAK;AACL,KAAK,OAAO;AACZ,GAAG;AACH,GAAG,SAAS,MAAM,EAAE,MAAM,EAAE;AAC5B,KAAK,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AACtC,KAAK,IAAI,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC;AACjC,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,YAAY;AACrD,GAAG;AACH,GAAG,OAAO;AACV,KAAK,MAAM,EAAE,MAAM;AACnB,KAAK,YAAY,EAAE,YAAY;AAC/B,KAAK,MAAM,EAAE;AACb;AACA,CAAC;AACD,CAAC,GAAG,GAAG,IAAI;AACX,CAAC,OAAO,GAAG;AACX;;AAEA,IAAI,MAAM;AACV,IAAIE,iBAAe;;AAEnB,SAASC,aAAW,IAAI;AACxB,CAAC,IAAID,iBAAe,EAAE,OAAO,MAAM;AACnC,CAACA,iBAAe,GAAG,CAAC;AACpB,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE;AACzB,CAAC,IAAI,QAAQ,GAAG,4DAA4D;;AAE5E,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;AACzB,CAAC,OAAO,MAAM;AACd;;AAEA,IAAIE,aAAW,GAAGD,aAAW,EAAE;AAC/B,IAAIE,MAAI,gBAAgB,uBAAuB,CAACD,aAAW,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAA4B,CAAC,EAAE,EAAE;AAC1C,IAAI,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC/D,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,GAAG,WAAW,EAAE;AAClH,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AAClB,IAAI,MAAM,sBAAsB,GAAG,CAAC,GAAG,YAAY,CAAC;AACpD;AACA,IAAI,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,SAAS,CAAC,4BAA4B,CAAC;AAC5F,IAAI,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AACvE,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK,CAAC;AACN,IAAI,IAAI,iBAAiB,IAAI,CAAC,EAAE;AAChC,QAAQ,sBAAsB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AACrE,IAAI;AACJ,SAAS;AACT,QAAQ,sBAAsB,CAAC,OAAO,CAAC,iBAAiB,CAAC;AACzD,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,IAAI,oBAAoB,CAAC,IAAI,kBAAkB,CAAC;AAC5E,QAAQ,YAAY,EAAE,sBAAsB;AAC5C,QAAQ,QAAQ,EAAE,KAAK;AACvB;AACA;AACA,QAAQ,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;AACrD,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACxC,IAAI,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE;AAC9E,QAAQ,sBAAsB,EAAE,IAAI;AACpC,QAAQ,SAAS,EAAE,KAAK;AACxB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,EAAE,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;AACxI,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,mBAAmB;AAClI,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC;AACpE,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3J,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI;AAClD;AACA;AACA;AACA;AACA,eAAe,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE;AAChD,IAAI,IAAI,EAAE,EAAE,EAAE;AACd;AACA;AACA,IAAI,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,QAAQ;AAC9I,IAAI,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,QAAQ;AAC9I,IAAI,MAAM,SAAS,GAAG,yDAAyD;AAC/E,IAAI,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE;AAClC,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE;AAC9C,IAAI,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC1E,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE;AACvD,IAAI,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;AAC7B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC;AACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AAC3B,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;AAClC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAC5C;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B;AACA,IAAI,IAAI,SAAS,GAAG,KAAK;AACzB;AACA,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAQ,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,qBAAqB;AAC1C,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC;AACA,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AACnC,QAAQ,IAAI,EAAE,GAAG,CAAC,IAAI;AACtB,QAAQ,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AAC/C,YAAY,IAAI,aAAa,GAAG,IAAI;AACpC,YAAY,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1B,gBAAgB,IAAI,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AAC1C,oBAAoB,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC5D,wBAAwB,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;AACnG,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAC5F,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,QAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;AAC/C,oBAAoB,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC5D,wBAAwB,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnE,4BAA4B,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;AAChI,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;AACvG,wBAAwB;AACxB,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,aAAa,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAC5F,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;AAC3C,oBAAoB,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACpF,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE;AAC7C,oBAAoB,aAAa,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;AAC9F,gBAAgB;AAChB,qBAAqB,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;AAC9C,oBAAoB,aAAa,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;AACvG,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,aAAa,GAAG,EAAE,CAAC,KAAK;AAC5C,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,GAAG,EAAE,EAAE,CAAC,GAAG;AAC3B,gBAAgB,KAAK,EAAE,aAAa;AACpC,gBAAgB,SAAS,EAAE,EAAE,CAAC,SAAS;AACvC,aAAa;AACb,QAAQ,CAAC,CAAC;AACV,KAAK,CAAC,CAAC;AACP;AACA,SAAS,wBAAwB,CAAC,iBAAiB,EAAE;AACrD,IAAI,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI;AACxC,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,YAAY,UAAU,EAAE,GAAG,CAAC,UAAU;AACtC,YAAY,QAAQ,EAAE,GAAG,CAAC;AAC1B,SAAS;AACT,IAAI,CAAC,CAAC;AACN;AACA;AACA;AACA;AACA,eAAe,4BAA4B,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAsB,EAAE;AACjL,IAAI,MAAM,eAAe,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AACrE,QAAQ,KAAK,EAAE,OAAO;AACtB,KAAK,CAAC;AACN;AACA,IAAI,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,gBAAgB,CAAC;AACrE,QAAQ,KAAK,EAAE,IAAI,GAAG,GAAG;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAG,EAAE;AAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC5C,IAAI,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;AACzC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;AACzC,IAAI,IAAI,EAAE,GAAG,IAAI;AACjB,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,6CAA6C,EAAE;AACvE,QAAQ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;AACxD,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;AAC3B,aAAa,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ;AACrG,aAAa,eAAe,CAAC,YAAY;AACzC,aAAa,QAAQ,CAAC;AACtB,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,aAAa,iBAAiB,CAAC,iBAAiB;AAChD,aAAa,WAAW,EAAE;AAC1B,IAAI;AACJ,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,6CAA6C,EAAE;AAC5E,QAAQ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;AACxD,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC;AAC3B,aAAa,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ;AAClH,aAAa,eAAe,CAAC,YAAY;AACzC,aAAa,QAAQ,CAAC;AACtB,YAAY,KAAK,EAAE;AACnB,SAAS;AACT,aAAa,iBAAiB,CAAC,iBAAiB;AAChD,aAAa,WAAW,EAAE;AAC1B,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7D,IAAI;AACJ,IAAI,EAAE,CAAC,QAAQ,GAAG,cAAc;AAChC,IAAI,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAChG,IAAI,EAAE,CAAC,eAAe,GAAG,SAAS;AAClC;AACA;AACA,IAAI,MAAM,YAAY,GAAG,EAAE;AAC3B,IAAI,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,IAAI,0BAA0B;AACzF,IAAI,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;AACrE,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACtJ,QAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,YAAY,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AAC9E,gBAAgB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,SAAS,IAAI,MAAM,IAAI,IAAI,EAAE;AAC7B;AACA;AACA;AACA,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE;AACtD,YAAY,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3F,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,KAAK,GAAG,KAAK;AAC7B,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,OAAO,GAAG,CAAC;AAC3B,gBAAgB,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AAClE,QAAQ,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,IAAI;AACJ,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,QAAQ,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,CAAC;AACnI,QAAQ,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AAClF,YAAY,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO;AAC9D,SAAS,CAAC,CAAC;AACX,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,wBAAwB;AACrD,QAAQ,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE;AACtD,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC;AACzI,IAAI,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC;AAC9E,QAAQ,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO;AAC1D,KAAK,CAAC,CAAC;AACP,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,wBAAwB;AACjD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrD,QAAQ,QAAQ,EAAE,cAAc;AAChC,QAAQ,eAAe,EAAE,SAAS;AAClC,QAAQ,YAAY,EAAE,EAAE,CAAC,YAAY;AACrC,KAAK,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC;AACvC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC3D,IAAI,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,oBAAoB,EAAE;AACvD;;AAEA;AACA;AACA;AACA,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAC9C,SAAS,kBAAkB,GAAG;AAC9B,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,4CAA4C,CAAC,CAAC;AAC7F,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG;AACtD,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAChD,cAAcC,MAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACxC,QAAQ,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,qCAAqC,CAAC,CAAC;AAC9F,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,oBAAoB,CAAC;AAC3B,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI;AAC9E,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC;AAChD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,kBAAkB,EAAE;AAC5F,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC/C;AACA,QAAQ,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;AAC9D;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;AAC5F,QAAQ,MAAM,SAAS,GAAGJ,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAChF;AACA,QAAQ,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;AACrH,QAAQ,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;AAC9D,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACnC,YAAY,OAAO,IAAI,CAAC,OAAO;AAC/B,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AAC1C,YAAY,OAAO,IAAI,CAAC,cAAc;AACtC,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa;AAChD,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK;AAC/B,YAAY,IAAI,CAAC,OAAO,GAAG,OAAO;AAClC,YAAY,OAAO,OAAO;AAC1B,QAAQ,CAAC;AACT,aAAa,OAAO,CAAC,MAAM;AAC3B,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI;AACtC,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC,IAAI;AACJ;AACA;AACA;AACA,IAAI,UAAU,CAAC,OAAO,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC,IAAI;AACJ;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI;AACpC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC/H,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACpI,IAAI;AACJ;AACA;AACA,oBAAoB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE;;AAE1D,IAAI,oBAAoB,gBAAgB,MAAM,CAAC,MAAM,CAAC;AACtD,CAAC,SAAS,EAAE,IAAI;AAChB,CAAC,oBAAoB,EAAE;AACvB,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,IAAI;AACJ,IAAI,OAAOA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxE;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,IAAI;AACJ,IAAI,OAAOA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AACzD,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;AACjB,QAAQ,GAAG,IAAI,IAAI;AACnB,SAAS,IAAI,GAAG,KAAK,CAAC;AACtB,QAAQ,GAAG,IAAI,GAAG;AAClB,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC;AACxB;;AAEA,eAAe,iBAAiB,CAAC,QAAQ,EAAE;AAC3C,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACrD,QAAQ,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE;AAClF,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE;AAClD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9B;AACA,eAAe,gBAAgB,CAAC,QAAQ,EAAE;AAC1C,IAAI,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AACzD,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO;AACX,QAAQ,aAAa,EAAE;AACvB,KAAK;AACL;AACA,eAAeK,YAAU,CAAC,QAAQ,EAAE;AACpC,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACrD,QAAQ,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO;AAChF,IAAI;AACJ,IAAI,OAAO,iBAAiB,CAAC,UAAU,EAAE;AACzC;AACA,eAAe,eAAe,CAAC,QAAQ,EAAE;AACzC,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACrD,QAAQ,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY;AACrF,IAAI;AACJ,IAAI,OAAO,iBAAiB,CAAC,eAAe,EAAE;AAC9C;AACA,eAAe,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAG,KAAK,EAAE;AACnF,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ;AACxD;AACA,QAAQ,IAAI,OAAO,GAAG,IAAI;AAC1B,QAAQ,IAAI;AACZ,YAAY,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;AACnD,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO;AACjF,YAAY,WAAW,EAAE,CAAC,CAAC;AAC3B,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC;AAC7E;;AAEA,MAAM,SAAS,GAAGf,WAAK,CAAC,MAAM,EAAE;AAChC,UAAU,CAAC,SAAS,EAAE;AACtB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,cAAc,EAAE,CAAC,KAAK,KAAK;AAC/B,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB;AACA;AACA;AACA,QAAQ,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK;AAC9L,IAAI,CAAC;AACL,IAAI,UAAU,EAAE,UAAU,CAAC,gBAAgB;AAC3C,IAAI,kBAAkB,EAAE,IAAI;AAC5B,IAAI,OAAO,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,KAAK;AACnD,QAAQ,IAAI,EAAE;AACd,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzM,IAAI,CAAC;AACL,CAAC,CAAC;AACF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE;AACjC,eAAe,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACvD,IAAI,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG,CAAC,YAAY;AACxC,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAChE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC;AAClE,YAAY,IAAI,EAAE,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE;AAC1L,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,MAAM,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC;AACrG,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE;AAC7R,gBAAgB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACrH,gBAAgB,iBAAiB,CAAC,YAAY,EAAE;AAChD,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,gBAAgB;AAChB,YAAY,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;AACvC,QAAQ;AACR,IAAI,CAAC,GAAG;AACR,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC;AAC5C,IAAI,OAAO,cAAc;AACzB;AACA,eAAe,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;AACjE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,iCAAiC,GAAG,KAAK;AACjD,IAAI,MAAM,kBAAkB,GAAG,YAAY;AAC3C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC5B,YAAY;AACZ,QAAQ,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACnH,QAAQ,oBAAoB,CAAC,QAAQ,CAAC,YAAY,EAAE;AACpD,IAAI,CAAC;AACL,IAAI,eAAe,cAAc,GAAG;AACpC,QAAQ,IAAI,EAAE;AACd;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,eAAe;AAC9G,cAAc,MAAM,UAAU,CAAC,eAAe;AAC9C,cAAc,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC;AACpJ,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,MAAM,CAAC,6BAA6B,EAAE;AAClD,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,6BAA6B;AACpE,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,OAAO,CAAC,UAAU,CAAC,GAAG,WAAW;AACjD,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE;AACxF,YAAY,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;AACtD,QAAQ;AACR,QAAQ,MAAM,aAAa,GAAG;AAC9B,YAAY,MAAM;AAClB,YAAY,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,OAAO;AACnB,YAAY,OAAO,EAAE,CAAC,EAAE,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC7I,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE;AAClD,YAAY,aAAa,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;AACjE,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;AACvD,QAAQ,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;AAC1F,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,OAAO,MAAM,cAAc,EAAE;AACrC,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,EAAE;AAC5F;AACA,YAAY,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE;AAC/F,gBAAgB,MAAM,UAAU,CAAC,UAAU,EAAE;AAC7C,gBAAgB,OAAO,MAAM,cAAc,EAAE;AAC7C;AACA,YAAY;AACZ;AACA,YAAY,IAAI;AAChB,gBAAgB,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC7F,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,oBAAoB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AACrE,gBAAgB;AAChB,gBAAgB,OAAO,MAAM,cAAc,EAAE;AAC7C,YAAY;AACZ,YAAY,OAAO,aAAa,EAAE;AAClC;AACA,gBAAgB,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,iCAAiC,EAAE;AAC3E,oBAAoB,iCAAiC,GAAG,IAAI;AAC5D,oBAAoB,MAAM,kBAAkB,EAAE;AAC9C,oBAAoB,OAAO,MAAM,cAAc,EAAE;AACjD,gBAAgB;AAChB,gBAAgB,MAAM,KAAK;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,KAAK,GAAG,EAAE;AAC3F,YAAY,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AAC9C,QAAQ;AACR,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE;AAChF,YAAY,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK;AAChE,kBAAkB,KAAK,CAAC,QAAQ,CAAC;AACjC,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1D,YAAY,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC;AACjG,YAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;AACjD,YAAY,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AACtG,YAAY,MAAM,QAAQ;AAC1B,QAAQ;AACR,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;;AAEA,IAAI,YAAY,GAAG;AACnB;AACA,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,QAAQ,EAAE,wBAAwB;AACtC,IAAI,MAAM,EAAE,0BAA0B;AACtC,IAAI,UAAU,EAAE,2BAA2B;AAC3C,IAAI,KAAK,EAAE,EAAE;AACb;AACA,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,QAAQ,EAAE,KAAK;AACnB,CAAC;AACD,IAAI,aAAa,GAAG,KAAK;AACzB,SAASgB,MAAI,CAAC,SAAS,EAAE;AACzB,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACnD,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAC/D,QAAQ;AACR,QAAQ,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC;AAChF,QAAQ,IAAI,SAAS,CAAC,eAAe,EAAE;AACvC,YAAY,aAAa,GAAG,IAAI;AAChC,YAAY,OAAO,EAAE;AACrB,YAAY;AACZ,QAAQ;AACR,QAAQ,aAAa,GAAG,IAAI;AAC5B,QAAQ,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACxD,YAAY,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;AAC9G,YAAY,aAAa,GAAG,IAAI;AAChC,YAAY,OAAO,EAAE;AACrB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;AAC5B,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACnE,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC,CAAC;AACN;AACA,SAAS,qBAAqB,GAAG;AACjC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,QAAQ,IAAI,aAAa,EAAE;AAC3B,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM;AAC/C,gBAAgB,IAAI,aAAa,EAAE;AACnC,oBAAoB,aAAa,CAAC,QAAQ,CAAC;AAC3C,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY,CAAC,EAAE,EAAE,CAAC;AAClB,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,SAAS,GAAG;AAC3B,IAAI,MAAM,qBAAqB,EAAE;AACjC,IAAI,OAAO,YAAY;AACvB;;AAEA,IAAI,MAAM,GAAsC,UAAU,CAAC,EAAE,CAAC,EAAE;AAChE,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ;AACR,IAAI,OAAO,CAAC;AACZ,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,wBAAwB,SAAS,KAAK,CAAC;AAC7C,IAAI,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,UAAU,EAAE;AAC9F,QAAQ,KAAK,CAAC,CAAC,6BAA6B,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC/H,QAAQ,IAAI,CAAC,IAAI,GAAG,0BAA0B;AAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,qBAAqB;AAC1D,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,IAAI;AACJ;AACA;AACA,MAAM,QAAQ,GAAG,EAAE;AACnB;AACA,MAAM,eAAe,GAAG,EAAE;AAC1B;AACA,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B;AACA,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;AACjC,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,IAAI;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU;AAC7D,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAChI,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AAClC,QAAQ,OAAO,MAAM;AACrB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC/B,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAC/B,YAAY,OAAO,CAAC;AACpB;AACA,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,MAAM,CAAC,MAAM,CAAC,6EAA6E,CAAC,CAAC;AACxK,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChD;AACA,YAAY,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;AAC/C,gBAAgB,OAAO,KAAK,CAAC,KAAK;AAClC;AACA,YAAY,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACzH,YAAY,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;AAC3C,gBAAgB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ;AACR;AACA,QAAQ,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/G,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACvH,IAAI;AACJ,IAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;AAClF,QAAQ,OAAO,MAAM,CAAC,KAAK;AAC3B,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,OAAO,MAAM,CAAC,yDAAyD,CAAC,CAAC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACtC,IAAI,MAAM,MAAM,GAAG,mJAAmJ;AACtK,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3C,UAAU,MAAM;AAChB,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1G,IAAI,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE;AACrD,IAAI,IAAI,MAAM;AACd,IAAI,QAAQ,SAAS;AACrB,QAAQ,KAAK,OAAO;AACpB,YAAY,MAAM,GAAG,mJAAmJ;AACxK,YAAY;AACZ,QAAQ,KAAK,aAAa;AAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAClF,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,wDAAwD,EAAE,IAAI,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,CAAC;AACtO,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAChN,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AACpN,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAC1N,YAAY;AACZ,QAAQ,KAAK,KAAK;AAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E,YAAY,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,MAAM,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,uFAAuF,EAAE,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC;AAC1N,YAAY;AACZ,QAAQ;AACR,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,iCAAiC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E;AACA,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC;AAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3C,UAAU,MAAM;AAChB,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1G;AACA;AACA;AACA,IAAI,IAAI,SAAS,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnF,QAAQ,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;AACtI,QAAQ,IAAI,oBAAoB,EAAE;AAClC,YAAY,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;AAC3C,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC;AAC7H,IAAI;AACJ,IAAI,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACjD;AACA,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACpC,IAAI,IAAI,EAAE;AACV,IAAI,IAAI;AACR,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACxE;AACA,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,YAAY,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D,YAAY,OAAO,IAAI,KAAK,CAAC,wBAAwB,CAAC;AACtD,QAAQ;AACR;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACrE,QAAQ,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,GAAG,WAAW,GAAG,EAAE;AAC1E,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AAC1E,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7E,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE;AACzJ,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;AACxI,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC9B;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;AAC3F,YAAY,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI;AAC1C,QAAQ;AACR;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ;AAC7E;AACA;AACA,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE;AAC/E;AACA,YAAY,OAAO,eAAe,CAAC,UAAU,CAAC;AAC9C,QAAQ;AACR;AACA,QAAQ,MAAM,cAAc,GAAG,CAAC,YAAY;AAC5C,YAAY,IAAI;AAChB;AACA,gBAAgB,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AACjF,gBAAgB,IAAI,QAAQ;AAC5B;AACA,gBAAgB,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,GAAG,uBAAuB,GAAG,EAAE;AAChG,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC/G,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACzF,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AACnG,gBAAgB,IAAI,cAAc,EAAE;AACpC,oBAAoB,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC;AACrE;AACA,oBAAoB,MAAM,WAAW,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,oBAAoB,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnH,oBAAoB,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1F,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,CAAC;AACnE,oBAAoB,MAAM,gBAAgB,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAChJ,oBAAoB,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;AAC1I,oBAAoB,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI;AAClD;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACvC,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,GAAG;AACzC,wBAAwB,IAAI,EAAE,YAAY;AAC1C,wBAAwB,SAAS,EAAE,GAAG,GAAG;AACzC,qBAAqB;AACrB;AACA,oBAAoB,IAAI,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE;AACvD,wBAAwB,mBAAmB,EAAE;AAC7C,wBAAwB,gBAAgB,GAAG,GAAG;AAC9C,oBAAoB;AACpB,gBAAgB;AAChB;AACA,gBAAgB,OAAO,YAAY;AACnC,YAAY;AACZ,oBAAoB;AACpB;AACA,gBAAgB,OAAO,eAAe,CAAC,UAAU,CAAC;AAClD,YAAY;AACZ,QAAQ,CAAC,GAAG;AACZ;AACA,QAAQ,eAAe,CAAC,UAAU,CAAC,GAAG,cAAc;AACpD;AACA,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA;AACA,SAAS,mBAAmB,GAAG;AAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACzC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE;AAC5D,YAAY,OAAO,QAAQ,CAAC,GAAG,CAAC;AAChC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN,IAAI,gBAAgB,GAAG,GAAG;AAC1B;AACA,eAAe,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AACzC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AAC3B,QAAQ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AACtE,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACxE,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,YAAY,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACxD,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AACzE,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,yDAAyD,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/F,QAAQ;AACR,QAAQ,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5C,IAAI;AACJ,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3C,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,MAAM,aAAa,GAAG,EAAE;AAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrD,QAAQ,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;AACjD,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;AAC3F,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;AAChF,QAAQ;AACR,aAAa;AACb,YAAY,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,YAAY,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9C,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC;AACnH,YAAY,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO;AACvD,YAAY,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE;AAC9C,YAAY,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;AAChD,gBAAgB,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACzD,YAAY;AACZ,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7D,gBAAgB,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC;AACxD,gBAAgB,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC;AACvD,gBAAgB,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC;AACzE,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,OAAO,CAAC,aAAa,CAAC,GAAG,YAAY;AACzD,oBAAoB,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAClE,wBAAwB,MAAM,QAAQ,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7D,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,GAAG;AAC7C,4BAA4B,IAAI,EAAE,YAAY,CAAC,IAAI;AACnD,4BAA4B,SAAS,EAAE,GAAG,GAAG;AAC7C,yBAAyB;AACzB,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,aAAa,CAAC,GAAG;AAC7C,wBAAwB,IAAI,EAAE,cAAc;AAC5C,wBAAwB,IAAI,EAAE,IAAI;AAClC,wBAAwB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;AAC5G,qBAAqB;AACrB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE;AAC/C,gBAAgB,mBAAmB,EAAE;AACrC,gBAAgB,gBAAgB,GAAG,GAAG;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE;AACzD,gBAAgB,OAAO,CAAC,aAAa,CAAC,GAAG;AACzC,oBAAoB,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC;AACxD,oBAAoB,IAAI,EAAE,IAAI;AAC9B,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe;AACjH,iBAAiB;AACjB,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,OAAO;AAClB;AACA,eAAe,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;AAClE,IAAI,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC;AACrF,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC;AACpB;AACA,eAAe,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AACxC,IAAI,IAAI;AACR,QAAQ,IAAI,OAAO,GAAG,EAAE;AACxB,QAAQ,KAAK,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;AACnE,YAAY,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY;AACtG,YAAY,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAC7E,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,8DAA8D,EAAE,YAAY,CAAC,CAAC,CAAC;AAChH,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACxE,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AAC1I,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;AACnE,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA;AACA,eAAe,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE;AAC7D,IAAI,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC;AACrB;AACA,eAAe,iBAAiB,CAAC,IAAI,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,IAAI,OAAO,GAAG,EAAE;AACxB,QAAQ,IAAI,SAAS,GAAG,SAAS;AACjC,QAAQ,KAAK,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE;AAC9E;AACA,YAAY,IAAI,UAAU,IAAI,CAAC,SAAS,EAAE;AAC1C,gBAAgB,SAAS,GAAG,UAAU;AACtC,YAAY;AACZ,YAAY,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC/D,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACxF;AACA,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK;AAC1D,YAAY,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;AACzD;AACA,YAAY,IAAI,WAAW,CAAC,KAAK,EAAE;AACnC,gBAAgB,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;AAChD,YAAY;AACZ,YAAY,OAAO,MAAM;AACzB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA,eAAe,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC;AAC/D;AACA,IAAI,kBAAkB,CAAC,IAAI,CAAC;AAC5B,IAAI,OAAO,MAAM;AACjB;AACA,eAAe,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClC;AACA,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY;AACzN,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;AAC5D,QAAQ;AACR,QAAQ,IAAI,SAAS,GAAG,EAAE;AAC1B,QAAQ,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC3C,QAAQ,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,IAAI,IAAI,EAAE;AAC3E;AACA,YAAY,IAAI,QAAQ,GAAG,0BAA0B;AACrD,YAAY,IAAI,0BAA0B,EAAE;AAC5C,gBAAgB,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AACzI,YAAY;AACZ,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAC9E,YAAY,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;AACjD,YAAY,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAC7E,YAAY,IAAI,SAAS,GAAG,EAAE;AAC9B,YAAY,IAAI,cAAc,EAAE;AAChC,gBAAgB,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE;AAClG,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;AAChF,YAAY;AACZ;AACA,YAAY,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc;AACrH,YAAY,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;AACjD,YAAY,IAAI,eAAe,GAAG,cAAc;AAChD,YAAY,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,gBAAgB,eAAe,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,YAAY;AACZ,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AACzD,QAAQ;AACR,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI;AACZ,YAAY,WAAW,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AACnJ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,UAAU,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,sBAAsB,EAAE;AACpL,gBAAgB,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/G,gBAAgB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,eAAe,GAAG,UAAU,CAAC;AAChI,gBAAgB,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,qBAAqB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC;AACzS,YAAY;AACZ,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR;AACA,QAAQ,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1C,YAAY,kBAAkB,CAAC,IAAI,CAAC;AACpC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE;AACxC;AACA;AACA,YAAY,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,IAAI;AAC1E;AACA,YAAY,IAAI,mBAAmB,EAAE;AACrC,gBAAgB,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CAAC,mBAAmB,EAAE,YAAY,EAAE,OAAO,CAAC;AACrH,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;AAC/L,YAAY;AACZ;AACA,YAAY,IAAI,eAAe,GAAG,SAAS;AAC3C,YAAY,IAAI,iBAAiB,GAAG,SAAS;AAC7C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1D,gBAAgB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;AAC7C,gBAAgB,MAAM,iBAAiB,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;AACrG,gBAAgB,eAAe,GAAG,iBAAiB,CAAC,oBAAoB;AACxE,gBAAgB,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB;AACvE,YAAY;AACZ;AACA;AACA,YAAY,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnE,YAAY,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AAC3D;AACA,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAC7J,QAAQ;AACR,aAAa,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE;AAC7C;AACA;AACA;AACA;AACA,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,EAAE;AAC3C,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAChH,YAAY;AACZ,iBAAiB,IAAI,WAAW,CAAC,IAAI;AACrC,gBAAgB,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;AACpD,gBAAgB,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACnD,gBAAgB,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AACvG,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACrI,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAClG,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC,CAAC;AACrE,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ,IAAI,eAAe,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;AACtE,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9B,QAAQ,MAAM,kBAAkB,GAAG;AACnC,YAAY,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;AACnD,YAAY,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,eAAe;AAC/D,YAAY,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW;AACvD,YAAY,GAAG,EAAE,EAAE,CAAC,GAAG;AACvB,YAAY,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACnG,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,QAAQ;AACxB,oBAAoB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC/D,oBAAoB,MAAM,EAAEN,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACpE,oBAAoB,SAAS,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AAChH,wBAAwB,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AAClD,4BAA4B,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;AACzD,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC;AAClD,wBAAwB;AACxB,oBAAoB,CAAC,CAAC;AACtB,iBAAiB;AACjB,YAAY,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACnD,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,cAAc,GAAG;AAC/B,YAAY,KAAK,EAAE,MAAM,CAAC,KAAK;AAC/B,YAAY,MAAM,EAAE,CAAC,kBAAkB,CAAC;AACxC,YAAY,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC9E,YAAY,sBAAsB,EAAE,EAAE,CAAC,sBAAsB;AAC7D,YAAY,OAAO,EAAE,EAAE,CAAC,OAAO;AAC/B,YAAY,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AACjH,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAChG,oBAAoB,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,oBAAoB,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACxC,oBAAoB,UAAU,EAAE,CAAC,CAAC,UAAU;AAC5C,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,QAAQ;AACnF,sBAAsB,aAAa,CAAC,SAAS;AAC7C,sBAAsB,IAAI,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;AACjD,gBAAgB,MAAM,IAAI,GAAGA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AAC/D,gBAAgB,OAAO,IAAI,sBAAsB,CAAC;AAClD,oBAAoB,IAAI;AACxB,oBAAoB,SAAS;AAC7B,oBAAoB,IAAI;AACxB,iBAAiB,CAAC;AAClB,YAAY,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACnD;AACA,YAAY,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;AACnD,SAAS;AACT,QAAQ,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC;AACvG,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,eAAe,yBAAyB,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;AACxE,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClC,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,YAAY,CAAC;AACvC,cAAc,MAAM,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO;AAC3D,cAAc,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACxD;AACA,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,WAAW,EAAE,EAAE;AAC3B,YAAY;AACZ,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,MAAM,KAAK,EAAE;AAClG,YAAY,OAAO;AACnB,gBAAgB,SAAS,EAAE,EAAE;AAC7B,gBAAgB,iBAAiB,EAAEA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AACxG,aAAa;AACb,QAAQ;AACR;AACA,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK;AAC1Z,QAAQ,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;AAC9E,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,MAAM,EAAE,iBAAiB;AACrC,YAAY,MAAM,EAAE,CAACA,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC3F,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;AAChF,QAAQ,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE;AACnF,YAAY,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3D,QAAQ;AACR,QAAQ,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;AACpG,IAAI;AACJ;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC;AACA,IAAI,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM;AAC9E;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACzC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACrC,QAAQ,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;AAClF,YAAY,OAAO,QAAQ,CAAC,GAAG,CAAC;AAChC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AAChD;AACA,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;AACrC,YAAY;AACZ,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACrC,QAAQ,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;AAClF;AACA;AACA,YAAY,OAAO,eAAe,CAAC,GAAG,CAAC;AACvC,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,eAAe,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAC1E,QAAQ,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5D,YAAY,OAAO,IAAI,KAAK,CAAC,wBAAwB,CAAC;AACtD,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACxD,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AACzI,QAAQ,OAAO,QAAQ,CAAC,IAAI;AAC5B,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA,eAAe,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC5C,IAAI,IAAI,EAAE;AACV;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,eAAe,EAAE,IAAI;AAC7B,QAAQ,SAAS,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ;AAC7C,KAAK;AACL;AACA,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI;AAC7C,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;AACnJ,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;AACnI,QAAQ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AAC/C,IAAI;AACJ;AACA,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW;AACjD,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;AAChD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,uCAAuC,EAAE,CAAC,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpK,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK;AAC5C;AACA,IAAI,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;AACrD,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO,EAAE;AACjB,YAAY,cAAc,EAAE,IAAI,CAAC,IAAI;AACrC,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;AAC5B,QAAQ,MAAM,cAAc,CAAC,IAAI,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA,eAAe,WAAW,CAAC,OAAO,EAAE;AACpC,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AACnF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AACnD;AACA,eAAe,eAAe,CAAC,WAAW,EAAE;AAC5C,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AACnF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC;AAC3D;AACA,eAAe,wBAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE;AAC/D,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;AACnF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC9E;AACA,eAAe,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE;AACzC,IAAI,IAAI;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;AACnJ,QAAQ,OAAO,QAAQ,CAAC,IAAI;AAC5B,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AAC7B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE;AAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C;AACA,MAAM,2BAA2B,GAAG,IAAI;AACxC,MAAM,6BAA6B,GAAG,IAAI;AAC1C,MAAM,sBAAsB,GAAG,MAAM;AACrC,MAAM,2BAA2B,GAAG,GAAG;AACvC,MAAM,iCAAiC,GAAG,IAAI;AAC9C,MAAM,wBAAwB,GAAG,CAAC;AAClC,MAAM,SAAS,GAAG;AAClB;AACA,IAAI,UAAU,EAAE,QAAQ;AACxB;AACA,IAAI,oBAAoB,EAAE,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,6BAA6B,CAAC;AACjH;AACA,IAAI,oBAAoB,EAAE,sBAAsB;AAChD;AACA,IAAI,2BAA2B,EAAE,2BAA2B;AAC5D;AACA,IAAI,iBAAiB,EAAE,KAAK;AAC5B,CAAC;AACD,MAAM,UAAU,GAAG,QAAQ;AAC3B,IAAI,6BAA6B,GAAG,KAAK;AACzC,IAAI,+BAA+B,GAAG,CAAC;AACvC,IAAI,mBAAmB,GAAG,IAAI;AAC9B;AACA,SAAS,sBAAsB,GAAG;AAClC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7E;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,IAAI;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU;AAC7D,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzB;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;AACzD,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACtE,IAAI,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AACxF,IAAI,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE;AAC5D,IAAI,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7D,IAAI,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;AACxF;AACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,IAAI,IAAI;AACR,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI;AACjD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE;AACtC,QAAQ,OAAO,WAAW,IAAI,cAAc,GAAG,KAAK,CAAC,CAAC;AACtD,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AACxE,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,QAAQ,OAAO,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI;AACtD,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,SAAS,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE;AACpD;AACA,IAAI,IAAI,UAAU,CAAC,iBAAiB,EAAE;AACtC,QAAQ,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACnD,QAAQ,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC3C,IAAI;AACJ;AACA;AACA;AACA,IAAI,UAAU,CAAC,iBAAiB,GAAG,WAAW,CAAC,YAAY;AAC3D,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,IAAI;AACZ,YAAY,MAAM,YAAY,GAAG,MAAMK,YAAU,CAAC,QAAQ,CAAC;AAC3D,YAAY,IAAI,CAAC,YAAY;AAC7B,gBAAgB,OAAO;AACvB,YAAY,MAAM,cAAc,GAAG,sBAAsB,CAAC,YAAY,CAAC;AACvE,YAAY,IAAI,CAAC,cAAc;AAC/B,gBAAgB;AAChB,YAAY,MAAM,eAAe,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;AAC/D,YAAY,IAAI,eAAe,IAAI,oBAAoB,EAAE;AACzD,gBAAgB,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;AACnF;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,mBAAmB,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAC/E,oBAAoB,IAAI,CAAC,mBAAmB,EAAE;AAC9C,wBAAwB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC;AAChG,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC;AACjF,oBAAoB,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE;AACvF,wBAAwB,MAAM,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC;AACjH,wBAAwB,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC;AACxG,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC;AAChG,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,OAAO,YAAY,EAAE;AACrC;AACA;AACA;AACA,oBAAoB,IAAI,CAAC,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,EAAE;AAChU,wBAAwB,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC;AAC3G,wBAAwB,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1D,4BAA4B,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvE,4BAA4B,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/D,wBAAwB;AACxB,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,OAAO,CAAC,IAAI,CAAC,mEAAmE,EAAE,YAAY,CAAC;AACnH,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAC1E,QAAQ;AACR,IAAI,CAAC,EAAE,oBAAoB,CAAC;AAC5B;AACA,eAAe,iBAAiB,CAAC,QAAQ,EAAE;AAC3C,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,MAAM,YAAY,GAAG,MAAMA,YAAU,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;AACvC,QAAQ,OAAO,YAAY;AAC3B,IAAI;AACJ;AACA,IAAI,IAAI;AACR,QAAQ,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAC5D,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC;AAChF,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC;AAC9D,QAAQ,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE;AAC3E,YAAY,MAAM,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC;AACrG,YAAY,OAAO,WAAW,CAAC,OAAO;AACtC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AAC/D;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE;AACzR,YAAY,IAAI;AAChB,gBAAgB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACrH,gBAAgB,iBAAiB,CAAC,YAAY,EAAE;AAChD,YAAY;AACZ,YAAY,OAAO,UAAU,EAAE;AAC/B,gBAAgB,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,UAAU,CAAC;AAClF,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC;AACpG,IAAI,OAAO,IAAI;AACf;AACA,SAAS,gCAAgC,GAAG;AAC5C,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AAC5B,YAAY;AACZ,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,qBAAqB,EAAE;AAChE,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,+BAA+B,GAAG;AAC3C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1B,IAAI,IAAI,GAAG,GAAG,+BAA+B,GAAG,iCAAiC,EAAE;AACnF,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,CAAC,gCAAgC,EAAE,EAAE;AAC7C,QAAQ;AACR,IAAI;AACJ,IAAI,+BAA+B,GAAG,GAAG;AACzC,IAAI,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;AAC9C,QAAQ,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC;AAC3E,IAAI,CAAC,CAAC;AACN;AACA,SAAS,+BAA+B,GAAG;AAC3C,IAAI,IAAI,6BAA6B,EAAE;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,6BAA6B,GAAG,IAAI;AACxC,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;AAC5C,QAAQ,+BAA+B,EAAE;AACzC,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM;AAC5D,YAAY,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;AACxD,gBAAgB,+BAA+B,EAAE;AACjD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA,eAAe,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACtD,IAAI,+BAA+B,EAAE;AACrC,IAAI,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,IAAI,IAAI,UAAU,IAAI,UAAU,CAAC,EAAE,EAAE;AACrC,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,EAAE,EAAE,IAAI;AAChB,QAAQ,aAAa,EAAE,IAAI,GAAG,EAAE;AAChC,QAAQ,oBAAoB,EAAE,IAAI,GAAG,EAAE;AACvC,QAAQ,sBAAsB,EAAE,IAAI,GAAG,EAAE;AACzC,QAAQ,YAAY,EAAE,KAAK;AAC3B,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,KAAK;AACb,QAAQ,iBAAiB,EAAE,IAAI;AAC/B,QAAQ,uBAAuB,EAAE,CAAC;AAClC,KAAK;AACL,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;AACtC;AACA,IAAI,MAAM,WAAW,GAAG,YAAY;AACpC,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9C;AACA,QAAQ,KAAK,CAAC,QAAQ,GAAG,UAAU;AACnC;AACA;AACA,QAAQ,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AAC7C,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;AACrD,QAAQ;AACR,aAAa,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,6BAA6B,EAAE;AACxF,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACpF,QAAQ;AACR,aAAa;AACb,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;AAC5D,QAAQ;AACR;AACA,QAAQ,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AAC3D,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC;AACjE;AACA,YAAY,UAAU,CAAC,uBAAuB,GAAG,CAAC;AAClD,QAAQ;AACR,aAAa;AACb;AACA;AACA,YAAY,MAAM,YAAY,GAAG,MAAMA,YAAU,CAAC,QAAQ,CAAC;AAC3D,YAAY,IAAI,YAAY,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE;AAC9D,gBAAgB,UAAU,CAAC,uBAAuB,EAAE;AACpD,gBAAgB,IAAI,UAAU,CAAC,uBAAuB,IAAI,wBAAwB,EAAE;AACpF,oBAAoB,OAAO,CAAC,IAAI,CAAC,CAAC,qCAAqC,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;AAClK,oBAAoB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AACvF,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC;AAClH,YAAY;AACZ;AACA,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,QAAQ,EAAE;AAC/B,IAAI,CAAC;AACL;AACA,IAAI,UAAU,CAAC,YAAY,GAAG,IAAI;AAClC,IAAI,MAAM,EAAE,GAAG,IAAI,qBAAqB,CAAC,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACxH,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE;AACtB;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;AACtC,QAAQ,UAAU,CAAC,YAAY,GAAG,KAAK;AACvC,QAAQ,UAAU,CAAC,WAAW,GAAG,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC;AAClD;AACA,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;AAC7D,YAAY,GAAG,CAAC,QAAQ,GAAG,SAAS;AACpC,YAAY,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC;AAC1C,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AAC9C,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,YAAY,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC;AACpD,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC;AAClE,QAAQ;AACR,IAAI,CAAC,CAAC;AACN;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AAC5C,QAAQ,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AACxD,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,oBAAoB,EAAE;AACnE,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE;AAC/C,IAAI,CAAC,CAAC;AACN;AACA,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACvC,QAAQ,UAAU,CAAC,WAAW,GAAG,KAAK;AACtC,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,YAAY,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvD,YAAY,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/C,QAAQ;AACR,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,UAAU;AACrB;AACA,SAAS,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE;AAClD,IAAI,IAAI,EAAE;AACV,IAAI,QAAQ,OAAO,CAAC,IAAI;AACxB,QAAQ,KAAK,YAAY,EAAE;AAC3B,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACrF,YAAY,IAAI,YAAY,EAAE;AAC9B;AACA;AACA;AACA,gBAAgB,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE;AACzD,oBAAoB,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;AACrJ,oBAAoB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC9F,oBAAoB,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI;AACxD,oBAAoB,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;AAC/D,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACvF,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAC9E,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,cAAc,EAAE;AAC7B;AACA,YAAY,MAAM,OAAO,GAAG,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACzF,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAChF,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,MAAM,EAAE;AACrB,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACrF,YAAY,IAAI,YAAY,EAAE;AAC9B;AACA,gBAAgB,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;AACjJ,gBAAgB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC1F;AACA,gBAAgB,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI;AACpD;AACA,gBAAgB,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;AAC3D,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,OAAO,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;AACjF,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE;AACxC;AACA,gBAAgB,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AAC3F,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpF,oBAAoB,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;AAClF,gBAAgB;AAChB;AACA,gBAAgB,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;AACzF,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE;AACnE,wBAAwB,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxJ,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR;AACA;AACA,SAAS,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE;AAC7C,IAAI,IAAI,EAAE;AACV;AACA;AACA,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE;AACpD,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC,QAAQ,IAAI;AACZ,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/F,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC;AAC3E,QAAQ;AACR,IAAI;AACJ;AACA;AACA,MAAM,mBAAmB,GAAG,CAAC;AAC7B,MAAM,qBAAqB,GAAG,CAAC;AAC/B,SAAS,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE;AACjD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,EAAE;AAC5E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,cAAc,EAAE,YAAY,CAAC,cAAc;AACnD,QAAQ,IAAI,EAAE,YAAY,CAAC,IAAI;AAC/B,QAAQ,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS;AAC/E,QAAQ,eAAe,EAAE,YAAY,CAAC,eAAe;AACrD,QAAQ,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG;AAC9E,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS;AACvB,QAAQ,KAAK,EAAE,YAAY,CAAC,KAAK;AACjC,QAAQ,MAAM,EAAE,YAAY,CAAC,MAAM;AACnC,KAAK;AACL,IAAI,IAAI;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AACxE,IAAI;AACJ;AACA,SAAS,eAAe,CAAC,UAAU,EAAE,cAAc,EAAE;AACrD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,UAAU,KAAK,mBAAmB,EAAE;AAC5E,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,cAAc;AACtB,KAAK;AACL,IAAI,IAAI;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAC1E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE;AACtD,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACpC,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACtE,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,EAAE,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC;AAC9J;AACA,IAAI,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,GAAG,SAAS,IAAI,mBAAmB,CAAC,MAAM,EAAE;AACrG,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,EAAE;AAClB,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,IAAI,CAAC;AACjI,QAAQ,CAAC,EAAE,CAAC,CAAC;AACb,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK;AACpE;AACA,IAAI,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;AACnF;AACA,IAAI,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE;AAC/F,IAAI,IAAI,oBAAoB;AAC5B,IAAI,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;AACzD,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACtE,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,IAAI,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE;AAC1M,YAAY,oBAAoB,GAAG,GAAG;AACtC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,oBAAoB,EAAE;AAC9B;AACA,QAAQ,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAChE;AACA,QAAQ,IAAI,oBAAoB,CAAC,QAAQ,KAAK,SAAS,IAAI,mBAAmB,CAAC,MAAM,EAAE;AACvF,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,CAAC,EAAE,GAAG,mBAAmB,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,QAAQ,CAAC;AAClJ,YAAY,CAAC,EAAE,CAAC,CAAC;AACjB,QAAQ;AACR,QAAQ,OAAO,YAAY;AAC3B,YAAY,MAAM,8BAA8B,CAAC,UAAU,EAAE,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,CAAC;AACtH,QAAQ,CAAC;AACT,IAAI;AACJ;AACA,IAAI,MAAM,cAAc,GAAG,sBAAsB,EAAE;AACnD,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,cAAc;AACtB,QAAQ,IAAI,EAAE,cAAc;AAC5B,QAAQ,MAAM,EAAE,mBAAmB,CAAC,MAAM;AAC1C,QAAQ,KAAK,EAAE,mBAAmB,CAAC,KAAK;AACxC,QAAQ,KAAK,EAAE,mBAAmB,CAAC,KAAK;AACxC,QAAQ,MAAM,EAAE,mBAAmB,CAAC,MAAM;AAC1C,QAAQ,eAAe,EAAE,KAAK;AAC9B,QAAQ,SAAS,EAAE,CAAC,mBAAmB,CAAC;AACxC,QAAQ,QAAQ,EAAE,SAAS;AAC3B,KAAK;AACL,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;AAC9D;AACA,IAAI,IAAI,UAAU,CAAC,WAAW,EAAE;AAChC;AACA,QAAQ,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACrE,YAAY,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpF;AACA,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AACzE,oBAAoB,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC;AAC1E,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC7D,gBAAgB;AAChB,YAAY,CAAC,EAAE,KAAK,CAAC;AACrB,QAAQ,CAAC,CAAC;AACV,QAAQ,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,QAAQ,IAAI;AACZ,YAAY,MAAM,mBAAmB;AACrC,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,IAAI,CAAC,2EAA2E,EAAE,KAAK,CAAC;AAC5G,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,OAAO,YAAY;AACvB,QAAQ,MAAM,8BAA8B,CAAC,UAAU,EAAE,cAAc,EAAE,mBAAmB,CAAC;AAC7F,IAAI,CAAC;AACL;AACA,eAAe,8BAA8B,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE;AACpF,IAAI,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC;AACrE,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC;AACjF;AACA,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;AACnD,IAAI,IAAI,UAAU,CAAC,WAAW,EAAE;AAChC;AACA,QAAQ,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACpE,YAAY,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtF;AACA,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AAC3E,oBAAoB,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC;AAC5E,oBAAoB,OAAO,EAAE,CAAC;AAC9B,gBAAgB;AAChB,YAAY,CAAC,EAAE,IAAI,CAAC;AACpB,QAAQ,CAAC,CAAC;AACV,QAAQ,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC;AACnD,QAAQ,MAAM,kBAAkB;AAChC,IAAI;AACJ;AACA,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE;AAC9D;AACA,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,YAAY,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvD,YAAY,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/C,QAAQ;AACR,QAAQ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;AAC7B,QAAQ,UAAU,CAAC,EAAE,GAAG,IAAI;AAC5B,QAAQ,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;AAC5C,IAAI;AACJ;AACA;AACA;AACA;AACA,eAAe,uBAAuB,GAAG;AACzC,IAAI,MAAM,aAAa,GAAG,EAAE;AAC5B,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE;AACnD,QAAQ,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC1C,YAAY,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;AACvD,YAAY,UAAU,CAAC,iBAAiB,GAAG,IAAI;AAC/C,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,EAAE,EAAE;AAC3B,YAAY,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;AACpC,YAAY,UAAU,CAAC,EAAE,GAAG,IAAI;AAChC,YAAY,UAAU,CAAC,WAAW,GAAG,KAAK;AAC1C,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxD,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACnD,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,EAAE,CAAC,KAAK,EAAE;AAC1B,YAAY,CAAC,CAAC,CAAC;AACf,QAAQ;AACR,QAAQ,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACpC;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,IAAI,EAAE;AAC5B,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AAC1E;AACA,QAAQ,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE;AAChD,YAAY,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;AAChD,gBAAgB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;AACzC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,SAAS;AACT,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE;AACvC,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9C,IAAI,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,GAAG,SAAS,EAAE;AACvE,QAAQ,OAAO,WAAW,CAAC,IAAI;AAC/B,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB,GAAG;AACxC,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,OAAO,mBAAmB;AAClC,IAAI;AACJ,IAAI,mBAAmB,GAAG,sBAAsB,EAAE;AAClD,IAAI,IAAI;AACR,QAAQ,MAAM,mBAAmB;AACjC,IAAI;AACJ,YAAY;AACZ,QAAQ,mBAAmB,GAAG,IAAI;AAClC,IAAI;AACJ;AACA,eAAe,sBAAsB,GAAG;AACxC,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE;AACnD,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,oBAAoB,EAAE;AACnE,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACnF,QAAQ;AACR,QAAQ,UAAU,CAAC,oBAAoB,CAAC,KAAK,EAAE;AAC/C,QAAQ,KAAK,MAAM,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC,sBAAsB,EAAE;AACrE,YAAY,OAAO,CAAC,OAAO,EAAE;AAC7B,QAAQ;AACR,QAAQ,UAAU,CAAC,sBAAsB,CAAC,KAAK,EAAE;AACjD;AACA,QAAQ,UAAU,CAAC,uBAAuB,GAAG,CAAC;AAC9C;AACA;AACA,QAAQ,IAAI;AACZ,YAAY,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;AACrC,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;AAC/D,QAAQ;AACR,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;AACpD,IAAI,OAAO,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB,GAAG;AACvC,IAAI,OAAO,uBAAuB,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,YAAY,CAAC,IAAI,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB,GAAG;AACtC,IAAI,OAAO,sBAAsB,EAAE;AACnC;;AAEA,IAAI,OAAO,GAAG,IAAI;AAClB,MAAM,yBAAyB,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE;AAC1B,QAAQ,OAAO,GAAG,GAAG;AACrB,IAAI;AACJ,IAAI,OAAO,UAAU,GAAG;AACxB,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;AACjH,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,OAAO;AAC9B,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;AACjH,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;AAClC,QAAQ,IAAI,GAAG,KAAK,CAAC;AACrB,YAAY,GAAG,IAAI,IAAI;AACvB,aAAa,IAAI,GAAG,KAAK,CAAC;AAC1B,YAAY,GAAG,IAAI,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACrC,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;AAC3E,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK;AACzC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC;AACpF,YAAY,OAAO;AACnB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB,YAAY,KAAK,EAAE,YAAY;AAC/B,SAAS,CAAC,CAAC;AACX,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,UAAU,GAAG;AAC9B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACpF,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU;AAC9C,YAAY,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE;AACzC,gBAAgB,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU;AACnD,gBAAgB,IAAI,CAAC,YAAY;AACjC,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC;AACpE,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,MAAM,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE;AAChL,oBAAoB,MAAM,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC;AACpG,oBAAoB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACnG,oBAAoB,IAAI,CAAC,UAAU;AACnC,wBAAwB,OAAO,IAAI;AACnC,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACzD,oBAAoB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACvE,gBAAgB;AAChB;AACA,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,OAAO,IAAI;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB;AACA,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE;AACnE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,YAAY,GAAG;AAC1B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AAC7E,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,UAAU,GAAG;AACxB,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACxF,YAAY,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI;AAC/D,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,eAAe,GAAG;AAC7B,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACxF,YAAY,OAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAI;AACpE,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE;AACnE,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;AACpF,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AACxC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE;AACnE,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,OAAO,GAAG,OAAO;AACpC,QAAQ,UAAU,CAAC,WAAW,GAAG,WAAW;AAC5C,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAClG,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAChG,IAAI;AACJ;AACA,yBAAyB,CAAC,4BAA4B,GAAG,0BAA0B;;AC3vKnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa,CAAC;AACpB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE;AAC9B,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACpG,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA,SAAS,iBAAiB,GAAG;AAC7B,IAAI,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW;AACnD,IAAI,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,WAAW;AAClD,IAAI,OAAO;AACX,QAAQ,OAAO,EAAE,SAAS,IAAI,OAAO,YAAY,KAAK;AACtD,cAAc;AACd,cAAc,IAAI,aAAa,EAAE;AACjC,QAAQ,cAAc,EAAE,SAAS,IAAI,OAAO,cAAc,KAAK;AAC/D,cAAc;AACd,cAAc,IAAI,aAAa,EAAE;AACjC,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,YAAY,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,IAAI,SAAS;AACzB,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC;AACA,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClE,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,IAAI,SAAS;AACzB,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAClE,QAAQ,CAAC;AACT,QAAQ,MAAM,MAAM,CAAC,IAAI,EAAE;AAC3B,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;AAChE,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAC5D,YAAY;AACZ;AACA,YAAY,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,QAAQ,CAAC;AACzD,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACnE,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACxF,QAAQ,CAAC;AACT,QAAQ,YAAY,GAAG;AACvB,YAAY,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,WAAW;AAC7D,gBAAgB,OAAO,SAAS,CAAC,SAAS;AAC1C,YAAY,OAAO,EAAE;AACrB,QAAQ,CAAC;AACT,QAAQ,iBAAiB,GAAG;AAC5B,YAAY,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ;AAC5C,gBAAgB,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM;AAC7C,YAAY,OAAO,SAAS;AAC5B,QAAQ,CAAC;AACT,QAAQ,MAAM,EAAE,MAAM;AACtB,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,iBAAiB,EAAE;AACnC,IAAI,mBAAmB,GAAG,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,CAAC,OAAO,EAAE;AACrC,IAAI,IAAI,mBAAmB,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC;AACzG,IAAI;AACJ,IAAI,mBAAmB,GAAG,IAAI;AAC9B,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC;AACpE;AACA;AACO,SAAS,WAAW,GAAG;AAC9B,IAAI,OAAO,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG;AAC/B,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE;AACvC,IAAI,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C,QAAQ,OAAO,IAAI;AACnB,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC3E,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,GAAG,CAAC;AACrD;AACA;AACA,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ;AAC7C,YAAY,OAAO,IAAI;AACvB;AACA;AACA,QAAQ,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI;AACzD,QAAQ,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9D,QAAQ,IAAI,QAAQ,IAAI,eAAe,IAAI,CAAC,WAAW;AACvD,YAAY,OAAO,IAAI;AACvB,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG;AAChC,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC,YAAY,EAAE;AACvC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,QAAQ,OAAO,IAAI;AACnB,IAAI,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,IAAI,YAAY,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;AACtF,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,KAAK;AAChB;;ACtJA;AACY,MAAC,oBAAoB,GAAG;AACpC;AACA,MAAM,kBAAkB,GAAG,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,CAAC;AAC9B;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC;AAC/E,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,OAAO,GAAG,oBAAoB;AAC1C;AACA,YAAY,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AAC3F,YAAY,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,OAAO,CAAC;AAC1E,QAAQ;AACR;AACA,QAAQ,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC;AACxE,QAAQ,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,OAAO,CAAC;AACjE,QAAQ,OAAO;AACf,YAAY,OAAO;AACnB,YAAY,QAAQ,EAAE;AACtB,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,EAAE;AAC1E,QAAQ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,oBAAoB;AACzG;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACtF,QAAQ,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE;AAC7D,YAAY,OAAO;AACnB,YAAY,SAAS,EAAE,aAAa;AACpC,YAAY,KAAK,EAAE,kBAAkB;AACrC,YAAY,KAAK,EAAE;AACnB,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,oBAAoB,EAAE,aAAa;AAC/C,YAAY,iBAAiB,EAAE,aAAa;AAC5C,YAAY,WAAW,EAAE,CAAC;AAC1B,YAAY,OAAO,EAAE;AACrB,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,oBAAoB;AACzG;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvF,QAAQ,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE;AACvD,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,SAAS,EAAE;AACvB,SAAS,CAAC;AACV,QAAQ,OAAO,aAAa;AAC5B,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE;AACnC,QAAQ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,oBAAoB;AACzG;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvF,QAAQ,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE;AACvD,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,SAAS,EAAE;AACvB,SAAS,CAAC;AACV,QAAQ,OAAO,aAAa;AAC5B,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,WAAW,EAAE;AACvC,QAAQ,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC;AAClE,QAAQ,OAAO,WAAW;AAC1B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,YAAY,EAAE,SAAS,EAAE;AAC5D,QAAQ,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;AAC5F,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,kBAAkB,GAAG,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC3F,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,YAAY,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC;AAC5F,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,mBAAmB,CAAC;AACjF,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;AAC/D,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC;AAC5D,QAAQ,OAAO;AACf,YAAY,OAAO;AACnB,YAAY,QAAQ,EAAE;AACtB,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,WAAW,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACpE,QAAQ,WAAW,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC;AAC/D,QAAQ,WAAW,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,kBAAkB,CAAC;AACnE,QAAQ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;AACxD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO;AACf;AACA,SAAS;AACT,IAAI;AACJ;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,EAAE,EAAE;AAC9C,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,IAAI;AACJ;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AACvD,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7E,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AAC3C,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE;AAChE,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7E,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,EAAE;AAC1E,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,CAAC;AACnG,IAAI;AACJ,IAAI,MAAM,eAAe,CAAC,EAAE,EAAE;AAC9B,QAAQ,IAAI,WAAW,EAAE,CAAC,MAAM,EAAE;AAClC,YAAY,MAAM,IAAI,CAAC,+BAA+B,EAAE;AACxD,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC;AACjI,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,YAAY,EAAE,SAAS,EAAE;AAC5D,QAAQ,IAAI,WAAW,EAAE,CAAC,MAAM,EAAE;AAClC,YAAY,MAAM,IAAI,CAAC,+BAA+B,EAAE;AACxD,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC;AACjI,IAAI;AACJ,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;AACtD,IAAI;AACJ;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B;AACA,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC;AACxD,IAAI;AACJ;AACA,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE;AACnC,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClC;AACA,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACjG,QAAQ,IAAI;AACZ;AACA;AACA,YAAY,IAAI,WAAW,EAAE,CAAC,MAAM,EAAE;AACtC,gBAAgB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;AAC1E,gBAAgB,IAAI,CAAC,SAAS,EAAE;AAChC,oBAAoB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AACnE,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;AACvE;AACA,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,iBAAiB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC;AACnH,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;AAC5G,YAAY,MAAM,KAAK;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,MAAM,+BAA+B,GAAG;AAC5C,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC;AACA,YAAY,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/D,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,2BAA2B;AAChE,YAAY,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,uBAAuB,EAAE;AAC1E,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1D;AACA,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACzD,YAAY,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;AACrD,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;AAClD;AACA,YAAY,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxD,gBAAgB,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc;AACjD,oBAAoB,KAAK,YAAY,WAAW,EAAE;AAClD,oBAAoB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AACnD,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,qBAAqB,CAAC,MAAM;AACxC,gBAAgB,IAAI,EAAE,EAAE,EAAE;AAC1B,gBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC;AAC1I,gBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC;AAC1I,gBAAgB,IAAI,OAAO;AAC3B,oBAAoB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC/C,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC/C,oBAAoB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;AAC7D,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,oBAAoB,CAAC;AACpF,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACzG,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,OAAO,EAAE;AACzB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,qBAAqB,CAAC;AACtF,YAAY,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC5G,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,OAAO,EAAE;AACzB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,wBAAwB,CAAC;AACvF,YAAY,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;AACvG,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE;AAC1C,oBAAoB,IAAI,CAAC,UAAU,EAAE;AACrC,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK;AACtC,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACxC,oBAAoB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC;AACvE,oBAAoB,IAAI,CAAC,UAAU,EAAE;AACrC,oBAAoB,OAAO,EAAE;AAC7B,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC;AAC5D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,MAAM,oBAAoB,CAAC,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACxC;AACA,YAAY,IAAI,MAAM,GAAG,EAAE;AAC3B,YAAY,IAAI;AAChB,gBAAgB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC5C,YAAY;AACZ,YAAY,OAAO,EAAE,EAAE;AACvB;AACA,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/D,YAAY,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,kBAAkB;AACvD,YAAY,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;AAC9E,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1D;AACA,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACzD,YAAY,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;AACrD,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;AAClD;AACA,YAAY,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxD,gBAAgB,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc;AACjD,oBAAoB,KAAK,YAAY,WAAW,EAAE;AAClD,oBAAoB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AACnD,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,qBAAqB,CAAC,MAAM;AACxC,gBAAgB,IAAI,EAAE,EAAE,EAAE;AAC1B,gBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC;AAC1I,gBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC;AAC1I,gBAAgB,IAAI,OAAO;AAC3B,oBAAoB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC/C,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC/C,oBAAoB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;AAC7D,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,sBAAsB,CAAC;AACxF,YAAY,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC/G,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,OAAO,CAAC,IAAI,CAAC;AAC7B,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,qBAAqB,CAAC;AACtF,YAAY,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC5G,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,OAAO,CAAC,KAAK,CAAC;AAC9B,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,oBAAoB,CAAC;AACpF,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACzG,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,OAAO,CAAC,KAAK,CAAC;AAC9B,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,wBAAwB,CAAC;AACvF,YAAY,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;AACvG,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE;AAC1C,oBAAoB,IAAI,CAAC,UAAU,EAAE;AACrC,oBAAoB,OAAO,CAAC,KAAK,CAAC;AAClC,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK;AACtC,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACxC,oBAAoB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC;AACvE,oBAAoB,IAAI,CAAC,UAAU,EAAE;AACrC,oBAAoB,OAAO,CAAC,KAAK,CAAC;AAClC,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC;AAC5D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC;AACA,YAAY,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;AACtE,gBAAgB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;AAC3C,YAAY,CAAC,CAAC;AACd,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,wBAAwB,CAAC;AACvF,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,wBAAwB,CAAC;AACvF,YAAY,IAAI,OAAO;AACvB,gBAAgB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC3C,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC3C,gBAAgB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB;AAC5D,YAAY;AACZ,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,EAAE;AACtB,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;AAC3F,gBAAgB,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1C,YAAY,CAAC,EAAE,GAAG,CAAC;AACnB,QAAQ;AACR,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AACrD,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC/B,YAAY,OAAO;AACnB,gBAAgB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACpC,gBAAgB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnD,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;AACjE,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AACjD,YAAY,OAAO,MAAM;AACzB,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,YAAY,OAAO,KAAK,CAAC,MAAM,GAAG;AAClC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI;AAC7C,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9B,QAAQ;AACR,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;AACnE,YAAY,OAAO,MAAM,CAAC,KAAK,CAAC;AAChC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAChC,YAAY,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;AACrC,YAAY,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1D,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC;AAC5B,IAAI;AACJ,IAAI,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;AAClD,QAAQ,IAAI,IAAI,KAAK,QAAQ;AAC7B,YAAY,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC9C,QAAQ,OAAO,KAAK,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACzE,IAAI;AACJ,IAAI,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE;AACtD;AACA,QAAQ,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;AACjE,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AACvE,QAAQ,MAAM,gBAAgB,GAAG;AACjC,aAAa,GAAG,CAAC,CAAC,IAAI,KAAK;AAC3B,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACzE,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ;AACnD,YAAY,MAAM,IAAI,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI;AAChD,YAAY,MAAM,WAAW,GAAG;AAChC,kBAAkB;AAClB,kBAAkB,oBAAoB;AACtC;AACA,YAAY,IAAI,UAAU,GAAG,EAAE;AAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACxC,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AACvD,qBAAqB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5D,qBAAqB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAChC,gBAAgB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,oBAAoB,UAAU,GAAG;AACjC;AACA,cAAc,EAAE;AAChB,yBAAyB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AAC/C;AACA,kDAAkD,EAAE,GAAG,CAAC;AACxD,oDAAoD,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACnF;AACA,cAAc,CAAC;AACf,yBAAyB,IAAI,CAAC,EAAE,CAAC;AACjC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;AACvE,yBAAyB,MAAM,GAAG;AAClC,0BAA0B,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,kBAAkB;AACpJ,0BAA0B,EAAE;AAC5B;AACA,UAAU,CAAC;AACX,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO;AACnB,wCAAwC,EAAE,WAAW,CAAC;AACtD;AACA,mDAAmD,EAAE,IAAI,CAAC;AAC1D,qDAAqD,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACpF,yDAAyD,EAAE,UAAU,CAAC;AACtE;AACA,UAAU,EAAE;AACZ,kBAAkB,CAAC,wCAAwC,EAAE,UAAU,CAAC,MAAM;AAC9E,kBAAkB,EAAE;AACpB,UAAU,EAAE,UAAU;AACtB;AACA,MAAM,CAAC;AACP,QAAQ,CAAC;AACT,aAAa,IAAI,CAAC,EAAE,CAAC;AACrB;AACA,QAAQ,IAAI,WAAW,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,YAAY,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACxI,QAAQ;AACR,aAAa,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAY,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ;AACR,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,YAAY,WAAW,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AACpF,QAAQ;AACR,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG;AACpC,cAAc;AACd,cAAc,EAAE;AAChB,kBAAkB,CAAC,6BAA6B,EAAE,WAAW,CAAC,MAAM;AACpE,kBAAkB,EAAE;AACpB;AACA,gBAAgB,EAAE,gBAAgB;AAClC;AACA,YAAY;AACZ,cAAc;AACd;AACA;AACA,iDAAiD,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;AACnH;AACA,YAAY,CAAC;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,CAAC;AACL,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,OAAO,EAAE;AACzC;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,WAAW,EAAE;AACtC,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;AACjD,QAAQ,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AAChE,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC;AACvE,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;;ACjsBA;AACA;AACA;AAQA,IAAI,mBAAmB,GAAG,IAAI;AAC9B,IAAI,iBAAiB,GAAG,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","x_google_ignoreList":[0,1,2,3,12,13,14,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]}