libp2p 0.42.2-d605cbe3 → 0.42.2-d7fa853a

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 (271) hide show
  1. package/dist/index.min.js +30 -30
  2. package/dist/src/address-manager/index.d.ts +1 -10
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +46 -29
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/autonat/constants.d.ts +4 -0
  7. package/dist/src/autonat/constants.d.ts.map +1 -0
  8. package/dist/src/autonat/constants.js +4 -0
  9. package/dist/src/autonat/constants.js.map +1 -0
  10. package/dist/src/autonat/index.d.ts +64 -0
  11. package/dist/src/autonat/index.d.ts.map +1 -0
  12. package/dist/src/autonat/index.js +417 -0
  13. package/dist/src/autonat/index.js.map +1 -0
  14. package/dist/src/autonat/pb/index.d.ts +57 -0
  15. package/dist/src/autonat/pb/index.d.ts.map +1 -0
  16. package/dist/src/autonat/pb/index.js +250 -0
  17. package/dist/src/autonat/pb/index.js.map +1 -0
  18. package/dist/src/circuit/constants.d.ts +29 -3
  19. package/dist/src/circuit/constants.d.ts.map +1 -1
  20. package/dist/src/circuit/constants.js +32 -5
  21. package/dist/src/circuit/constants.js.map +1 -1
  22. package/dist/src/circuit/index.d.ts +16 -61
  23. package/dist/src/circuit/index.d.ts.map +1 -1
  24. package/dist/src/circuit/index.js +2 -1
  25. package/dist/src/circuit/index.js.map +1 -1
  26. package/dist/src/circuit/pb/index.d.ts +7 -7
  27. package/dist/src/circuit/pb/index.d.ts.map +1 -1
  28. package/dist/src/circuit/pb/index.js +10 -20
  29. package/dist/src/circuit/pb/index.js.map +1 -1
  30. package/dist/src/circuit/server/advert-service.d.ts +43 -0
  31. package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
  32. package/dist/src/circuit/server/advert-service.js +69 -0
  33. package/dist/src/circuit/server/advert-service.js.map +1 -0
  34. package/dist/src/circuit/server/index.d.ts +60 -0
  35. package/dist/src/circuit/server/index.d.ts.map +1 -0
  36. package/dist/src/circuit/server/index.js +287 -0
  37. package/dist/src/circuit/server/index.js.map +1 -0
  38. package/dist/src/circuit/{reservation-store.d.ts → server/reservation-store.d.ts} +17 -10
  39. package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
  40. package/dist/src/circuit/server/reservation-store.js +57 -0
  41. package/dist/src/circuit/server/reservation-store.js.map +1 -0
  42. package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
  43. package/dist/src/circuit/{reservation-voucher.js → server/reservation-voucher.js} +1 -1
  44. package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
  45. package/dist/src/circuit/transport/discovery.d.ts +45 -0
  46. package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
  47. package/dist/src/circuit/transport/discovery.js +82 -0
  48. package/dist/src/circuit/transport/discovery.js.map +1 -0
  49. package/dist/src/circuit/transport/index.d.ts +33 -0
  50. package/dist/src/circuit/transport/index.d.ts.map +1 -0
  51. package/dist/src/circuit/transport/index.js +225 -0
  52. package/dist/src/circuit/transport/index.js.map +1 -0
  53. package/dist/src/circuit/transport/listener.d.ts +9 -0
  54. package/dist/src/circuit/transport/listener.d.ts.map +1 -0
  55. package/dist/src/circuit/transport/listener.js +76 -0
  56. package/dist/src/circuit/transport/listener.js.map +1 -0
  57. package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
  58. package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
  59. package/dist/src/circuit/transport/reservation-store.js +165 -0
  60. package/dist/src/circuit/transport/reservation-store.js.map +1 -0
  61. package/dist/src/circuit/utils.d.ts +4 -2
  62. package/dist/src/circuit/utils.d.ts.map +1 -1
  63. package/dist/src/circuit/utils.js +75 -102
  64. package/dist/src/circuit/utils.js.map +1 -1
  65. package/dist/src/components.d.ts +2 -1
  66. package/dist/src/components.d.ts.map +1 -1
  67. package/dist/src/components.js +13 -13
  68. package/dist/src/components.js.map +1 -1
  69. package/dist/src/config.d.ts.map +1 -1
  70. package/dist/src/config.js +21 -24
  71. package/dist/src/config.js.map +1 -1
  72. package/dist/src/connection/index.d.ts +2 -2
  73. package/dist/src/connection/index.d.ts.map +1 -1
  74. package/dist/src/connection/index.js +4 -4
  75. package/dist/src/connection/index.js.map +1 -1
  76. package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
  77. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  78. package/dist/src/connection-manager/auto-dialler.js +0 -9
  79. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  80. package/dist/src/connection-manager/dialer/dial-request.js +6 -6
  81. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
  82. package/dist/src/connection-manager/dialer/index.d.ts +2 -1
  83. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  84. package/dist/src/connection-manager/dialer/index.js +9 -9
  85. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  86. package/dist/src/connection-manager/index.d.ts +0 -4
  87. package/dist/src/connection-manager/index.d.ts.map +1 -1
  88. package/dist/src/connection-manager/index.js +5 -5
  89. package/dist/src/connection-manager/index.js.map +1 -1
  90. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  91. package/dist/src/connection-manager/latency-monitor.js +1 -1
  92. package/dist/src/connection-manager/latency-monitor.js.map +1 -1
  93. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  94. package/dist/src/content-routing/index.d.ts +6 -4
  95. package/dist/src/content-routing/index.d.ts.map +1 -1
  96. package/dist/src/content-routing/index.js +9 -9
  97. package/dist/src/content-routing/index.js.map +1 -1
  98. package/dist/src/content-routing/utils.d.ts +3 -3
  99. package/dist/src/content-routing/utils.d.ts.map +1 -1
  100. package/dist/src/content-routing/utils.js +2 -2
  101. package/dist/src/content-routing/utils.js.map +1 -1
  102. package/dist/src/dht/dht-content-routing.d.ts +2 -1
  103. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  104. package/dist/src/dht/dht-content-routing.js +2 -2
  105. package/dist/src/dht/dht-content-routing.js.map +1 -1
  106. package/dist/src/dht/dht-peer-routing.d.ts +3 -2
  107. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  108. package/dist/src/dht/dht-peer-routing.js +2 -2
  109. package/dist/src/dht/dht-peer-routing.js.map +1 -1
  110. package/dist/src/dht/dummy-dht.d.ts +1 -1
  111. package/dist/src/dht/dummy-dht.d.ts.map +1 -1
  112. package/dist/src/dht/dummy-dht.js +12 -12
  113. package/dist/src/dht/dummy-dht.js.map +1 -1
  114. package/dist/src/fetch/index.d.ts.map +1 -1
  115. package/dist/src/fetch/index.js +6 -6
  116. package/dist/src/fetch/index.js.map +1 -1
  117. package/dist/src/fetch/pb/proto.d.ts +3 -3
  118. package/dist/src/fetch/pb/proto.d.ts.map +1 -1
  119. package/dist/src/fetch/pb/proto.js +3 -3
  120. package/dist/src/fetch/pb/proto.js.map +1 -1
  121. package/dist/src/get-peer.js +2 -2
  122. package/dist/src/get-peer.js.map +1 -1
  123. package/dist/src/identify/index.d.ts +3 -1
  124. package/dist/src/identify/index.d.ts.map +1 -1
  125. package/dist/src/identify/index.js +19 -14
  126. package/dist/src/identify/index.js.map +1 -1
  127. package/dist/src/identify/pb/message.d.ts +2 -2
  128. package/dist/src/identify/pb/message.d.ts.map +1 -1
  129. package/dist/src/identify/pb/message.js.map +1 -1
  130. package/dist/src/index.d.ts +13 -7
  131. package/dist/src/index.d.ts.map +1 -1
  132. package/dist/src/index.js.map +1 -1
  133. package/dist/src/insecure/index.d.ts.map +1 -1
  134. package/dist/src/insecure/index.js.map +1 -1
  135. package/dist/src/insecure/pb/proto.d.ts +3 -3
  136. package/dist/src/insecure/pb/proto.d.ts.map +1 -1
  137. package/dist/src/insecure/pb/proto.js +3 -5
  138. package/dist/src/insecure/pb/proto.js.map +1 -1
  139. package/dist/src/libp2p.d.ts +6 -4
  140. package/dist/src/libp2p.d.ts.map +1 -1
  141. package/dist/src/libp2p.js +24 -33
  142. package/dist/src/libp2p.js.map +1 -1
  143. package/dist/src/nat-manager.d.ts.map +1 -1
  144. package/dist/src/nat-manager.js +5 -3
  145. package/dist/src/nat-manager.js.map +1 -1
  146. package/dist/src/peer-record-updater.d.ts.map +1 -1
  147. package/dist/src/peer-routing.d.ts.map +1 -1
  148. package/dist/src/peer-routing.js +5 -5
  149. package/dist/src/peer-routing.js.map +1 -1
  150. package/dist/src/ping/index.d.ts.map +1 -1
  151. package/dist/src/ping/index.js +2 -2
  152. package/dist/src/ping/index.js.map +1 -1
  153. package/dist/src/pnet/crypto.d.ts +1 -1
  154. package/dist/src/pnet/crypto.d.ts.map +1 -1
  155. package/dist/src/pnet/crypto.js +1 -1
  156. package/dist/src/pnet/crypto.js.map +1 -1
  157. package/dist/src/pnet/index.js +3 -3
  158. package/dist/src/pnet/index.js.map +1 -1
  159. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  160. package/dist/src/pubsub/dummy-pubsub.js +9 -9
  161. package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
  162. package/dist/src/registrar.d.ts.map +1 -1
  163. package/dist/src/registrar.js +4 -4
  164. package/dist/src/registrar.js.map +1 -1
  165. package/dist/src/transport-manager.d.ts.map +1 -1
  166. package/dist/src/transport-manager.js +6 -6
  167. package/dist/src/transport-manager.js.map +1 -1
  168. package/dist/src/upgrader.d.ts +2 -1
  169. package/dist/src/upgrader.d.ts.map +1 -1
  170. package/dist/src/upgrader.js +38 -33
  171. package/dist/src/upgrader.js.map +1 -1
  172. package/package.json +26 -22
  173. package/src/address-manager/index.ts +62 -35
  174. package/src/autonat/constants.ts +4 -0
  175. package/src/autonat/index.ts +567 -0
  176. package/src/autonat/pb/index.proto +35 -0
  177. package/src/autonat/pb/index.ts +320 -0
  178. package/src/circuit/constants.ts +40 -5
  179. package/src/circuit/index.ts +17 -67
  180. package/src/circuit/pb/index.ts +17 -27
  181. package/src/circuit/server/advert-service.ts +108 -0
  182. package/src/circuit/server/index.ts +421 -0
  183. package/src/circuit/server/reservation-store.ts +111 -0
  184. package/src/circuit/{reservation-voucher.ts → server/reservation-voucher.ts} +3 -3
  185. package/src/circuit/transport/discovery.ts +127 -0
  186. package/src/circuit/transport/index.ts +325 -0
  187. package/src/circuit/transport/listener.ts +99 -0
  188. package/src/circuit/transport/reservation-store.ts +249 -0
  189. package/src/circuit/utils.ts +78 -115
  190. package/src/components.ts +22 -21
  191. package/src/config.ts +21 -24
  192. package/src/connection/index.ts +10 -10
  193. package/src/connection-manager/auto-dialler.ts +4 -20
  194. package/src/connection-manager/dialer/dial-request.ts +6 -6
  195. package/src/connection-manager/dialer/index.ts +16 -15
  196. package/src/connection-manager/index.ts +18 -23
  197. package/src/connection-manager/latency-monitor.ts +9 -9
  198. package/src/connection-manager/visibility-change-emitter.ts +4 -4
  199. package/src/content-routing/index.ts +18 -16
  200. package/src/content-routing/utils.ts +5 -5
  201. package/src/dht/dht-content-routing.ts +5 -4
  202. package/src/dht/dht-peer-routing.ts +5 -4
  203. package/src/dht/dummy-dht.ts +13 -13
  204. package/src/fetch/index.ts +13 -13
  205. package/src/fetch/pb/proto.ts +6 -6
  206. package/src/get-peer.ts +3 -3
  207. package/src/identify/index.ts +29 -24
  208. package/src/identify/pb/message.ts +2 -2
  209. package/src/index.ts +14 -7
  210. package/src/insecure/index.ts +2 -1
  211. package/src/insecure/pb/proto.ts +6 -8
  212. package/src/libp2p.ts +38 -46
  213. package/src/nat-manager.ts +11 -9
  214. package/src/peer-record-updater.ts +4 -4
  215. package/src/peer-routing.ts +9 -9
  216. package/src/ping/index.ts +6 -6
  217. package/src/pnet/crypto.ts +3 -3
  218. package/src/pnet/index.ts +3 -3
  219. package/src/pnet/key-generator.ts +1 -1
  220. package/src/pubsub/dummy-pubsub.ts +9 -9
  221. package/src/registrar.ts +12 -12
  222. package/src/transport-manager.ts +15 -15
  223. package/src/upgrader.ts +39 -38
  224. package/src/version.ts +1 -1
  225. package/dist/src/circuit/client.d.ts +0 -81
  226. package/dist/src/circuit/client.d.ts.map +0 -1
  227. package/dist/src/circuit/client.js +0 -285
  228. package/dist/src/circuit/client.js.map +0 -1
  229. package/dist/src/circuit/hop.d.ts +0 -23
  230. package/dist/src/circuit/hop.d.ts.map +0 -1
  231. package/dist/src/circuit/hop.js +0 -167
  232. package/dist/src/circuit/hop.js.map +0 -1
  233. package/dist/src/circuit/interfaces.d.ts +0 -27
  234. package/dist/src/circuit/interfaces.d.ts.map +0 -1
  235. package/dist/src/circuit/interfaces.js +0 -2
  236. package/dist/src/circuit/interfaces.js.map +0 -1
  237. package/dist/src/circuit/listener.d.ts +0 -9
  238. package/dist/src/circuit/listener.d.ts.map +0 -1
  239. package/dist/src/circuit/listener.js +0 -62
  240. package/dist/src/circuit/listener.js.map +0 -1
  241. package/dist/src/circuit/multicodec.d.ts +0 -3
  242. package/dist/src/circuit/multicodec.d.ts.map +0 -1
  243. package/dist/src/circuit/multicodec.js +0 -3
  244. package/dist/src/circuit/multicodec.js.map +0 -1
  245. package/dist/src/circuit/relay.d.ts +0 -34
  246. package/dist/src/circuit/relay.d.ts.map +0 -1
  247. package/dist/src/circuit/relay.js +0 -61
  248. package/dist/src/circuit/relay.js.map +0 -1
  249. package/dist/src/circuit/reservation-store.d.ts.map +0 -1
  250. package/dist/src/circuit/reservation-store.js +0 -59
  251. package/dist/src/circuit/reservation-store.js.map +0 -1
  252. package/dist/src/circuit/reservation-voucher.d.ts.map +0 -1
  253. package/dist/src/circuit/reservation-voucher.js.map +0 -1
  254. package/dist/src/circuit/stop.d.ts +0 -19
  255. package/dist/src/circuit/stop.d.ts.map +0 -1
  256. package/dist/src/circuit/stop.js +0 -67
  257. package/dist/src/circuit/stop.js.map +0 -1
  258. package/dist/src/circuit/transport.d.ts +0 -66
  259. package/dist/src/circuit/transport.d.ts.map +0 -1
  260. package/dist/src/circuit/transport.js +0 -238
  261. package/dist/src/circuit/transport.js.map +0 -1
  262. package/src/circuit/client.ts +0 -381
  263. package/src/circuit/hop.ts +0 -210
  264. package/src/circuit/interfaces.ts +0 -28
  265. package/src/circuit/listener.ts +0 -83
  266. package/src/circuit/multicodec.ts +0 -3
  267. package/src/circuit/relay.ts +0 -87
  268. package/src/circuit/reservation-store.ts +0 -106
  269. package/src/circuit/stop.ts +0 -92
  270. package/src/circuit/transport.ts +0 -313
  271. /package/dist/src/circuit/{reservation-voucher.d.ts → server/reservation-voucher.d.ts} +0 -0
package/dist/index.min.js CHANGED
@@ -1,28 +1,15 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2P=(()=>{var gx=Object.create;var ea=Object.defineProperty;var wx=Object.getOwnPropertyDescriptor;var Ex=Object.getOwnPropertyNames;var xx=Object.getPrototypeOf,vx=Object.prototype.hasOwnProperty;var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pe=(e,t)=>{for(var r in t)ea(e,r,{get:t[r],enumerable:!0})},Id=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ex(t))!vx.call(e,i)&&i!==r&&ea(e,i,{get:()=>t[i],enumerable:!(n=wx(t,i))||n.enumerable});return e};var T=(e,t,r)=>(r=e!=null?gx(xx(e)):{},Id(t||!e||!e.__esModule?ea(r,"default",{value:e,enumerable:!0}):r,e)),bx=e=>Id(ea({},"__esModule",{value:!0}),e);var Lu=I((cT,Td)=>{var Ui=1e3,Fi=Ui*60,Ki=Fi*60,Wn=Ki*24,_x=Wn*7,Sx=Wn*365.25;Td.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return Ax(e);if(r==="number"&&isFinite(e))return t.long?Ix(e):Rx(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Ax(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Sx;case"weeks":case"week":case"w":return r*_x;case"days":case"day":case"d":return r*Wn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ki;case"minutes":case"minute":case"mins":case"min":case"m":return r*Fi;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ui;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Rx(e){var t=Math.abs(e);return t>=Wn?Math.round(e/Wn)+"d":t>=Ki?Math.round(e/Ki)+"h":t>=Fi?Math.round(e/Fi)+"m":t>=Ui?Math.round(e/Ui)+"s":e+"ms"}function Ix(e){var t=Math.abs(e);return t>=Wn?ra(e,t,Wn,"day"):t>=Ki?ra(e,t,Ki,"hour"):t>=Fi?ra(e,t,Fi,"minute"):t>=Ui?ra(e,t,Ui,"second"):e+" ms"}function ra(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var Dd=I((uT,Cd)=>{function Tx(e){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=s,r.humanize=Lu(),r.destroy=u,Object.keys(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=t;function r(l){let f,d=null,h,p;function m(...y){if(!m.enabled)return;let g=m,E=Number(new Date),_=E-(f||E);g.diff=_,g.prev=f,g.curr=E,f=E,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let O=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(D,j)=>{if(D==="%%")return"%";O++;let rt=r.formatters[j];if(typeof rt=="function"){let ie=y[O];D=rt.call(g,ie),y.splice(O,1),O--}return D}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,p=r.enabled(l)),p),set:y=>{d=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function o(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function s(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Cd.exports=Tx});var Pu=I((Ie,na)=>{Ie.formatArgs=Dx;Ie.save=Bx;Ie.load=Lx;Ie.useColors=Cx;Ie.storage=Px();Ie.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Ie.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Cx(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Dx(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+na.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}Ie.log=console.debug||console.log||(()=>{});function Bx(e){try{e?Ie.storage.setItem("debug",e):Ie.storage.removeItem("debug")}catch{}}function Lx(){let e;try{e=Ie.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Px(){try{return localStorage}catch{}}na.exports=Dd()(Ie);var{formatters:Nx}=na.exports;Nx.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var e0=I(Fo=>{(function(){var e,t,r,n,i,o,s,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&255<<8)>>>8,d=c&255,[u,l,f,d].join(".")},s=function(c){var u,l,f,d,h,p;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=t(c),h=p[0],l=p[1],c=c.substring(l),u.push(h)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),o=r("a"),i=r("A"),t=function(c){var u,l,f,d,h;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),h=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-o)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===h)throw new Error("empty octet");return[d,f]},e=function(){function c(u,l){var f,d,h,p;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(p=u.split("/",2),u=p[0],l=p[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=s(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(s(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(s(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var l,f,d;for(d=s(this.first),f=s(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Fo.ip2long=s,Fo.long2ip=a,Fo.Netmask=e}).call(Fo)});var f0=I((l0,la)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(h,p){if(h.indexOf("::")!==h.lastIndexOf("::"))return null;let m=0,y=-1,g=(h.match(a.zoneIndex)||[])[0],E,_;for(g&&(g=g.substring(1),h=h.replace(/%.+$/,""));(y=h.indexOf(":",y+1))>=0;)m++;if(h.substr(0,2)==="::"&&m--,h.substr(-2,2)==="::"&&m--,m>p)return null;for(_=p-m,E=":";_--;)E+="0:";return h=h.replace("::",E),h[0]===":"&&(h=h.slice(1)),h[h.length-1]===":"&&(h=h.slice(0,-1)),p=function(){let O=h.split(":"),C=[];for(let D=0;D<O.length;D++)C.push(parseInt(O[D],16));return C}(),{parts:p,zoneId:g}}function u(h,p,m,y){if(h.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,E;for(;y>0;){if(E=m-y,E<0&&(E=0),h[g]>>E!==p[g]>>E)return!1;y-=m,g+=1}return!0}function l(h){if(i.test(h))return parseInt(h,16);if(h[0]==="0"&&!isNaN(parseInt(h[1],10))){if(n.test(h))return parseInt(h,8);throw new Error(`ipaddr: cannot parse ${h} as octal`)}return parseInt(h,10)}function f(h,p){for(;h.length<p;)h=`0${h}`;return h}let d={};d.IPv4=function(){function h(p){if(p.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<p.length;m++)if(y=p[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=p}return h.prototype.SpecialRanges={unspecified:[[new h([0,0,0,0]),8]],broadcast:[[new h([255,255,255,255]),32]],multicast:[[new h([224,0,0,0]),4]],linkLocal:[[new h([169,254,0,0]),16]],loopback:[[new h([127,0,0,0]),8]],carrierGradeNat:[[new h([100,64,0,0]),10]],private:[[new h([10,0,0,0]),8],[new h([172,16,0,0]),12],[new h([192,168,0,0]),16]],reserved:[[new h([192,0,0,0]),24],[new h([192,0,2,0]),24],[new h([192,88,99,0]),24],[new h([198,51,100,0]),24],[new h([203,0,113,0]),24],[new h([240,0,0,0]),4]]},h.prototype.kind=function(){return"ipv4"},h.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,p.octets,8,m)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,E,_;for(g=3;g>=0;g-=1)if(E=this.octets[g],E in y){if(_=y[E],m&&_!==0)return null;_!==8&&(m=!0),p+=_}else return null;return 32-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){return this.octets.slice(0)},h.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},h.prototype.toNormalizedString=function(){return this.toString()},h.prototype.toString=function(){return this.octets.join(".")},h}(),d.IPv4.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],E=0;for(;E<4;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(h){return this.parser(h)!==null},d.IPv4.isValid=function(h){try{return new this(this.parser(h)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(h){return!!(d.IPv4.isValid(h)&&h.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(h){let p,m,y,g,E;try{for(p=this.parseCIDR(h),y=p[0].toByteArray(),E=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(h){let p=this.parser(h);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},d.IPv4.parseCIDR=function(h){let p;if(p=h.match(/^(.+)\/(\d+)$/)){let m=parseInt(p[2]);if(m>=0&&m<=32){let y=[this.parse(p[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(h){let p,m,y;if(p=h.match(r.fourOctet))return function(){let g=p.slice(1,6),E=[];for(let _=0;_<g.length;_++)m=g[_],E.push(l(m));return E}();if(p=h.match(r.longValue)){if(y=l(p[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],E;for(E=0;E<=24;E+=8)g.push(y>>E&255);return g}().reverse()}else return(p=h.match(r.twoOctet))?function(){let g=p.slice(1,4),E=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return E.push(l(g[0])),E.push(y>>16&255),E.push(y>>8&255),E.push(y&255),E}():(p=h.match(r.threeOctet))?function(){let g=p.slice(1,5),E=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return E.push(l(g[0])),E.push(l(g[1])),E.push(y>>8&255),E.push(y&255),E}():null},d.IPv4.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],m=0,y=Math.floor(h/8);for(;m<y;)p[m]=255,m++;return y<4&&(p[y]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.IPv6=function(){function h(p,m){let y,g;if(p.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(p[y]<<8|p[y+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return h.prototype.SpecialRanges={unspecified:[new h([0,0,0,0,0,0,0,0]),128],linkLocal:[new h([65152,0,0,0,0,0,0,0]),10],multicast:[new h([65280,0,0,0,0,0,0,0]),8],loopback:[new h([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new h([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new h([0,0,0,0,0,65535,0,0]),96],rfc6145:[new h([0,0,0,0,65535,0,0,0]),96],rfc6052:[new h([100,65435,0,0,0,0,0,0]),96],"6to4":[new h([8194,0,0,0,0,0,0,0]),16],teredo:[new h([8193,0,0,0,0,0,0,0]),32],reserved:[[new h([8193,3512,0,0,0,0,0,0]),32]]},h.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},h.prototype.kind=function(){return"ipv6"},h.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,p.parts,16,m)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,E;for(let _=7;_>=0;_-=1)if(g=this.parts[_],g in y){if(E=y[g],m&&E!==0)return null;E!==16&&(m=!0),p+=E}else return null;return 128-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){let p,m=[],y=this.parts;for(let g=0;g<y.length;g++)p=y[g],m.push(p>>8),m.push(p&255);return m},h.prototype.toFixedLengthString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},h.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let p=this.parts.slice(-2),m=p[0],y=p[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},h.prototype.toNormalizedString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},h.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,E;for(;E=p.exec(m);)E[0].length>g&&(y=E.index,g=E[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},h.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},h}(),d.IPv6.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],E=0;for(;E<16;)g.push(parseInt(m[E],10)|parseInt(y[E],10)^255),E++;return new this(g)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},d.IPv6.isIPv6=function(h){return this.parser(h)!==null},d.IPv6.isValid=function(h){if(typeof h=="string"&&h.indexOf(":")===-1)return!1;try{let p=this.parser(h);return new this(p.parts,p.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(h){let p,m,y,g,E;try{for(p=this.parseCIDR(h),y=p[0].toByteArray(),E=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(E[m],10)),m++;return new this(g)}catch(_){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${_})`)}},d.IPv6.parse=function(h){let p=this.parser(h);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},d.IPv6.parseCIDR=function(h){let p,m,y;if((m=h.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return y=[this.parse(m[1]),p],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(h){let p,m,y,g,E,_;if(y=h.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(h))return c(h,8);if((y=h.match(a.transitional))&&(_=y[6]||"",p=c(y[1].slice(0,-1)+_,6),p.parts)){for(E=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<E.length;m++)if(g=E[m],!(0<=g&&g<=255))return null;return p.parts.push(E[0]<<8|E[1]),p.parts.push(E[2]<<8|E[3]),{parts:p.parts,zoneId:p.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>128)throw new Error("ipaddr: invalid IPv6 prefix length");let p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(h/8);for(;m<y;)p[m]=255,m++;return y<16&&(p[y]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.fromByteArray=function(h){let p=h.length;if(p===4)return new d.IPv4(h);if(p===16)return new d.IPv6(h);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(h){return d.IPv6.isValid(h)||d.IPv4.isValid(h)},d.parse=function(h){if(d.IPv6.isValid(h))return d.IPv6.parse(h);if(d.IPv4.isValid(h))return d.IPv4.parse(h);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(h){try{return d.IPv6.parseCIDR(h)}catch{try{return d.IPv4.parseCIDR(h)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(h){let p=this.parse(h);return p.kind()==="ipv6"&&p.isIPv4MappedAddress()?p.toIPv4Address():p},d.subnetMatch=function(h,p,m){let y,g,E,_;m==null&&(m="unicast");for(g in p)if(Object.prototype.hasOwnProperty.call(p,g)){for(E=p[g],E[0]&&!(E[0]instanceof Array)&&(E=[E]),y=0;y<E.length;y++)if(_=E[y],h.kind()===_[0].kind()&&h.match.apply(h,_))return g}return m},typeof la<"u"&&la.exports?la.exports=d:e.ipaddr=d})(l0)});var dt=I((uC,g0)=>{"use strict";function y0(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function M2(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return y0(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),y0(new i,r)}}g0.exports=M2});var ol=I((UC,_0)=>{"use strict";_0.exports=rv;function rv(e,t){for(var r=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(a,c){r[n]=function(l){if(o)if(o=!1,l)c(l);else{for(var f=new Array(arguments.length-1),d=0;d<f.length;)f[d++]=arguments[d];a.apply(null,f)}};try{e.apply(t||null,r)}catch(u){o&&(o=!1,c(u))}})}});var sl=I(R0=>{"use strict";var da=R0;da.length=function(t){var r=t.length;if(!r)return 0;for(var n=0;--r%4>1&&t.charAt(r)==="=";)++n;return Math.ceil(t.length*3)/4-n};var Qi=new Array(64),A0=new Array(123);for(er=0;er<64;)A0[Qi[er]=er<26?er+65:er<52?er+71:er<62?er-4:er-59|43]=er++;var er;da.encode=function(t,r,n){for(var i=null,o=[],s=0,a=0,c;r<n;){var u=t[r++];switch(a){case 0:o[s++]=Qi[u>>2],c=(u&3)<<4,a=1;break;case 1:o[s++]=Qi[c|u>>4],c=(u&15)<<2,a=2;break;case 2:o[s++]=Qi[c|u>>6],o[s++]=Qi[u&63],a=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return a&&(o[s++]=Qi[c],o[s++]=61,a===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var S0="invalid encoding";da.decode=function(t,r,n){for(var i=n,o=0,s,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&o>1)break;if((c=A0[c])===void 0)throw Error(S0);switch(o){case 0:s=c,o=1;break;case 1:r[n++]=s<<2|(c&48)>>4,s=c,o=2;break;case 2:r[n++]=(s&15)<<4|(c&60)>>2,s=c,o=3;break;case 3:r[n++]=(s&3)<<6|c,o=0;break}}if(o===1)throw Error(S0);return n-i};da.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var al=I((KC,I0)=>{"use strict";I0.exports=pa;function pa(){this._listeners={}}pa.prototype.on=function(t,r,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:r,ctx:n||this}),this};pa.prototype.off=function(t,r){if(t===void 0)this._listeners={};else if(r===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===r?n.splice(i,1):++i;return this};pa.prototype.emit=function(t){var r=this._listeners[t];if(r){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<r.length;)r[i].fn.apply(r[i++].ctx,n)}return this}});var cl=I((VC,P0)=>{"use strict";P0.exports=T0(T0);function T0(e){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=r[3]===128;function i(c,u,l){t[0]=c,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3]}function o(c,u,l){t[0]=c,u[l]=r[3],u[l+1]=r[2],u[l+2]=r[1],u[l+3]=r[0]}e.writeFloatLE=n?i:o,e.writeFloatBE=n?o:i;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],t[0]}function a(c,u){return r[3]=c[u],r[2]=c[u+1],r[1]=c[u+2],r[0]=c[u+3],t[0]}e.readFloatLE=n?s:a,e.readFloatBE=n?a:s}():function(){function t(n,i,o,s){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var c=Math.floor(Math.log(i)/Math.LN2),u=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|u)>>>0,o,s)}}e.writeFloatLE=t.bind(null,C0),e.writeFloatBE=t.bind(null,D0);function r(n,i,o){var s=n(i,o),a=(s>>31)*2+1,c=s>>>23&255,u=s&8388607;return c===255?u?NaN:a*(1/0):c===0?a*1401298464324817e-60*u:a*Math.pow(2,c-150)*(u+8388608)}e.readFloatLE=r.bind(null,B0),e.readFloatBE=r.bind(null,L0)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),r=new Uint8Array(t.buffer),n=r[7]===128;function i(c,u,l){t[0]=c,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3],u[l+4]=r[4],u[l+5]=r[5],u[l+6]=r[6],u[l+7]=r[7]}function o(c,u,l){t[0]=c,u[l]=r[7],u[l+1]=r[6],u[l+2]=r[5],u[l+3]=r[4],u[l+4]=r[3],u[l+5]=r[2],u[l+6]=r[1],u[l+7]=r[0]}e.writeDoubleLE=n?i:o,e.writeDoubleBE=n?o:i;function s(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],r[4]=c[u+4],r[5]=c[u+5],r[6]=c[u+6],r[7]=c[u+7],t[0]}function a(c,u){return r[7]=c[u],r[6]=c[u+1],r[5]=c[u+2],r[4]=c[u+3],r[3]=c[u+4],r[2]=c[u+5],r[1]=c[u+6],r[0]=c[u+7],t[0]}e.readDoubleLE=n?s:a,e.readDoubleBE=n?a:s}():function(){function t(n,i,o,s,a,c){var u=s<0?1:0;if(u&&(s=-s),s===0)n(0,a,c+i),n(1/s>0?0:2147483648,a,c+o);else if(isNaN(s))n(0,a,c+i),n(2146959360,a,c+o);else if(s>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+o);else{var l;if(s<22250738585072014e-324)l=s/5e-324,n(l>>>0,a,c+i),n((u<<31|l/4294967296)>>>0,a,c+o);else{var f=Math.floor(Math.log(s)/Math.LN2);f===1024&&(f=1023),l=s*Math.pow(2,-f),n(l*4503599627370496>>>0,a,c+i),n((u<<31|f+1023<<20|l*1048576&1048575)>>>0,a,c+o)}}}e.writeDoubleLE=t.bind(null,C0,0,4),e.writeDoubleBE=t.bind(null,D0,4,0);function r(n,i,o,s,a){var c=n(s,a+i),u=n(s,a+o),l=(u>>31)*2+1,f=u>>>20&2047,d=4294967296*(u&1048575)+c;return f===2047?d?NaN:l*(1/0):f===0?l*5e-324*d:l*Math.pow(2,f-1075)*(d+4503599627370496)}e.readDoubleLE=r.bind(null,B0,0,4),e.readDoubleBE=r.bind(null,L0,4,0)}(),e}function C0(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function D0(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=e&255}function B0(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function L0(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}});var ul=I((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}});var fl=I(N0=>{"use strict";var ll=N0;ll.length=function(t){for(var r=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,r+=4):r+=3;return r};ll.read=function(t,r,n){var i=n-r;if(i<1)return"";for(var o=null,s=[],a=0,c;r<n;)c=t[r++],c<128?s[a++]=c:c>191&&c<224?s[a++]=(c&31)<<6|t[r++]&63:c>239&&c<365?(c=((c&7)<<18|(t[r++]&63)<<12|(t[r++]&63)<<6|t[r++]&63)-65536,s[a++]=55296+(c>>10),s[a++]=56320+(c&1023)):s[a++]=(c&15)<<12|(t[r++]&63)<<6|t[r++]&63,a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0);return o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};ll.write=function(t,r,n){for(var i=n,o,s,a=0;a<t.length;++a)o=t.charCodeAt(a),o<128?r[n++]=o:o<2048?(r[n++]=o>>6|192,r[n++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(a+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++a,r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=o&63|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=o&63|128);return n-i}});var hl=I((zC,k0)=>{"use strict";k0.exports=nv;function nv(e,t,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(c){if(c<1||c>i)return e(c);s+c>n&&(o=e(n),s=0);var u=t.call(o,s,s+=c);return s&7&&(s=(s|7)+1),u}}});var M0=I(($C,O0)=>{"use strict";O0.exports=ce;var Ko=ri();function ce(e,t){this.lo=e>>>0,this.hi=t>>>0}var ei=ce.zero=new ce(0,0);ei.toNumber=function(){return 0};ei.zzEncode=ei.zzDecode=function(){return this};ei.length=function(){return 1};var iv=ce.zeroHash="\0\0\0\0\0\0\0\0";ce.fromNumber=function(t){if(t===0)return ei;var r=t<0;r&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new ce(n,i)};ce.from=function(t){if(typeof t=="number")return ce.fromNumber(t);if(Ko.isString(t))if(Ko.Long)t=Ko.Long.fromString(t);else return ce.fromNumber(parseInt(t,10));return t.low||t.high?new ce(t.low>>>0,t.high>>>0):ei};ce.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};ce.prototype.toLong=function(t){return Ko.Long?new Ko.Long(this.lo|0,this.hi|0,Boolean(t)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(t)}};var pn=String.prototype.charCodeAt;ce.fromHash=function(t){return t===iv?ei:new ce((pn.call(t,0)|pn.call(t,1)<<8|pn.call(t,2)<<16|pn.call(t,3)<<24)>>>0,(pn.call(t,4)|pn.call(t,5)<<8|pn.call(t,6)<<16|pn.call(t,7)<<24)>>>0)};ce.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ce.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};ce.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};ce.prototype.length=function(){var t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var ri=I(dl=>{"use strict";var M=dl;M.asPromise=ol();M.base64=sl();M.EventEmitter=al();M.float=cl();M.inquire=ul();M.utf8=fl();M.pool=hl();M.LongBits=M0();M.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);M.global=M.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||dl;M.emptyArray=Object.freeze?Object.freeze([]):[];M.emptyObject=Object.freeze?Object.freeze({}):{};M.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};M.isString=function(t){return typeof t=="string"||t instanceof String};M.isObject=function(t){return t&&typeof t=="object"};M.isset=M.isSet=function(t,r){var n=t[r];return n!=null&&t.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};M.Buffer=function(){try{var e=M.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}}();M._Buffer_from=null;M._Buffer_allocUnsafe=null;M.newBuffer=function(t){return typeof t=="number"?M.Buffer?M._Buffer_allocUnsafe(t):new M.Array(t):M.Buffer?M._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};M.Array=typeof Uint8Array<"u"?Uint8Array:Array;M.Long=M.global.dcodeIO&&M.global.dcodeIO.Long||M.global.Long||M.inquire("long");M.key2Re=/^true|false|0|1$/;M.key32Re=/^-?(?:0|[1-9][0-9]*)$/;M.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;M.longToHash=function(t){return t?M.LongBits.from(t).toHash():M.LongBits.zeroHash};M.longFromHash=function(t,r){var n=M.LongBits.fromHash(t);return M.Long?M.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))};function U0(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)(e[n[i]]===void 0||!r)&&(e[n[i]]=t[n[i]]);return e}M.merge=U0;M.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function F0(e){function t(r,n){if(!(this instanceof t))return new t(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&U0(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}M.newError=F0;M.ProtocolError=F0("ProtocolError");M.oneOfGetter=function(t){for(var r={},n=0;n<t.length;++n)r[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(r[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};M.oneOfSetter=function(t){return function(r){for(var n=0;n<t.length;++n)t[n]!==r&&delete this[t[n]]}};M.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};M._configure=function(){var e=M.Buffer;if(!e){M._Buffer_from=M._Buffer_allocUnsafe=null;return}M._Buffer_from=e.from!==Uint8Array.from&&e.from||function(r,n){return new e(r,n)},M._Buffer_allocUnsafe=e.allocUnsafe||function(r){return new e(r)}}});var yl=I((GC,$0)=>{"use strict";$0.exports=$t;var gr=ri(),ml,q0=gr.LongBits,ov=gr.utf8;function rr(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function $t(e){this.buf=e,this.pos=0,this.len=e.length}var K0=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new $t(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new $t(t);throw Error("illegal buffer")},z0=function(){return gr.Buffer?function(r){return($t.create=function(i){return gr.Buffer.isBuffer(i)?new ml(i):K0(i)})(r)}:K0};$t.create=z0();$t.prototype._slice=gr.Array.prototype.subarray||gr.Array.prototype.slice;$t.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,rr(this,10);return t}}();$t.prototype.int32=function(){return this.uint32()|0};$t.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function pl(){var e=new q0(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw rr(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw rr(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}$t.prototype.bool=function(){return this.uint32()!==0};function ma(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}$t.prototype.fixed32=function(){if(this.pos+4>this.len)throw rr(this,4);return ma(this.buf,this.pos+=4)};$t.prototype.sfixed32=function(){if(this.pos+4>this.len)throw rr(this,4);return ma(this.buf,this.pos+=4)|0};function V0(){if(this.pos+8>this.len)throw rr(this,8);return new q0(ma(this.buf,this.pos+=4),ma(this.buf,this.pos+=4))}$t.prototype.float=function(){if(this.pos+4>this.len)throw rr(this,4);var t=gr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};$t.prototype.double=function(){if(this.pos+8>this.len)throw rr(this,4);var t=gr.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};$t.prototype.bytes=function(){var t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw rr(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};$t.prototype.string=function(){var t=this.bytes();return ov.read(t,0,t.length)};$t.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw rr(this,t);this.pos+=t}else do if(this.pos>=this.len)throw rr(this);while(this.buf[this.pos++]&128);return this};$t.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};$t._configure=function(e){ml=e,$t.create=z0(),ml._configure();var t=gr.Long?"toLong":"toNumber";gr.merge($t.prototype,{int64:function(){return pl.call(this)[t](!1)},uint64:function(){return pl.call(this)[t](!0)},sint64:function(){return pl.call(this).zzDecode()[t](!1)},fixed64:function(){return V0.call(this)[t](!0)},sfixed64:function(){return V0.call(this)[t](!1)}})}});var W0=I((YC,Y0)=>{"use strict";Y0.exports=ni;var G0=yl();(ni.prototype=Object.create(G0.prototype)).constructor=ni;var H0=ri();function ni(e){G0.call(this,e)}ni._configure=function(){H0.Buffer&&(ni.prototype._slice=H0.Buffer.prototype.slice)};ni.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};ni._configure()});var _l=I((WC,J0)=>{"use strict";J0.exports=at;var Ke=ri(),gl,ya=Ke.LongBits,Q0=Ke.base64,X0=Ke.utf8;function Vo(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function El(){}function sv(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function at(){this.len=0,this.head=new Vo(El,0,0),this.tail=this.head,this.states=null}var Z0=function(){return Ke.Buffer?function(){return(at.create=function(){return new gl})()}:function(){return new at}};at.create=Z0();at.alloc=function(t){return new Ke.Array(t)};Ke.Array!==Array&&(at.alloc=Ke.pool(at.alloc,Ke.Array.prototype.subarray));at.prototype._push=function(t,r,n){return this.tail=this.tail.next=new Vo(t,r,n),this.len+=r,this};function xl(e,t,r){t[r]=e&255}function av(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}function vl(e,t){this.len=e,this.next=void 0,this.val=t}vl.prototype=Object.create(Vo.prototype);vl.prototype.fn=av;at.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new vl((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};at.prototype.int32=function(t){return t<0?this._push(bl,10,ya.fromNumber(t)):this.uint32(t)};at.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function bl(e,t,r){for(;e.hi;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}at.prototype.uint64=function(t){var r=ya.from(t);return this._push(bl,r.length(),r)};at.prototype.int64=at.prototype.uint64;at.prototype.sint64=function(t){var r=ya.from(t).zzEncode();return this._push(bl,r.length(),r)};at.prototype.bool=function(t){return this._push(xl,1,t?1:0)};function wl(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}at.prototype.fixed32=function(t){return this._push(wl,4,t>>>0)};at.prototype.sfixed32=at.prototype.fixed32;at.prototype.fixed64=function(t){var r=ya.from(t);return this._push(wl,4,r.lo)._push(wl,4,r.hi)};at.prototype.sfixed64=at.prototype.fixed64;at.prototype.float=function(t){return this._push(Ke.float.writeFloatLE,4,t)};at.prototype.double=function(t){return this._push(Ke.float.writeDoubleLE,8,t)};var cv=Ke.Array.prototype.set?function(t,r,n){r.set(t,n)}:function(t,r,n){for(var i=0;i<t.length;++i)r[n+i]=t[i]};at.prototype.bytes=function(t){var r=t.length>>>0;if(!r)return this._push(xl,1,0);if(Ke.isString(t)){var n=at.alloc(r=Q0.length(t));Q0.decode(t,n,0),t=n}return this.uint32(r)._push(cv,r,t)};at.prototype.string=function(t){var r=X0.length(t);return r?this.uint32(r)._push(X0.write,r,t):this._push(xl,1,0)};at.prototype.fork=function(){return this.states=new sv(this),this.head=this.tail=new Vo(El,0,0),this.len=0,this};at.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Vo(El,0,0),this.len=0),this};at.prototype.ldelim=function(){var t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=r,this.len+=n),this};at.prototype.finish=function(){for(var t=this.head.next,r=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r};at._configure=function(e){gl=e,at.create=Z0(),gl._configure()}});var ep=I((QC,tp)=>{"use strict";tp.exports=wr;var j0=_l();(wr.prototype=Object.create(j0.prototype)).constructor=wr;var mn=ri();function wr(){j0.call(this)}wr._configure=function(){wr.alloc=mn._Buffer_allocUnsafe,wr.writeBytesBuffer=mn.Buffer&&mn.Buffer.prototype instanceof Uint8Array&&mn.Buffer.prototype.set.name==="set"?function(t,r,n){r.set(t,n)}:function(t,r,n){if(t.copy)t.copy(r,n,0,t.length);else for(var i=0;i<t.length;)r[n++]=t[i++]}};wr.prototype.bytes=function(t){mn.isString(t)&&(t=mn._Buffer_from(t,"base64"));var r=t.length>>>0;return this.uint32(r),r&&this._push(wr.writeBytesBuffer,r,t),this};function uv(e,t,r){e.length<40?mn.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}wr.prototype.string=function(t){var r=mn.Buffer.byteLength(t);return this.uint32(r),r&&this._push(uv,r,t),this};wr._configure()});var gt=I((d4,sp)=>{sp.exports={options:{usePureJavaScript:!1}}});var up=I((p4,cp)=>{var Cl={};cp.exports=Cl;var ap={};Cl.encode=function(e,t,r){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(e instanceof Uint8Array))n=dv(e,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%o,u=u/o|0;for(;u>0;)a.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
- `)}return n};Cl.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=ap[t];if(!r){r=ap[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),s=[0],n=0;n<e.length;n++){var a=r[e.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<s.length;++c)u+=s[c]*i,s[c]=u&255,u>>=8;for(;u>0;)s.push(u&255),u>>=8}for(var l=0;e[l]===o&&l<e.length-1;++l)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function dv(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var s=0,a=e.at(r);s<o.length;++s)a+=o[s]<<8,o[s]=a%n,a=a/n|0;for(;a>0;)o.push(a%n),a=a/n|0}var c="";for(r=0;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}});var Ht=I((m4,dp)=>{var lp=gt(),fp=up(),w=dp.exports=lp.util=lp.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(l){l()})}};var s=a,e="forge.setImmediate",t=[];w.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var o=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};w.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};w.isArrayBufferView=function(e){return e&&w.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function qo(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}w.ByteBuffer=Dl;function Dl(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(w.isArrayBuffer(e)||w.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Dl||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}w.ByteStringBuffer=Dl;var pv=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>pv&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};w.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};w.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};w.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(w.encodeUtf8(e))};w.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};w.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};w.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};w.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};w.ByteStringBuffer.prototype.putInt=function(e,t){qo(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};w.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};w.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};w.ByteStringBuffer.prototype.getInt32=function(){var e=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,e};w.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};w.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};w.ByteStringBuffer.prototype.getInt32Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,e};w.ByteStringBuffer.prototype.getInt=function(e){qo(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};w.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};w.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};w.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};w.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};w.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var e=w.createBuffer(this.data);return e.read=this.read,e};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function mv(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=w.isArrayBuffer(e),n=w.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}w.DataBuffer=mv;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};w.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};w.DataBuffer.prototype.putBytes=function(e,t){if(w.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof w.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&w.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof w.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(e,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(e,o,this.write),this;if(t==="utf8"&&(e=w.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(e.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};w.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};w.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};w.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(e,t){qo(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};w.DataBuffer.prototype.putSignedInt=function(e,t){return qo(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};w.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};w.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};w.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};w.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};w.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};w.DataBuffer.prototype.getInt=function(e){qo(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};w.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};w.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};w.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};w.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};w.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};w.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return w.binary.raw.encode(t);if(e==="hex")return w.binary.hex.encode(t);if(e==="base64")return w.binary.base64.encode(t);if(e==="utf8")return w.text.utf8.decode(t);if(e==="utf16")return w.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};w.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=w.encodeUtf8(e)),new w.ByteBuffer(e)};w.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};w.xorBytes=function(e,t,r){for(var n="",i="",o="",s=0,a=0;r>0;--r,++s)i=e.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;return n+=o,n};w.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};w.bytesToHex=function(e){return w.createBuffer(e).toHex()};w.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var yn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",gn=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],hp="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(e,t){for(var r="",n="",i,o,s,a=0;a<e.length;)i=e.charCodeAt(a++),o=e.charCodeAt(a++),s=e.charCodeAt(a++),r+=yn.charAt(i>>2),r+=yn.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=yn.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":yn.charAt(s&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
4
- `,r=r.substr(t));return n+=r,n};w.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,o,s=0;s<e.length;)r=gn[e.charCodeAt(s++)-43],n=gn[e.charCodeAt(s++)-43],i=gn[e.charCodeAt(s++)-43],o=gn[e.charCodeAt(s++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};w.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};w.decodeUtf8=function(e){return decodeURIComponent(escape(e))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:fp.encode,decode:fp.decode}};w.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};w.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,o=r;for(e.length&1&&(i=1,n[o++]=parseInt(e[0],16));i<e.length;i+=2)n[o++]=parseInt(e.substr(i,2),16);return t?o-r:n};w.binary.base64.encode=function(e,t){for(var r="",n="",i,o,s,a=0;a<e.byteLength;)i=e[a++],o=e[a++],s=e[a++],r+=yn.charAt(i>>2),r+=yn.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=yn.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":yn.charAt(s&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
5
- `,r=r.substr(t));return n+=r,n};w.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,o,s,a,c=0,u=r;c<e.length;)i=gn[e.charCodeAt(c++)-43],o=gn[e.charCodeAt(c++)-43],s=gn[e.charCodeAt(c++)-43],a=gn[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,s!==64&&(n[u++]=(o&15)<<4|s>>2,a!==64&&(n[u++]=(s&3)<<6|a));return t?u-r:n.subarray(0,u)};w.binary.base58.encode=function(e,t){return w.binary.baseN.encode(e,hp,t)};w.binary.base58.decode=function(e,t){return w.binary.baseN.decode(e,hp,t)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(e,t,r){e=w.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};w.text.utf8.decode=function(e){return w.decodeUtf8(String.fromCharCode.apply(null,e))};w.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var o=r,s=r,a=0;a<e.length;++a)i[s++]=e.charCodeAt(a),o+=2;return t?o-r:n};w.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};w.deflate=function(e,t,r){if(t=w.decode64(e.deflate(w.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};w.inflate=function(e,t,r){var n=e.inflate(w.encode64(t)).rval;return n===null?null:w.decode64(n)};var Bl=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=w.encode64(JSON.stringify(r)),n=e.setItem(t,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Ll=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},yv=function(e,t,r,n){var i=Ll(e,t);i===null&&(i={}),i[r]=n,Bl(e,t,i)},gv=function(e,t,r){var n=Ll(e,t);return n!==null&&(n=r in n?n[r]:null),n},wv=function(e,t,r){var n=Ll(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Bl(e,t,n)}},Ev=function(e,t){Bl(e,t,null)},Ea=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,s=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),o=!0)}catch(c){s=c}if(o)break}if(!o)throw s;return n};w.setItem=function(e,t,r,n,i){Ea(yv,arguments,i)};w.getItem=function(e,t,r,n){return Ea(gv,arguments,n)};w.removeItem=function(e,t,r,n){Ea(wv,arguments,n)};w.clearItems=function(e,t,r){Ea(Ev,arguments,r)};w.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};w.format=function(e){for(var t=/%./g,r,n,i=0,o=[],s=0;r=t.exec(e);){n=e.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(e.substring(s)),o.join("")};w.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,s=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+Math.abs(i-u).toFixed(o).slice(2):"")};w.formatSize=function(e){return e>=1073741824?e=w.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=w.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=w.formatNumber(e/1024,0)+" KiB":e=w.formatNumber(e,0)+" bytes",e};w.bytesFromIP=function(e){return e.indexOf(".")!==-1?w.bytesFromIPv4(e):e.indexOf(":")!==-1?w.bytesFromIPv6(e):null};w.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=w.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};w.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(s){return s.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=w.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=w.hexToBytes(e[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};w.bytesToIP=function(e){return e.length===4?w.bytesToIPv4(e):e.length===16?w.bytesToIPv6(e):null};w.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};w.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var o=w.bytesToHex(e[i]+e[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var s=r[r.length-1],a=t.length;!s||a!==s.end+1?r.push({start:a,end:a}):(s.end=a,s.end-s.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(o)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};w.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in w&&!e.update)return t(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,t(null,w.cores);if(typeof Worker>"u")return w.cores=1,t(null,w.cores);if(typeof Blob>"u")return w.cores=2,t(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var u=Math.floor(s.reduce(function(l,f){return l+f},0)/s.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,w.cores)}i(c,function(l,f){s.push(o(c,f)),n(s,a-1,c)})}function i(s,a){for(var c=[],u=[],l=0;l<s;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===s){for(var h=0;h<s;++h)c[h].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<s;++l)c[l].postMessage(l)}function o(s,a){for(var c=[],u=0;u<s;++u)for(var l=a[u],f=c[u]=[],d=0;d<s;++d)if(u!==d){var h=a[d];(l.st>h.st&&l.st<h.et||h.st>l.st&&h.st<l.et)&&f.push(d)}return c.reduce(function(p,m){return Math.max(p,m.length)},0)}}});var xa=I((y4,pp)=>{var zo=gt();zo.pki=zo.pki||{};var Pl=pp.exports=zo.pki.oids=zo.oids=zo.oids||{};function R(e,t){Pl[e]=t,Pl[t]=e}function mt(e,t){Pl[e]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");mt("2.5.29.1","authorityKeyIdentifier");mt("2.5.29.2","keyAttributes");mt("2.5.29.3","certificatePolicies");mt("2.5.29.4","keyUsageRestriction");mt("2.5.29.5","policyMapping");mt("2.5.29.6","subtreesConstraint");mt("2.5.29.7","subjectAltName");mt("2.5.29.8","issuerAltName");mt("2.5.29.9","subjectDirectoryAttributes");mt("2.5.29.10","basicConstraints");mt("2.5.29.11","nameConstraints");mt("2.5.29.12","policyConstraints");mt("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");mt("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");mt("2.5.29.20","cRLNumber");mt("2.5.29.21","cRLReason");mt("2.5.29.22","expirationDate");mt("2.5.29.23","instructionCode");mt("2.5.29.24","invalidityDate");mt("2.5.29.25","cRLDistributionPoints");mt("2.5.29.26","issuingDistributionPoint");mt("2.5.29.27","deltaCRLIndicator");mt("2.5.29.28","issuingDistributionPoint");mt("2.5.29.29","certificateIssuer");mt("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");mt("2.5.29.33","policyMappings");mt("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");mt("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");mt("2.5.29.46","freshestCRL");mt("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var Ho=I((g4,yp)=>{var Tt=gt();Ht();xa();var B=yp.exports=Tt.asn1=Tt.asn1||{};B.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};B.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};B.create=function(e,t,r,n,i){if(Tt.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:e,type:t,constructed:r,composed:r||Tt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=B.copy(a)),a};B.copy=function(e,t){var r;if(Tt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(B.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:B.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};B.equals=function(e,t,r){if(Tt.util.isArray(e)){if(!Tt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!B.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&B.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};B.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function $o(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var xv=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var o=r&127;$o(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};B.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=Tt.util.createBuffer(e));var r=e.length(),n=va(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function va(e,t,r,n){var i;$o(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=xv(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var l,f,d=(o&32)===32;if(d)if(l=[],c===void 0)for(;;){if($o(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),l.push(va(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),l.push(va(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(l===void 0&&s===B.Class.UNIVERSAL&&a===B.Type.BITSTRING&&(f=e.bytes(c)),l===void 0&&n.decodeBitStrings&&s===B.Class.UNIVERSAL&&a===B.Type.BITSTRING&&c>1){var h=e.read,p=t,m=0;if(a===B.Type.BITSTRING&&($o(e,t,1),m=e.getByte(),t--),m===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},g=va(e,t,r+1,y),E=i-e.length();t-=E,a==B.Type.BITSTRING&&E++;var _=g.tagClass;E===c&&(_===B.Class.UNIVERSAL||_===B.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(e.read=h,t=p)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===B.Type.BMPSTRING)for(l="";c>0;c-=2)$o(e,t,2),l+=String.fromCharCode(e.getInt16()),t-=2;else l=e.getBytes(c),t-=c}var O=f===void 0?null:{bitStringContents:f};return B.create(s,a,d,l,O)}B.toDer=function(e){var t=Tt.util.createBuffer(),r=e.tagClass|e.type,n=Tt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=B.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var o=0;o<e.value.length;++o)e.value[o]!==void 0&&n.putBuffer(B.toDer(e.value[o]))}else if(e.type===B.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===B.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};B.oidToDer=function(e){var t=e.split("."),r=Tt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};B.derToOid=function(e){var t;typeof e=="string"&&(e=Tt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};B.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),o=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var l=parseInt(e.substr(u+1,2),10),f=parseInt(e.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?t.setTime(+t-d):t.setTime(+t+d)}return t};B.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),s=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;e.charAt(e.length-1)==="Z"&&(l=!0);var f=e.length-5,d=e.charAt(f);if(d==="+"||d==="-"){var h=parseInt(e.substr(f+1,2),10),p=parseInt(e.substr(f+4,2),10);u=h*60+p,u*=6e4,d==="+"&&(u*=-1),l=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),l?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,s,a,c)),t};B.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};B.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};B.integerToDer=function(e){var t=Tt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};B.derToInteger=function(e){typeof e=="string"&&(e=Tt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};B.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&Tt.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,e.value[o]&&(i=B.validate(e.value[o],t.value[s],r,n),i?++o:t.value[s].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var mp=/[^\\u0000-\\u00ff]/;B.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
6
- `);for(var i="",o=0;o<t*r;++o)i+=" ";switch(n+=i+"Tag: ",e.tagClass){case B.Class.UNIVERSAL:n+="Universal:";break;case B.Class.APPLICATION:n+="Application:";break;case B.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case B.Class.PRIVATE:n+="Private:";break}if(e.tagClass===B.Class.UNIVERSAL)switch(n+=e.type,e.type){case B.Type.NONE:n+=" (None)";break;case B.Type.BOOLEAN:n+=" (Boolean)";break;case B.Type.INTEGER:n+=" (Integer)";break;case B.Type.BITSTRING:n+=" (Bit string)";break;case B.Type.OCTETSTRING:n+=" (Octet string)";break;case B.Type.NULL:n+=" (Null)";break;case B.Type.OID:n+=" (Object Identifier)";break;case B.Type.ODESC:n+=" (Object Descriptor)";break;case B.Type.EXTERNAL:n+=" (External or Instance of)";break;case B.Type.REAL:n+=" (Real)";break;case B.Type.ENUMERATED:n+=" (Enumerated)";break;case B.Type.EMBEDDED:n+=" (Embedded PDV)";break;case B.Type.UTF8:n+=" (UTF8)";break;case B.Type.ROID:n+=" (Relative Object Identifier)";break;case B.Type.SEQUENCE:n+=" (Sequence)";break;case B.Type.SET:n+=" (Set)";break;case B.Type.PRINTABLESTRING:n+=" (Printable String)";break;case B.Type.IA5String:n+=" (IA5String (ASCII))";break;case B.Type.UTCTIME:n+=" (UTC time)";break;case B.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case B.Type.BMPSTRING:n+=" (BMP String)";break}else n+=e.type;if(n+=`
7
- `,n+=i+"Constructed: "+e.constructed+`
8
- `,e.composed){for(var s=0,a="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(s+=1,a+=B.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",e.type===B.Type.OID){var c=B.derToOid(e.value);n+=c,Tt.pki&&Tt.pki.oids&&c in Tt.pki.oids&&(n+=" ("+Tt.pki.oids[c]+") ")}if(e.type===B.Type.INTEGER)try{n+=B.derToInteger(e.value)}catch{n+="0x"+Tt.util.bytesToHex(e.value)}else if(e.type===B.Type.BITSTRING){if(e.value.length>1?n+="0x"+Tt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===B.Type.OCTETSTRING)mp.test(e.value)||(n+="("+e.value+") "),n+="0x"+Tt.util.bytesToHex(e.value);else if(e.type===B.Type.UTF8)try{n+=Tt.util.decodeUtf8(e.value)}catch(l){if(l.message==="URI malformed")n+="0x"+Tt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw l}else e.type===B.Type.PRINTABLESTRING||e.type===B.Type.IA5String?n+=e.value:mp.test(e.value)?n+="0x"+Tt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var kl=I((w4,gp)=>{var ue=gt();Ht();gp.exports=ue.cipher=ue.cipher||{};ue.cipher.algorithms=ue.cipher.algorithms||{};ue.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=ue.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new ue.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};ue.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=ue.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new ue.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};ue.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),ue.cipher.algorithms[e]=t};ue.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in ue.cipher.algorithms?ue.cipher.algorithms[e]:null};var Nl=ue.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Nl.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=ue.util.createBuffer(),this.output=e.output||ue.util.createBuffer(),this.mode.start(t)};Nl.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Nl.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Ml=I((E4,wp)=>{var le=gt();Ht();le.cipher=le.cipher||{};var X=wp.exports=le.cipher.modes=le.cipher.modes||{};X.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};X.ecb.prototype.start=function(e){};X.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};X.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};X.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};X.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};X.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};X.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=ba(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};X.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};X.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};X.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};X.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};X.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=le.util.createBuffer(),this._partialBytes=0};X.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=ba(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};X.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};X.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=le.util.createBuffer(),this._partialBytes=0};X.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=ba(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};X.ofb.prototype.decrypt=X.ofb.prototype.encrypt;X.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=le.util.createBuffer(),this._partialBytes=0};X.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=ba(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}_a(this._inBlock)};X.ctr.prototype.decrypt=X.ctr.prototype.encrypt;X.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=le.util.createBuffer(),this._partialBytes=0,this._R=3774873600};X.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=le.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=le.util.createBuffer(e.additionalData):r=le.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=le.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ol(n*8)))}this._inBlock=this._j0.slice(0),_a(this._inBlock),this._partialBytes=0,r=le.util.createBuffer(r),this._aDataLength=Ol(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};X.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),_a(this._inBlock)};X.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),_a(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};X.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=le.util.createBuffer();var n=this._aDataLength.concat(Ol(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};X.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=e[i/32|0]&1<<31-i%32;o&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};X.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};X.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,o=this._m[r][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};X.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};X.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=s/n|0,u=(n-1-s%n)*t;a[c]=1<<t-1<<u,o[s]=this.generateSubHashTable(this.multiply(a,e),t)}return o};X.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var s=1;s<o;++s){var a=i[o],c=i[s];i[o+s]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function ba(e,t){if(typeof e=="string"&&(e=le.util.createBuffer(e)),le.util.isArray(e)&&e.length>4){var r=e;e=le.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!le.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function _a(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ol(e){return[e/4294967296|0,e&4294967295]}});var Aa=I((x4,bp)=>{var At=gt();kl();Ml();Ht();bp.exports=At.aes=At.aes||{};At.aes.startEncrypting=function(e,t,r,n){var i=Sa({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};At.aes.createEncryptionCipher=function(e,t){return Sa({key:e,output:null,decrypt:!1,mode:t})};At.aes.startDecrypting=function(e,t,r,n){var i=Sa({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};At.aes.createDecryptionCipher=function(e,t){return Sa({key:e,output:null,decrypt:!0,mode:t})};At.aes.Algorithm=function(e,t){Kl||xp();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Fl(r._w,n,i,!1)},decrypt:function(n,i){return Fl(r._w,n,i,!0)}}}),r._init=!1};At.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=At.util.createBuffer(t);else if(At.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=At.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!At.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!At.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=vp(t,e.decrypt&&!s),this._init=!0}};At.aes._expandKey=function(e,t){return Kl||xp(),vp(e,t)};At.aes._updateBlock=Fl;Ji("AES-ECB",At.cipher.modes.ecb);Ji("AES-CBC",At.cipher.modes.cbc);Ji("AES-CFB",At.cipher.modes.cfb);Ji("AES-OFB",At.cipher.modes.ofb);Ji("AES-CTR",At.cipher.modes.ctr);Ji("AES-GCM",At.cipher.modes.gcm);function Ji(e,t){var r=function(){return new At.aes.Algorithm(e,t)};At.cipher.registerAlgorithm(e,r)}var Kl=!1,Zi=4,Ee,Ul,Ep,ii,nr;function xp(){Kl=!0,Ep=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;Ee=new Array(256),Ul=new Array(256),ii=new Array(4),nr=new Array(4);for(var t=0;t<4;++t)ii[t]=new Array(256),nr[t]=new Array(256);for(var r=0,n=0,i,o,s,a,c,u,l,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,Ee[r]=a,Ul[a]=r,c=e[a],i=e[r],o=e[i],s=e[o],u=c<<24^a<<16^a<<8^(a^c),l=(i^o^s)<<24^(r^s)<<16^(r^o^s)<<8^(r^i^s);for(var f=0;f<4;++f)ii[f][r]=u,nr[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^e[e[e[i^s]]],n^=e[e[n]])}}function vp(e,t){for(var r=e.slice(0),n,i=1,o=r.length,s=o+6+1,a=Zi*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=Ee[n>>>16&255]<<24^Ee[n>>>8&255]<<16^Ee[n&255]<<8^Ee[n>>>24]^Ep[i]<<24,i++):o>6&&c%o===4&&(n=Ee[n>>>24]<<24^Ee[n>>>16&255]<<16^Ee[n>>>8&255]<<8^Ee[n&255]),r[c]=r[c-o]^n;if(t){var u,l=nr[0],f=nr[1],d=nr[2],h=nr[3],p=r.slice(0);a=r.length;for(var c=0,m=a-Zi;c<a;c+=Zi,m-=Zi)if(c===0||c===a-Zi)p[c]=r[m],p[c+1]=r[m+3],p[c+2]=r[m+2],p[c+3]=r[m+1];else for(var y=0;y<Zi;++y)u=r[m+y],p[c+(3&-y)]=l[Ee[u>>>24]]^f[Ee[u>>>16&255]]^d[Ee[u>>>8&255]]^h[Ee[u&255]];r=p}return r}function Fl(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=nr[0],s=nr[1],a=nr[2],c=nr[3],u=Ul):(o=ii[0],s=ii[1],a=ii[2],c=ii[3],u=Ee);var l,f,d,h,p,m,y;l=t[0]^e[0],f=t[n?3:1]^e[1],d=t[2]^e[2],h=t[n?1:3]^e[3];for(var g=3,E=1;E<i;++E)p=o[l>>>24]^s[f>>>16&255]^a[d>>>8&255]^c[h&255]^e[++g],m=o[f>>>24]^s[d>>>16&255]^a[h>>>8&255]^c[l&255]^e[++g],y=o[d>>>24]^s[h>>>16&255]^a[l>>>8&255]^c[f&255]^e[++g],h=o[h>>>24]^s[l>>>16&255]^a[f>>>8&255]^c[d&255]^e[++g],l=p,f=m,d=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[h&255]^e[++g],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[h>>>8&255]<<8^u[l&255]^e[++g],r[2]=u[d>>>24]<<24^u[h>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^e[++g],r[n?1:3]=u[h>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^e[++g]}function Sa(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=At.cipher.createDecipher(r,e.key):n=At.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof At.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Ap=I((v4,Sp)=>{var Pt=gt();kl();Ml();Ht();Sp.exports=Pt.des=Pt.des||{};Pt.des.startEncrypting=function(e,t,r,n){var i=Ra({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Pt.des.createEncryptionCipher=function(e,t){return Ra({key:e,output:null,decrypt:!1,mode:t})};Pt.des.startDecrypting=function(e,t,r,n){var i=Ra({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Pt.des.createDecryptionCipher=function(e,t){return Ra({key:e,output:null,decrypt:!0,mode:t})};Pt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return _p(r._keys,n,i,!1)},decrypt:function(n,i){return _p(r._keys,n,i,!0)}}}),r._init=!1};Pt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=Pt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Cv(t),this._init=!0}};vr("DES-ECB",Pt.cipher.modes.ecb);vr("DES-CBC",Pt.cipher.modes.cbc);vr("DES-CFB",Pt.cipher.modes.cfb);vr("DES-OFB",Pt.cipher.modes.ofb);vr("DES-CTR",Pt.cipher.modes.ctr);vr("3DES-ECB",Pt.cipher.modes.ecb);vr("3DES-CBC",Pt.cipher.modes.cbc);vr("3DES-CFB",Pt.cipher.modes.cfb);vr("3DES-OFB",Pt.cipher.modes.ofb);vr("3DES-CTR",Pt.cipher.modes.ctr);function vr(e,t){var r=function(){return new Pt.des.Algorithm(e,t)};Pt.cipher.registerAlgorithm(e,r)}var vv=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],bv=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],_v=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Sv=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Av=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Rv=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Iv=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Tv=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function Cv(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],h=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=e.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],E=0,_,O=0;O<m;O++){var C=e.getInt32(),D=e.getInt32();_=(C>>>4^D)&252645135,D^=_,C^=_<<4,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>2^D)&858993459,D^=_,C^=_<<2,_=(D>>>-16^C)&65535,C^=_,D^=_<<-16,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=(D>>>8^C)&16711935,C^=_,D^=_<<8,_=(C>>>1^D)&1431655765,D^=_,C^=_<<1,_=C<<8|D>>>20&240,C=D<<24|D<<8&16711680|D>>>8&65280|D>>>24&240,D=_;for(var j=0;j<g.length;++j){g[j]?(C=C<<2|C>>>26,D=D<<2|D>>>26):(C=C<<1|C>>>27,D=D<<1|D>>>27),C&=-15,D&=-15;var rt=t[C>>>28]|r[C>>>24&15]|n[C>>>20&15]|i[C>>>16&15]|o[C>>>12&15]|s[C>>>8&15]|a[C>>>4&15],ie=c[D>>>28]|u[D>>>24&15]|l[D>>>20&15]|f[D>>>16&15]|d[D>>>12&15]|h[D>>>8&15]|p[D>>>4&15];_=(ie>>>16^rt)&65535,y[E++]=rt^_,y[E++]=ie^_<<16}}return y}function _p(e,t,r,n){var i=e.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=o[u+1],f=o[u+2],d=o[u];d!=l;d+=f){var h=c^e[d],p=(c>>>4|c<<28)^e[d+1];s=a,a=c,c=s^(bv[h>>>24&63]|Sv[h>>>16&63]|Rv[h>>>8&63]|Tv[h&63]|vv[p>>>24&63]|_v[p>>>16&63]|Av[p>>>8&63]|Iv[p&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,r[0]=a,r[1]=c}function Ra(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=Pt.cipher.createDecipher(r,e.key):n=Pt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof Pt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var oi=I((b4,Rp)=>{var Ia=gt();Rp.exports=Ia.md=Ia.md||{};Ia.md.algorithms=Ia.md.algorithms||{}});var Tp=I((_4,Ip)=>{var zr=gt();oi();Ht();var Dv=Ip.exports=zr.hmac=zr.hmac||{};Dv.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in zr.md.algorithms)t=zr.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=e;else{if(typeof s=="string")s=zr.util.createBuffer(s);else if(zr.util.isArray(s)){var a=s;s=zr.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var u=s.length();u>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),r=zr.util.createBuffer(),n=zr.util.createBuffer(),u=s.length();for(var c=0;c<u;++c){var a=s.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=s,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var si=I(()=>{});var Vl=I((R4,Cp)=>{var xe=gt();Tp();oi();Ht();var Bv=xe.pkcs5=xe.pkcs5||{},$r;xe.util.isNodejs&&!xe.options.usePureJavaScript&&($r=si());Cp.exports=xe.pbkdf2=Bv.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),xe.util.isNodejs&&!xe.options.usePureJavaScript&&$r.pbkdf2&&(i===null||typeof i!="object")&&($r.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?$r.pbkdf2Sync.length===4?$r.pbkdf2(e,t,r,n,function(_,O){if(_)return o(_);o(null,O.toString("binary"))}):$r.pbkdf2(e,t,r,n,i,function(_,O){if(_)return o(_);o(null,O.toString("binary"))}):$r.pbkdf2Sync.length===4?$r.pbkdf2Sync(e,t,r,n).toString("binary"):$r.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in xe.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=xe.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),u=n-(c-1)*s,l=xe.hmac.create();l.start(i,e);var f="",d,h,p;if(!o){for(var m=1;m<=c;++m){l.start(null,null),l.update(t),l.update(xe.util.int32ToBytes(m)),d=p=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(p),h=l.digest().getBytes(),d=xe.util.xorBytes(d,h,s),p=h;f+=m<c?d:d.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return o(null,f);l.start(null,null),l.update(t),l.update(xe.util.int32ToBytes(m)),d=p=l.digest().getBytes(),y=2,E()}function E(){if(y<=r)return l.start(null,null),l.update(p),h=l.digest().getBytes(),d=xe.util.xorBytes(d,h,s),p=h,++y,xe.util.setImmediate(E);f+=m<c?d:d.substr(0,u),++m,g()}g()}});var Lp=I((I4,Bp)=>{var Ca=gt();Ht();var Dp=Bp.exports=Ca.pem=Ca.pem||{};Dp.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
9
- `,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=Ta(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=Ta(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=Ta(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=Ta(e.headers[i]);return e.procType&&(r+=`\r
10
- `),r+=Ca.util.encode64(e.body,t.maxline||64)+`\r
11
- `,r+="-----END "+e.type+`-----\r
12
- `,r};Dp.decode=function(e){for(var t=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,o;o=r.exec(e),!!o;){var s=o[1];s==="NEW CERTIFICATE REQUEST"&&(s="CERTIFICATE REQUEST");var a={type:s,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Ca.util.decode64(o[3])};if(t.push(a),!!o[2]){for(var c=o[2].split(i),u=0;o&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(o=l.match(n),o){for(var h={name:o[1],values:[]},p=o[2].split(","),m=0;m<p.length;++m)h.values.push(Lv(p[m]));if(a.procType)if(!a.contentDomain&&h.name==="Content-Domain")a.contentDomain=p[0]||"";else if(!a.dekInfo&&h.name==="DEK-Info"){if(h.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:p[0],parameters:p[1]||null}}else a.headers.push(h);else{if(h.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(h.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:p[0],type:p[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function Ta(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
13
- `;for(var o=0,s=-1,i=0;i<t.length;++i,++o)if(o>65&&s!==-1){var a=t[s];a===","?(++s,t=t.substr(0,s)+`\r
14
- `+t.substr(s)):t=t.substr(0,s)+`\r
15
- `+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function Lv(e){return e.replace(/^\s+/,"")}});var Up=I((T4,Mp)=>{var br=gt();oi();Ht();var Np=Mp.exports=br.sha256=br.sha256||{};br.md.sha256=br.md.algorithms.sha256=Np;Np.create=function(){kp||Pv();var e=null,t=br.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=br.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=br.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),Pp(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=br.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(ql.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};Pp(f,r,i);var d=br.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var ql=null,kp=!1,Op=null;function Pv(){ql=String.fromCharCode(128),ql+=br.util.fillString(String.fromCharCode(0),64),Op=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],kp=!0}function Pp(e,t,r){for(var n,i,o,s,a,c,u,l,f,d,h,p,m,y,g,E=r.length();E>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(l=e.h0,f=e.h1,d=e.h2,h=e.h3,p=e.h4,m=e.h5,y=e.h6,g=e.h7,u=0;u<64;++u)s=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=y^p&(m^y),o=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=g+s+a+Op[u]+t[u],i=o+c,g=y,y=m,m=p,p=h+n>>>0,h=d,d=f,f=l,l=n+i>>>0;e.h0=e.h0+l|0,e.h1=e.h1+f|0,e.h2=e.h2+d|0,e.h3=e.h3+h|0,e.h4=e.h4+p|0,e.h5=e.h5+m|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,E-=64}}});var Kp=I((C4,Fp)=>{var _r=gt();Ht();var Da=null;_r.util.isNodejs&&!_r.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Da=si());var Nv=Fp.exports=_r.prng=_r.prng||{};Nv.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,l){if(!l)return t.generateSync(u);var f=t.plugin.cipher,d=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed,m=_r.util.createBuffer();t.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return _r.util.nextTick(function(){o(y)});var E=f(t.key,t.seed);t.generated+=E.length,m.putBytes(E),t.key=h(f(t.key,d(t.seed))),t.seed=p(f(t.key,t.seed)),_r.util.setImmediate(y)}},t.generateSync=function(u){var l=t.plugin.cipher,f=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed;t.key=null;for(var p=_r.util.createBuffer();p.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&s();var m=l(t.key,t.seed);t.generated+=m.length,p.putBytes(m),t.key=d(l(t.key,f(t.seed))),t.seed=h(l(t.key,t.seed))}return p.getBytes(u)};function o(u){if(t.pools[0].messageLength>=32)return a(),u();var l=32-t.pools[0].messageLength<<5;t.seedFile(l,function(f,d){if(f)return u(f);t.collect(d),a(),u()})}function s(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var l=1,f=0;f<32;++f)t.reseeds%l===0&&(u.update(t.pools[f].digest().getBytes()),t.pools[f].start()),l=l<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var d=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(d),t.generated=0}function c(u){var l=null,f=_r.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(C){return d.getRandomValues(C)});var h=_r.util.createBuffer();if(l)for(;h.length()<u;){var p=Math.max(1,Math.min(u-h.length(),65536)/4),m=new Uint32Array(Math.floor(p));try{l(m);for(var y=0;y<m.length;++y)h.putInt32(m[y])}catch(C){if(!(typeof QuotaExceededError<"u"&&C instanceof QuotaExceededError))throw C}}if(h.length()<u)for(var g,E,_,O=Math.floor(Math.random()*65536);h.length()<u;){E=16807*(O&65535),g=16807*(O>>16),E+=(g&32767)<<16,E+=g>>15,E=(E&2147483647)+(E>>31),O=E&4294967295;for(var y=0;y<3;++y)_=O>>>(y<<3),_^=Math.floor(Math.random()*256),h.putByte(_&255)}return h.getBytes(u)}return Da?(t.seedFile=function(u,l){Da.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},t.seedFileSync=function(u){return Da.randomBytes(u).toString()}):(t.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},t.seedFileSync=c),t.collect=function(u){for(var l=u.length,f=0;f<l;++f)t.pools[t.pool].update(u.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);t.collect(f)},t.registerWorker=function(u){if(u===self)t.seedFile=function(f,d){function h(p){var m=p.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",h),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",h),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&t.seedFile(d.forge.prng.needed,function(h,p){u.postMessage({forge:{prng:{err:h,bytes:p}}})})};u.addEventListener("message",l)}},t}});var Go=I((D4,zl)=>{var fe=gt();Aa();Up();Kp();Ht();(function(){if(fe.random&&fe.random.getBytes){zl.exports=fe.random;return}(function(e){var t={},r=new Array(4),n=fe.util.createBuffer();t.formatKey=function(f){var d=fe.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),fe.aes._expandKey(f,!1)},t.formatSeed=function(f){var d=fe.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},t.cipher=function(f,d){return fe.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=fe.md.sha256;function i(){var f=fe.prng.create(t);return f.getBytes=function(d,h){return f.generate(d,h)},f.getBytesSync=function(d){return f.generate(d)},f}var o=i(),s=null,a=fe.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(f){return c.getRandomValues(f)}),fe.options.usePureJavaScript||!fe.util.isNodejs&&!s){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}o.collect(u),u=null}e&&(e().mousemove(function(f){o.collectInt(f.clientX,16),o.collectInt(f.clientY,16)}),e().keypress(function(f){o.collectInt(f.charCode,8)}))}if(!fe.random)fe.random=o;else for(var l in o)fe.random[l]=o[l];fe.random.createInstance=i,zl.exports=fe.random})(typeof jQuery<"u"?jQuery:null)})()});var $p=I((B4,zp)=>{var _e=gt();Ht();var $l=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],Vp=[1,2,3,5],kv=function(e,t){return e<<t&65535|(e&65535)>>16-t},Ov=function(e,t){return(e&65535)>>t|e<<16-t&65535};zp.exports=_e.rc2=_e.rc2||{};_e.rc2.expandKey=function(e,t){typeof e=="string"&&(e=_e.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)r.putByte($l[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,$l[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,$l[r.at(a+1)^r.at(a+o)]);return r};var qp=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,l,f=[];for(e=_e.rc2.expandKey(e,t),u=0;u<64;u++)f.push(e.getInt16Le());r?(a=function(p){for(u=0;u<4;u++)p[u]+=f[l]+(p[(u+3)%4]&p[(u+2)%4])+(~p[(u+3)%4]&p[(u+1)%4]),p[u]=kv(p[u],Vp[u]),l++},c=function(p){for(u=0;u<4;u++)p[u]+=f[p[(u+3)%4]&63]}):(a=function(p){for(u=3;u>=0;u--)p[u]=Ov(p[u],Vp[u]),p[u]-=f[l]+(p[(u+3)%4]&p[(u+2)%4])+(~p[(u+3)%4]&p[(u+1)%4]),l--},c=function(p){for(u=3;u>=0;u--)p[u]-=f[p[(u+3)%4]&63]});var d=function(p){var m=[];for(u=0;u<4;u++){var y=i.getInt16Le();s!==null&&(r?y^=s.getInt16Le():s.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<p.length;g++)for(var E=0;E<p[g][0];E++)p[g][1](m);for(u=0;u<4;u++)s!==null&&(r?s.putInt16Le(m[u]):m[u]^=s.getInt16Le()),o.putInt16Le(m[u])},h=null;return h={start:function(p,m){p&&typeof p=="string"&&(p=_e.util.createBuffer(p)),n=!1,i=_e.util.createBuffer(),o=m||new _e.util.createBuffer,s=p,h.output=o},update:function(p){for(n||i.putBuffer(p);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(p){var m=!0;if(r)if(p)m=p(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,h.update()),!r&&(m=i.length()===0,m))if(p)m=p(8,o,!r);else{var g=o.length(),E=o.at(g-1);E>g?m=!1:o.truncate(E)}return m}},h};_e.rc2.startEncrypting=function(e,t,r){var n=_e.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};_e.rc2.createEncryptionCipher=function(e,t){return qp(e,t,!0)};_e.rc2.startDecrypting=function(e,t,r){var n=_e.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};_e.rc2.createDecryptionCipher=function(e,t){return qp(e,t,!1)}});var Pa=I((L4,Jp)=>{var Hl=gt();Jp.exports=Hl.jsbn=Hl.jsbn||{};var Hr,Mv=0xdeadbeefcafe,Hp=(Mv&16777215)==15715070;function S(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}Hl.jsbn.BigInteger=S;function ct(){return new S(null)}function Uv(e,t,r,n,i,o){for(;--o>=0;){var s=t*this.data[e++]+r.data[n]+i;i=Math.floor(s/67108864),r.data[n++]=s&67108863}return i}function Fv(e,t,r,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,l=a*c+u*s;c=s*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function Gp(e,t,r,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,l=a*c+u*s;c=s*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(S.prototype.am=Gp,Hr=28):Hp&&navigator.appName=="Microsoft Internet Explorer"?(S.prototype.am=Fv,Hr=30):Hp&&navigator.appName!="Netscape"?(S.prototype.am=Uv,Hr=26):(S.prototype.am=Gp,Hr=28);S.prototype.DB=Hr;S.prototype.DM=(1<<Hr)-1;S.prototype.DV=1<<Hr;var Gl=52;S.prototype.FV=Math.pow(2,Gl);S.prototype.F1=Gl-Hr;S.prototype.F2=2*Hr-Gl;var Kv="0123456789abcdefghijklmnopqrstuvwxyz",Ba=new Array,ji,Ve;ji="0".charCodeAt(0);for(Ve=0;Ve<=9;++Ve)Ba[ji++]=Ve;ji="a".charCodeAt(0);for(Ve=10;Ve<36;++Ve)Ba[ji++]=Ve;ji="A".charCodeAt(0);for(Ve=10;Ve<36;++Ve)Ba[ji++]=Ve;function Yp(e){return Kv.charAt(e)}function Wp(e,t){var r=Ba[e.charCodeAt(t)];return r??-1}function Vv(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function qv(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function wn(e){var t=ct();return t.fromInt(e),t}function zv(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,o=0;--n>=0;){var s=r==8?e[n]&255:Wp(e,n);if(s<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+r>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&e[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&S.ZERO.subTo(this,this)}function $v(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function Hv(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,o="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=Yp(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=Yp(n));return i?o:"0"}function Gv(){var e=ct();return S.ZERO.subTo(this,e),e}function Yv(){return this.s<0?this.negate():this}function Wv(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function La(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Qv(){return this.t<=0?0:this.DB*(this.t-1)+La(this.data[this.t-1]^this.s&this.DM)}function Xv(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function Zv(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Jv(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),s=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<r;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function jv(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var s=r+1;s<this.t;++s)t.data[s-r-1]|=(this.data[s]&o)<<i,t.data[s-r]=this.data[s]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}function tb(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function eb(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&S.ZERO.subTo(t,t)}function rb(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function nb(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ct());var o=ct(),s=this.s,a=e.s,c=this.DB-La(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,l=o.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),d=this.FV/f,h=(1<<this.F1)/f,p=1<<this.F2,m=r.t,y=m-u,g=t??ct();for(o.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),S.ONE.dlShiftTo(u,g),g.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--y>=0;){var E=r.data[--m]==l?this.DM:Math.floor(r.data[m]*d+(r.data[m-1]+p)*h);if((r.data[m]+=o.am(0,E,r,y,0,u))<E)for(o.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--E;)r.subTo(g,r)}t!=null&&(r.drShiftTo(u,t),s!=a&&S.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&S.ZERO.subTo(r,r)}}}function ib(e){var t=ct();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(S.ZERO)>0&&e.subTo(t,t),t}function ai(e){this.m=e}function ob(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function sb(e){return e}function ab(e){e.divRemTo(this.m,null,e)}function cb(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function ub(e,t){e.squareTo(t),this.reduce(t)}ai.prototype.convert=ob;ai.prototype.revert=sb;ai.prototype.reduce=ab;ai.prototype.mulTo=cb;ai.prototype.sqrTo=ub;function lb(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function ci(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function fb(e){var t=ct();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(S.ZERO)>0&&this.m.subTo(t,t),t}function hb(e){var t=ct();return e.copyTo(t),this.reduce(t),t}function db(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function pb(e,t){e.squareTo(t),this.reduce(t)}function mb(e,t,r){e.multiplyTo(t,r),this.reduce(r)}ci.prototype.convert=fb;ci.prototype.revert=hb;ci.prototype.reduce=db;ci.prototype.mulTo=mb;ci.prototype.sqrTo=pb;function yb(){return(this.t>0?this.data[0]&1:this.s)==0}function gb(e,t){if(e>4294967295||e<1)return S.ONE;var r=ct(),n=ct(),i=t.convert(this),o=La(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var s=r;r=n,n=s}return t.revert(r)}function wb(e,t){var r;return e<256||t.isEven()?r=new ai(t):r=new ci(t),this.exp(e,r)}S.prototype.copyTo=Vv;S.prototype.fromInt=qv;S.prototype.fromString=zv;S.prototype.clamp=$v;S.prototype.dlShiftTo=Xv;S.prototype.drShiftTo=Zv;S.prototype.lShiftTo=Jv;S.prototype.rShiftTo=jv;S.prototype.subTo=tb;S.prototype.multiplyTo=eb;S.prototype.squareTo=rb;S.prototype.divRemTo=nb;S.prototype.invDigit=lb;S.prototype.isEven=yb;S.prototype.exp=gb;S.prototype.toString=Hv;S.prototype.negate=Gv;S.prototype.abs=Yv;S.prototype.compareTo=Wv;S.prototype.bitLength=Qv;S.prototype.mod=ib;S.prototype.modPowInt=wb;S.ZERO=wn(0);S.ONE=wn(1);function Eb(){var e=ct();return this.copyTo(e),e}function xb(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function vb(){return this.t==0?this.s:this.data[0]<<24>>24}function bb(){return this.t==0?this.s:this.data[0]<<16>>16}function _b(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Sb(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Ab(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=wn(r),i=ct(),o=ct(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(e).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(e)+s}function Rb(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,s=0,a=0;a<e.length;++a){var c=Wp(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&S.ZERO.subTo(this,this)}function Ib(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(S.ONE.shiftLeft(e-1),Yl,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(S.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Tb(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function Cb(e){return this.compareTo(e)==0}function Db(e){return this.compareTo(e)<0?this:e}function Bb(e){return this.compareTo(e)>0?this:e}function Lb(e,t,r){var n,i,o=Math.min(e.t,this.t);for(n=0;n<o;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=o;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function Pb(e,t){return e&t}function Nb(e){var t=ct();return this.bitwiseTo(e,Pb,t),t}function Yl(e,t){return e|t}function kb(e){var t=ct();return this.bitwiseTo(e,Yl,t),t}function Qp(e,t){return e^t}function Ob(e){var t=ct();return this.bitwiseTo(e,Qp,t),t}function Xp(e,t){return e&~t}function Mb(e){var t=ct();return this.bitwiseTo(e,Xp,t),t}function Ub(){for(var e=ct(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function Fb(e){var t=ct();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function Kb(e){var t=ct();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Vb(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function qb(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+Vb(this.data[e]);return this.s<0?this.t*this.DB:-1}function zb(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function $b(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=zb(this.data[r]^t);return e}function Hb(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Gb(e,t){var r=S.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function Yb(e){return this.changeBit(e,Yl)}function Wb(e){return this.changeBit(e,Xp)}function Qb(e){return this.changeBit(e,Qp)}function Xb(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Zb(e){var t=ct();return this.addTo(e,t),t}function Jb(e){var t=ct();return this.subTo(e,t),t}function jb(e){var t=ct();return this.multiplyTo(e,t),t}function t_(e){var t=ct();return this.divRemTo(e,t,null),t}function e_(e){var t=ct();return this.divRemTo(e,null,t),t}function r_(e){var t=ct(),r=ct();return this.divRemTo(e,t,r),new Array(t,r)}function n_(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function i_(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Yo(){}function Zp(e){return e}function o_(e,t,r){e.multiplyTo(t,r)}function s_(e,t){e.squareTo(t)}Yo.prototype.convert=Zp;Yo.prototype.revert=Zp;Yo.prototype.mulTo=o_;Yo.prototype.sqrTo=s_;function a_(e){return this.exp(e,new Yo)}function c_(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function u_(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function to(e){this.r2=ct(),this.q3=ct(),S.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function l_(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=ct();return e.copyTo(t),this.reduce(t),t}function f_(e){return e}function h_(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function d_(e,t){e.squareTo(t),this.reduce(t)}function p_(e,t,r){e.multiplyTo(t,r),this.reduce(r)}to.prototype.convert=l_;to.prototype.revert=f_;to.prototype.reduce=h_;to.prototype.mulTo=p_;to.prototype.sqrTo=d_;function m_(e,t){var r=e.bitLength(),n,i=wn(1),o;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?o=new ai(t):t.isEven()?o=new to(t):o=new ci(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var l=ct();for(o.sqrTo(s[1],l);a<=u;)s[a]=ct(),o.mulTo(l,s[a-2],s[a]),a+=2}var f=e.t-1,d,h=!0,p=ct(),m;for(r=La(e.data[f])-1;f>=0;){for(r>=c?d=e.data[f]>>r-c&u:(d=(e.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=e.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),h)s[d].copyTo(i),h=!1;else{for(;a>1;)o.sqrTo(i,p),o.sqrTo(p,i),a-=2;a>0?o.sqrTo(i,p):(m=i,i=p,p=m),o.mulTo(p,s[d],i)}for(;f>=0&&!(e.data[f]&1<<r);)o.sqrTo(i,p),m=i,i=p,p=m,--r<0&&(r=this.DB-1,--f)}return o.revert(i)}function y_(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return t;for(i<o&&(o=i),o>0&&(t.rShiftTo(o,t),r.rShiftTo(o,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r}function g_(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function w_(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return S.ZERO;for(var r=e.clone(),n=this.clone(),i=wn(1),o=wn(0),s=wn(0),a=wn(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(e,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(e,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(S.ONE)!=0)return S.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var ir=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],E_=(1<<26)/ir[ir.length-1];function x_(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=ir[ir.length-1]){for(t=0;t<ir.length;++t)if(r.data[0]==ir[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<ir.length;){for(var n=ir[t],i=t+1;i<ir.length&&n<E_;)n*=ir[i++];for(n=r.modInt(n);t<i;)if(n%ir[t++]==0)return!1}return r.millerRabin(e)}function v_(e){var t=this.subtract(S.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=b_(),o,s=0;s<e;++s){do o=new S(this.bitLength(),i);while(o.compareTo(S.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(S.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(S.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function b_(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}S.prototype.chunkSize=_b;S.prototype.toRadix=Ab;S.prototype.fromRadix=Rb;S.prototype.fromNumber=Ib;S.prototype.bitwiseTo=Lb;S.prototype.changeBit=Gb;S.prototype.addTo=Xb;S.prototype.dMultiply=n_;S.prototype.dAddOffset=i_;S.prototype.multiplyLowerTo=c_;S.prototype.multiplyUpperTo=u_;S.prototype.modInt=g_;S.prototype.millerRabin=v_;S.prototype.clone=Eb;S.prototype.intValue=xb;S.prototype.byteValue=vb;S.prototype.shortValue=bb;S.prototype.signum=Sb;S.prototype.toByteArray=Tb;S.prototype.equals=Cb;S.prototype.min=Db;S.prototype.max=Bb;S.prototype.and=Nb;S.prototype.or=kb;S.prototype.xor=Ob;S.prototype.andNot=Mb;S.prototype.not=Ub;S.prototype.shiftLeft=Fb;S.prototype.shiftRight=Kb;S.prototype.getLowestSetBit=qb;S.prototype.bitCount=$b;S.prototype.testBit=Hb;S.prototype.setBit=Yb;S.prototype.clearBit=Wb;S.prototype.flipBit=Qb;S.prototype.add=Zb;S.prototype.subtract=Jb;S.prototype.multiply=jb;S.prototype.divide=t_;S.prototype.remainder=e_;S.prototype.divideAndRemainder=r_;S.prototype.modPow=m_;S.prototype.modInverse=w_;S.prototype.pow=a_;S.prototype.gcd=y_;S.prototype.isProbablePrime=x_});var nm=I((P4,rm)=>{var Sr=gt();oi();Ht();var tm=rm.exports=Sr.sha1=Sr.sha1||{};Sr.md.sha1=Sr.md.algorithms.sha1=tm;tm.create=function(){em||__();var e=null,t=Sr.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=Sr.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Sr.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),jp(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Sr.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Wl.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};jp(f,r,i);var d=Sr.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var Wl=null,em=!1;function __(){Wl=String.fromCharCode(128),Wl+=Sr.util.fillString(String.fromCharCode(0),64),em=!0}function jp(e,t,r){for(var n,i,o,s,a,c,u,l,f=r.length();f>=64;){for(i=e.h0,o=e.h1,s=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[l]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<20;++l)n=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[l]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<32;++l)n=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[l]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<40;++l)n=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[l]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<60;++l)n=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[l]=n,u=o&s|a&(o^s),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;l<80;++l)n=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[l]=n,u=o^s^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+s|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,f-=64}}});var sm=I((N4,om)=>{var Ar=gt();Ht();Go();nm();var im=om.exports=Ar.pkcs1=Ar.pkcs1||{};im.encode_rsa_oaep=function(e,t,r){var n,i,o,s;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md)),o?o.start():o=Ar.md.sha1.create(),s||(s=o);var a=Math.ceil(e.n.bitLength()/8),c=a-2*o.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),o.update(n,"raw");for(var l=o.digest(),f="",d=c-t.length,h=0;h<d;h++)f+="\0";var p=l.getBytes()+f+""+t;if(!i)i=Ar.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var m=Na(i,a-o.digestLength-1,s),y=Ar.util.xorBytes(p,m,p.length),g=Na(y,o.digestLength,s),E=Ar.util.xorBytes(i,g,i.length);return"\0"+E+y};im.decode_rsa_oaep=function(e,t,r){var n,i,o;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md));var s=Math.ceil(e.n.bitLength()/8);if(t.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=s,y}if(i===void 0?i=Ar.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),l=t.substring(1+i.digestLength),f=Na(l,i.digestLength,o),d=Ar.util.xorBytes(u,f,u.length),h=Na(d,s-i.digestLength-1,o),p=Ar.util.xorBytes(l,h,l.length),m=p.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var E=1,_=i.digestLength,O=i.digestLength;O<p.length;O++){var C=p.charCodeAt(O),D=C&1^1,j=E?65534:0;y|=C&j,E=E&D,_+=E}if(y||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function Na(e,t,r){r||(r=Ar.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+s),n+=r.digest().getBytes()}return n.substring(0,t)}});var am=I((k4,Ql)=>{var En=gt();Ht();Pa();Go();(function(){if(En.prime){Ql.exports=En.prime;return}var e=Ql.exports=En.prime=En.prime||{},t=En.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,d){return f|d};e.generateProbablePrime=function(f,d,h){typeof d=="function"&&(h=d,d={}),d=d||{};var p=d.algorithm||"PRIMEINC";typeof p=="string"&&(p={name:p}),p.options=p.options||{};var m=d.prng||En.random,y={nextBytes:function(g){for(var E=m.getBytesSync(g.length),_=0;_<g.length;++_)g[_]=E.charCodeAt(_)}};if(p.name==="PRIMEINC")return o(f,y,p.options,h);throw new Error("Invalid prime generation algorithm: "+p.name)};function o(f,d,h,p){return"workers"in h?c(f,d,h,p):s(f,d,h,p)}function s(f,d,h,p){var m=u(f,d),y=0,g=l(m.bitLength());"millerRabinTests"in h&&(g=h.millerRabinTests);var E=10;"maxBlockTime"in h&&(E=h.maxBlockTime),a(m,f,d,y,g,E,p)}function a(f,d,h,p,m,y,g){var E=+new Date;do{if(f.bitLength()>d&&(f=u(d,h)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[p++%8],0)}while(y<0||+new Date-E<y);En.util.setImmediate(function(){a(f,d,h,p,m,y,g)})}function c(f,d,h,p){if(typeof Worker>"u")return s(f,d,h,p);var m=u(f,d),y=h.workers,g=h.workLoad||100,E=g*30/8,_=h.workerScript||"forge/prime.worker.js";if(y===-1)return En.util.estimateCores(function(C,D){C&&(D=2),y=D-1,O()});O();function O(){y=Math.max(1,y);for(var C=[],D=0;D<y;++D)C[D]=new Worker(_);for(var j=y,D=0;D<y;++D)C[D].addEventListener("message",ie);var rt=!1;function ie(je){if(!rt){--j;var Re=je.data;if(Re.found){for(var we=0;we<C.length;++we)C[we].terminate();return rt=!0,p(null,new t(Re.prime,16))}m.bitLength()>f&&(m=u(f,d));var Mi=m.toString(16);je.target.postMessage({hex:Mi,workLoad:g}),m.dAddOffset(E,0)}}}}function u(f,d){var h=new t(f,d),p=f-1;return h.testBit(p)||h.bitwiseTo(t.ONE.shiftLeft(p),i,h),h.dAddOffset(31-h.mod(n).byteValue(),0),h}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var Oa=I((O4,pm)=>{var V=gt();Ho();Pa();xa();sm();am();Go();Ht();typeof nt>"u"&&(nt=V.jsbn.BigInteger);var nt,Xl=V.util.isNodejs?si():null,x=V.asn1,qe=V.util;V.pki=V.pki||{};pm.exports=V.pki.rsa=V.rsa=V.rsa||{};var H=V.pki,S_=[6,4,2,4,2,4,6,2],A_={name:"PrivateKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},R_={name:"RSAPrivateKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},I_={name:"RSAPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:x.Class.UNIVERSAL,type:x.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},T_=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},C_={name:"DigestInfo",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:x.Class.UNIVERSAL,type:x.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:x.Class.UNIVERSAL,type:x.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:x.Class.UNIVERSAL,type:x.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:x.Class.UNIVERSAL,type:x.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},D_=function(e){var t;if(e.algorithm in H.oids)t=H.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=x.oidToDer(t).getBytes(),i=x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[]),o=x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[]);o.value.push(x.create(x.Class.UNIVERSAL,x.Type.OID,!1,n)),o.value.push(x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,""));var s=x.create(x.Class.UNIVERSAL,x.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(s),x.toDer(i).getBytes()},hm=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(nt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(nt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new nt(V.util.bytesToHex(V.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(nt.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),o=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};H.rsa.encrypt=function(e,t,r){var n=r,i,o=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=dm(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var s=new nt(i.toHex(),16),a=hm(s,t,n),c=a.toString(16),u=V.util.createBuffer(),l=o-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};H.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=e.length,o.expected=i,o}var s=new nt(V.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=hm(s,t,r),c=a.toString(16),u=V.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),n!==!1?ka(u.getBytes(),t,r):u.getBytes()};H.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new nt(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};H.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new nt(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},o=+new Date,s,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new nt(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(nt.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(L_(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(S_[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(nt.ONE).gcd(e.e).compareTo(nt.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(nt.ONE),e.q1=e.q.subtract(nt.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(nt.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var l=e.e.modInverse(e.phi);e.keys={privateKey:H.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:H.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};H.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(cm("generateKeyPair"))return Xl.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:H.privateKeyFromPem(u),publicKey:H.publicKeyFromPem(c)})});if(um("generateKey")&&um("exportKey"))return qe.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:fm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return qe.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=H.privateKeyFromAsn1(x.fromDer(V.util.createBuffer(a)));n(null,{privateKey:c,publicKey:H.setRsaPublicKey(c.n,c.e)})}});if(lm("generateKey")&&lm("exportKey")){var i=qe.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:fm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=qe.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=H.privateKeyFromAsn1(x.fromDer(V.util.createBuffer(f)));n(null,{privateKey:d,publicKey:H.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(cm("generateKeyPairSync")){var o=Xl.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:H.privateKeyFromPem(o.privateKey),publicKey:H.publicKeyFromPem(o.publicKey)}}}var s=H.rsa.createKeyPairGenerationState(e,t,r);if(!n)return H.rsa.stepKeyPairGenerationState(s,0),s.keys;B_(s,r,n)};H.setRsaPublicKey=H.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return dm(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return V.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,r,!0);return H.rsa.encrypt(s,r,!0)},r.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=ka(u,r,!0);var l=x.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),f={},d=[];if(!x.validate(l,C_,f,d)){var h=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw h.errors=d,h}var p=x.derToOid(f.algorithmIdentifier);if(!(p===V.oids.md2||p===V.oids.md5||p===V.oids.sha1||p===V.oids.sha224||p===V.oids.sha256||p===V.oids.sha384||p===V.oids.sha512||p===V.oids["sha512-224"]||p===V.oids["sha512-256"])){var h=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw h.oid=p,h}if((p===V.oids.md2||p===V.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=ka(u,r,!0),c===u}});var a=H.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};H.setRsaPrivateKey=H.rsa.setPrivateKey=function(e,t,r,n,i,o,s,a){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=H.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:ka};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(h,p){return V.pkcs1.decode_rsa_oaep(p,h,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(h){return h}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:D_},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return H.rsa.encrypt(d,c,f)},c};H.wrapRsaPrivateKey=function(e){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,x.integerToDer(0).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.OID,!1,x.oidToDer(H.oids.rsaEncryption).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,"")]),x.create(x.Class.UNIVERSAL,x.Type.OCTETSTRING,!1,x.toDer(e).getBytes())])};H.privateKeyFromAsn1=function(e){var t={},r=[];if(x.validate(e,A_,t,r)&&(e=x.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!x.validate(e,R_,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,o,s,a,c,u,l,f;return i=V.util.createBuffer(t.privateKeyModulus).toHex(),o=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),l=V.util.createBuffer(t.privateKeyExponent2).toHex(),f=V.util.createBuffer(t.privateKeyCoefficient).toHex(),H.setRsaPrivateKey(new nt(i,16),new nt(o,16),new nt(s,16),new nt(a,16),new nt(c,16),new nt(u,16),new nt(l,16),new nt(f,16))};H.privateKeyToAsn1=H.privateKeyToRSAPrivateKey=function(e){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,x.integerToDer(0).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.n)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.e)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.d)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.p)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.q)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.dP)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.dQ)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.qInv))])};H.publicKeyFromAsn1=function(e){var t={},r=[];if(x.validate(e,T_,t,r)){var n=x.derToOid(t.publicKeyOid);if(n!==H.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!x.validate(e,I_,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=V.util.createBuffer(t.publicKeyModulus).toHex(),s=V.util.createBuffer(t.publicKeyExponent).toHex();return H.setRsaPublicKey(new nt(o,16),new nt(s,16))};H.publicKeyToAsn1=H.publicKeyToSubjectPublicKeyInfo=function(e){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.OID,!1,x.oidToDer(H.oids.rsaEncryption).getBytes()),x.create(x.Class.UNIVERSAL,x.Type.NULL,!1,"")]),x.create(x.Class.UNIVERSAL,x.Type.BITSTRING,!1,[H.publicKeyToRSAPublicKey(e)])])};H.publicKeyToRSAPublicKey=function(e){return x.create(x.Class.UNIVERSAL,x.Type.SEQUENCE,!0,[x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.n)),x.create(x.Class.UNIVERSAL,x.Type.INTEGER,!1,Rr(e.e))])};function dm(e,t,r){var n=V.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=e.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var s=i-3-e.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var u=0,l=V.random.getBytes(s),c=0;c<s;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);s=u}return n.putByte(0),n.putBytes(e),n}function ka(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=V.util.createBuffer(e),s=o.getByte(),a=o.getByte();if(s!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var l=o.getByte();if(l!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function B_(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return s(a,e.q);o(e.qBits,s)})}function o(a,c){V.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(nt.ONE).gcd(e.e).compareTo(nt.ONE)!==0){e.p=null,i();return}if(e.q.subtract(nt.ONE).gcd(e.e).compareTo(nt.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(nt.ONE),e.q1=e.q.subtract(nt.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(nt.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,o(e.qBits,s);return}var l=e.e.modInverse(e.phi);e.keys={privateKey:H.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:H.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Rr(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function L_(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function cm(e){return V.util.isNodejs&&typeof Xl[e]=="function"}function um(e){return typeof qe.globalScope<"u"&&typeof qe.globalScope.crypto=="object"&&typeof qe.globalScope.crypto.subtle=="object"&&typeof qe.globalScope.crypto.subtle[e]=="function"}function lm(e){return typeof qe.globalScope<"u"&&typeof qe.globalScope.msCrypto=="object"&&typeof qe.globalScope.msCrypto.subtle=="object"&&typeof qe.globalScope.msCrypto.subtle[e]=="function"}function fm(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var xm=I((M4,Em)=>{var L=gt();Aa();Ho();Ap();oi();xa();Vl();Lp();Go();$p();Oa();Ht();typeof mm>"u"&&(mm=L.jsbn.BigInteger);var mm,v=L.asn1,W=L.pki=L.pki||{};Em.exports=W.pbe=L.pbe=L.pbe||{};var ui=W.oids,P_={name:"EncryptedPrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},N_={name:"PBES2Algorithms",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},k_={name:"pkcs-12PbeParams",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"iterations"}]};W.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=L.random.getBytesSync(r.saltSize),i=r.count,o=v.integerToDer(i),s,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":s=16,u=16,l=ui["aes128-CBC"],f=L.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,l=ui["aes192-CBC"],f=L.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,l=ui["aes256-CBC"],f=L.aes.createEncryptionCipher;break;case"des":s=8,u=8,l=ui.desCBC,f=L.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var h="hmacWith"+r.prfAlgorithm.toUpperCase(),p=wm(h),m=L.pkcs5.pbkdf2(t,n,i,s,p),y=L.random.getBytesSync(u),g=f(m);g.start(y),g.update(v.toDer(e)),g.finish(),c=g.output.getBytes();var E=O_(n,o,s,h);a=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(ui.pkcs5PBES2).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(ui.pkcs5PBKDF2).getBytes()),E]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(l).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){s=24;var _=new L.util.ByteBuffer(n),m=W.pbe.generatePkcs12Key(t,_,1,i,s),y=W.pbe.generatePkcs12Key(t,_,2,i,s),g=L.des.createEncryptionCipher(m);g.start(y),g.update(v.toDer(e)),g.finish(),c=g.output.getBytes(),a=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(ui["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,n),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,o.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var O=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[a,v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,c)]);return O};W.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!v.validate(e,P_,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=v.derToOid(n.encryptionOid),a=W.pbe.getCipher(s,n.encryptionParams,t),c=L.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=v.fromDer(a.output)),r};W.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:v.toDer(e).getBytes()};return L.pem.encode(r,{maxline:t})};W.encryptedPrivateKeyFromPem=function(e){var t=L.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return v.fromDer(t.body)};W.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=W.wrapRsaPrivateKey(W.privateKeyToAsn1(e));return n=W.encryptPrivateKeyInfo(n,t,r),W.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",s=16,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=L.pbe.opensslDeriveBytes(t,o.substr(0,8),s),l=a(u);l.start(o),l.update(v.toDer(W.privateKeyToAsn1(e))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:L.util.bytesToHex(o).toUpperCase()},body:l.output.getBytes()};return L.pem.encode(f)};W.decryptRsaPrivateKey=function(e,t){var r=null,n=L.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=L.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=L.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=L.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=L.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=L.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(f){return L.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":o=8,s=function(f){return L.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":o=16,s=function(f){return L.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=L.util.hexToBytes(n.dekInfo.parameters),c=L.pbe.opensslDeriveBytes(t,a.substr(0,8),o),u=s(c);if(u.start(a),u.update(L.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=W.decryptPrivateKeyInfo(v.fromDer(r),t):r=v.fromDer(r),r!==null&&(r=W.privateKeyFromAsn1(r)),r};W.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in L.md))throw new Error('"sha1" hash algorithm unavailable.');o=L.md.sha1.create()}var c=o.digestLength,u=o.blockLength,l=new L.util.ByteBuffer,f=new L.util.ByteBuffer;if(e!=null){for(a=0;a<e.length;a++)f.putInt16(e.charCodeAt(a));f.putInt16(0)}var d=f.length(),h=t.length(),p=new L.util.ByteBuffer;p.fillWithByte(r,u);var m=u*Math.ceil(h/u),y=new L.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%h));var g=u*Math.ceil(d/u),E=new L.util.ByteBuffer;for(a=0;a<g;a++)E.putByte(f.at(a%d));var _=y;_.putBuffer(E);for(var O=Math.ceil(i/c),C=1;C<=O;C++){var D=new L.util.ByteBuffer;D.putBytes(p.bytes()),D.putBytes(_.bytes());for(var j=0;j<n;j++)o.start(),o.update(D.getBytes()),D=o.digest();var rt=new L.util.ByteBuffer;for(a=0;a<u;a++)rt.putByte(D.at(a%c));var ie=Math.ceil(h/u)+Math.ceil(d/u),je=new L.util.ByteBuffer;for(s=0;s<ie;s++){var Re=new L.util.ByteBuffer(_.getBytes(u)),we=511;for(a=rt.length()-1;a>=0;a--)we=we>>8,we+=rt.at(a)+Re.at(a),Re.setAt(a,we&255);je.putBuffer(Re)}_=je,l.putBuffer(D)}return l.truncate(l.length()-i),l};W.pbe.getCipher=function(e,t,r){switch(e){case W.oids.pkcs5PBES2:return W.pbe.getCipherForPBES2(e,t,r);case W.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case W.oids["pbewithSHAAnd40BitRC2-CBC"]:return W.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};W.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!v.validate(t,N_,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(e=v.derToOid(n.kdfOid),e!==W.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=e,o.supportedOids=["pkcs5PBKDF2"],o}if(e=v.derToOid(n.encOid),e!==W.oids["aes128-CBC"]&&e!==W.oids["aes192-CBC"]&&e!==W.oids["aes256-CBC"]&&e!==W.oids["des-EDE3-CBC"]&&e!==W.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var s=n.kdfSalt,a=L.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(W.oids[e]){case"aes128-CBC":c=16,u=L.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=L.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=L.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=L.des.createDecryptionCipher;break;case"desCBC":c=8,u=L.des.createDecryptionCipher;break}var l=gm(n.prfOid),f=L.pkcs5.pbkdf2(r,s,a,c,l),d=n.encIv,h=u(f);return h.start(d),h};W.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!v.validate(t,k_,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=L.util.createBuffer(n.salt),a=L.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(e){case W.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=L.des.startDecrypting;break;case W.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=L.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var f=gm(n.prfOid),d=W.pbe.generatePkcs12Key(r,s,1,a,c,f);f.start();var h=W.pbe.generatePkcs12Key(r,s,2,a,u,f);return l(d,h)};W.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in L.md))throw new Error('"md5" hash algorithm unavailable.');n=L.md.md5.create()}t===null&&(t="");for(var i=[ym(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(ym(n,i[s-1]+e+t));return i.join("").substr(0,r)};function ym(e,t){return e.start().update(t).digest().getBytes()}function gm(e){var t;if(!e)t="hmacWithSHA1";else if(t=W.oids[v.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return wm(t)}function wm(e){var t=L.md;switch(e){case"hmacWithSHA224":t=L.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function O_(e,t,r,n){var i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,e),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,L.util.hexToBytes(r.toString(16))),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(W.oids[n]).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])),i}});var Dm=I((bD,Cm)=>{var Ct=gt();oi();Ht();var Wo=Cm.exports=Ct.sha512=Ct.sha512||{};Ct.md.sha512=Ct.md.algorithms.sha512=Wo;var Im=Ct.sha384=Ct.sha512.sha384=Ct.sha512.sha384||{};Im.create=function(){return Wo.create("SHA-384")};Ct.md.sha384=Ct.md.algorithms.sha384=Im;Ct.sha512.sha256=Ct.sha512.sha256||{create:function(){return Wo.create("SHA-512/256")}};Ct.md["sha512/256"]=Ct.md.algorithms["sha512/256"]=Ct.sha512.sha256;Ct.sha512.sha224=Ct.sha512.sha224||{create:function(){return Wo.create("SHA-512/224")}};Ct.md["sha512/224"]=Ct.md.algorithms["sha512/224"]=Ct.sha512.sha224;Wo.create=function(e){if(Tm||F_(),typeof e>"u"&&(e="SHA-512"),!(e in li))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=li[e],r=null,n=Ct.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(e){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=Ct.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=Ct.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),Rm(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Ct.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(Zl.substr(0,a.blockLength-l));for(var f,d,h=a.fullMessageLength[0]*8,p=0;p<a.fullMessageLength.length-1;++p)f=a.fullMessageLength[p+1]*8,d=f/4294967296>>>0,h+=d,c.putInt32(h>>>0),h=f>>>0;c.putInt32(h);for(var m=new Array(r.length),p=0;p<r.length;++p)m[p]=r[p].slice(0);Rm(m,i,c);var y=Ct.util.createBuffer(),g;e==="SHA-512"?g=m.length:e==="SHA-384"?g=m.length-2:g=m.length-4;for(var p=0;p<g;++p)y.putInt32(m[p][0]),(p!==g-1||e!=="SHA-512/224")&&y.putInt32(m[p][1]);return y},a};var Zl=null,Tm=!1,Jl=null,li=null;function F_(){Zl=String.fromCharCode(128),Zl+=Ct.util.fillString(String.fromCharCode(0),128),Jl=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],li={},li["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],li["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],li["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],li["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Tm=!0}function Rm(e,t,r){for(var n,i,o,s,a,c,u,l,f,d,h,p,m,y,g,E,_,O,C,D,j,rt,ie,je,Re,we,Mi,ta,Zt,be,q,Tu,Cu,Du,Bu,Rd=r.length();Rd>=128;){for(Zt=0;Zt<16;++Zt)t[Zt][0]=r.getInt32()>>>0,t[Zt][1]=r.getInt32()>>>0;for(;Zt<80;++Zt)Tu=t[Zt-2],be=Tu[0],q=Tu[1],n=((be>>>19|q<<13)^(q>>>29|be<<3)^be>>>6)>>>0,i=((be<<13|q>>>19)^(q<<3|be>>>29)^(be<<26|q>>>6))>>>0,Du=t[Zt-15],be=Du[0],q=Du[1],o=((be>>>1|q<<31)^(be>>>8|q<<24)^be>>>7)>>>0,s=((be<<31|q>>>1)^(be<<24|q>>>8)^(be<<25|q>>>7))>>>0,Cu=t[Zt-7],Bu=t[Zt-16],q=i+Cu[1]+s+Bu[1],t[Zt][0]=n+Cu[0]+o+Bu[0]+(q/4294967296>>>0)>>>0,t[Zt][1]=q>>>0;for(m=e[0][0],y=e[0][1],g=e[1][0],E=e[1][1],_=e[2][0],O=e[2][1],C=e[3][0],D=e[3][1],j=e[4][0],rt=e[4][1],ie=e[5][0],je=e[5][1],Re=e[6][0],we=e[6][1],Mi=e[7][0],ta=e[7][1],Zt=0;Zt<80;++Zt)u=((j>>>14|rt<<18)^(j>>>18|rt<<14)^(rt>>>9|j<<23))>>>0,l=((j<<18|rt>>>14)^(j<<14|rt>>>18)^(rt<<23|j>>>9))>>>0,f=(Re^j&(ie^Re))>>>0,d=(we^rt&(je^we))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,h=(m&g|_&(m^g))>>>0,p=(y&E|O&(y^E))>>>0,q=ta+l+d+Jl[Zt][1]+t[Zt][1],n=Mi+u+f+Jl[Zt][0]+t[Zt][0]+(q/4294967296>>>0)>>>0,i=q>>>0,q=c+p,o=a+h+(q/4294967296>>>0)>>>0,s=q>>>0,Mi=Re,ta=we,Re=ie,we=je,ie=j,je=rt,q=D+i,j=C+n+(q/4294967296>>>0)>>>0,rt=q>>>0,C=_,D=O,_=g,O=E,g=m,E=y,q=i+s,m=n+o+(q/4294967296>>>0)>>>0,y=q>>>0;q=e[0][1]+y,e[0][0]=e[0][0]+m+(q/4294967296>>>0)>>>0,e[0][1]=q>>>0,q=e[1][1]+E,e[1][0]=e[1][0]+g+(q/4294967296>>>0)>>>0,e[1][1]=q>>>0,q=e[2][1]+O,e[2][0]=e[2][0]+_+(q/4294967296>>>0)>>>0,e[2][1]=q>>>0,q=e[3][1]+D,e[3][0]=e[3][0]+C+(q/4294967296>>>0)>>>0,e[3][1]=q>>>0,q=e[4][1]+rt,e[4][0]=e[4][0]+j+(q/4294967296>>>0)>>>0,e[4][1]=q>>>0,q=e[5][1]+je,e[5][0]=e[5][0]+ie+(q/4294967296>>>0)>>>0,e[5][1]=q>>>0,q=e[6][1]+we,e[6][0]=e[6][0]+Re+(q/4294967296>>>0)>>>0,e[6][1]=q>>>0,q=e[7][1]+ta,e[7][0]=e[7][0]+Mi+(q/4294967296>>>0)>>>0,e[7][1]=q>>>0,Rd-=128}}});var Oy=I((t8,ky)=>{ky.exports=If;var Ny=128,jS=127,tA=~jS,eA=Math.pow(2,31);function If(e,t,r){if(Number.MAX_SAFE_INTEGER&&e>Number.MAX_SAFE_INTEGER)throw If.bytes=0,new RangeError("Could not encode varint");t=t||[],r=r||0;for(var n=r;e>=eA;)t[r++]=e&255|Ny,e/=128;for(;e&tA;)t[r++]=e&255|Ny,e>>>=7;return t[r]=e|0,If.bytes=r-n+1,t}});var Fy=I((e8,Uy)=>{Uy.exports=Tf;var rA=128,My=127;function Tf(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a||i>49)throw Tf.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&My)<<i:(s&My)*Math.pow(2,i),i+=7}while(s>=rA);return Tf.bytes=o-n,r}});var Vy=I((r8,Ky)=>{var nA=Math.pow(2,7),iA=Math.pow(2,14),oA=Math.pow(2,21),sA=Math.pow(2,28),aA=Math.pow(2,35),cA=Math.pow(2,42),uA=Math.pow(2,49),lA=Math.pow(2,56),fA=Math.pow(2,63);Ky.exports=function(e){return e<nA?1:e<iA?2:e<oA?3:e<sA?4:e<aA?5:e<cA?6:e<uA?7:e<lA?8:e<fA?9:10}});var tc=I((n8,qy)=>{qy.exports={encode:Oy(),decode:Fy(),encodingLength:Vy()}});var mg=I((EL,pg)=>{"use strict";pg.exports=function(){return Date.now()}});var Yf=I((xL,yg)=>{"use strict";var yc=mg(),Gf=class{constructor(t,r,n){let i=this;this._started=yc(),this._rescheduled=0,this._scheduled=r,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(yc()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,t.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,r)}reschedule(t){t||(t=this._scheduled);let r=yc();r+t-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(t)):this._triggered?this._schedule(t):(this._started=r,this._rescheduled=t)}_schedule(t){this._triggered=!1,this._started=yc(),this._rescheduled=0,this._scheduled=t,this._timer=setTimeout(this._timerWrapper,t)}clear(){clearTimeout(this._timer)}};function qA(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let e;if(arguments.length>0){e=new Array(arguments.length-2);for(var t=0;t<e.length;t++)e[t]=arguments[t+2]}return new Gf(arguments[0],arguments[1],e)}yg.exports=qA});var Ln=I((vL,wg)=>{"use strict";var{AbortController:zA}=globalThis,gg=Yf(),xs=class extends zA{constructor(t){super(),this._ms=t,this._timer=gg(()=>this.abort(),t),Object.setPrototypeOf(this,xs.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=gg(()=>this.abort(),this._ms)}};wg.exports={TimeoutController:xs}});var Wf=I((_L,Eg)=>{"use strict";var Eo=new Map,$A=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function HA(e,t,r){for(;Eo.get(r);){try{await e()}catch(n){setTimeout(()=>{throw n},1);break}if(!Eo.get(r))break;await new Promise(n=>{let i=setTimeout(n,t);Eo.set(r,i)})}}function GA(e,t,r){r=r||t;let n=$A(),i=setTimeout(()=>{HA(e,t,n)},r);return Eo.set(n,i),n}function YA(e){let t=Eo.get(e);t&&(clearTimeout(t),Eo.delete(e))}Eg.exports={setDelayedInterval:GA,clearDelayedInterval:YA}});var rn=I((SL,Qf)=>{"use strict";var xo=typeof Reflect=="object"?Reflect:null,xg=xo&&typeof xo.apply=="function"?xo.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},gc;xo&&typeof xo.ownKeys=="function"?gc=xo.ownKeys:Object.getOwnPropertySymbols?gc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:gc=function(t){return Object.getOwnPropertyNames(t)};function WA(e){console&&console.warn&&console.warn(e)}var bg=Number.isNaN||function(t){return t!==t};function Et(){Et.init.call(this)}Qf.exports=Et;Qf.exports.once=JA;Et.EventEmitter=Et;Et.prototype._events=void 0;Et.prototype._eventsCount=0;Et.prototype._maxListeners=void 0;var vg=10;function wc(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Et,"defaultMaxListeners",{enumerable:!0,get:function(){return vg},set:function(e){if(typeof e!="number"||e<0||bg(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");vg=e}});Et.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Et.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||bg(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function _g(e){return e._maxListeners===void 0?Et.defaultMaxListeners:e._maxListeners}Et.prototype.getMaxListeners=function(){return _g(this)};Et.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var s;if(r.length>0&&(s=r[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=o[t];if(c===void 0)return!1;if(typeof c=="function")xg(c,this,r);else for(var u=c.length,l=Tg(c,u),n=0;n<u;++n)xg(l[n],this,r);return!0};function Sg(e,t,r,n){var i,o,s;if(wc(r),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),s=o[t]),s===void 0)s=o[t]=r,++e._eventsCount;else if(typeof s=="function"?s=o[t]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),i=_g(e),i>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,WA(a)}return e}Et.prototype.addListener=function(t,r){return Sg(this,t,r,!1)};Et.prototype.on=Et.prototype.addListener;Et.prototype.prependListener=function(t,r){return Sg(this,t,r,!0)};function QA(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Ag(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=QA.bind(n);return i.listener=r,n.wrapFn=i,i}Et.prototype.once=function(t,r){return wc(r),this.on(t,Ag(this,t,r)),this};Et.prototype.prependOnceListener=function(t,r){return wc(r),this.prependListener(t,Ag(this,t,r)),this};Et.prototype.removeListener=function(t,r){var n,i,o,s,a;if(wc(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===r||n[s].listener===r){a=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():XA(n,o),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||r)}return this};Et.prototype.off=Et.prototype.removeListener;Et.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var o=Object.keys(n),s;for(i=0;i<o.length;++i)s=o[i],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(t,r[i]);return this};function Rg(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?ZA(i):Tg(i,i.length)}Et.prototype.listeners=function(t){return Rg(this,t,!0)};Et.prototype.rawListeners=function(t){return Rg(this,t,!1)};Et.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Ig.call(e,t)};Et.prototype.listenerCount=Ig;function Ig(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}Et.prototype.eventNames=function(){return this._eventsCount>0?gc(this._events):[]};function Tg(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function XA(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function ZA(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function JA(e,t){return new Promise(function(r,n){function i(s){e.removeListener(t,o),n(s)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),r([].slice.call(arguments))}Cg(e,t,o,{once:!0}),t!=="error"&&jA(e,i,{once:!0})})}function jA(e,t,r){typeof e.on=="function"&&Cg(e,"error",t,r)}function Cg(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){n.once&&e.removeEventListener(t,i),r(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Ng=I(($L,Pg)=>{"use strict";Pg.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var Kg=I((Ug,Fg)=>{"use strict";var _c=Ng(),{hasOwnProperty:Og}=Object.prototype,{propertyIsEnumerable:eR}=Object,vo=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),rR=Ug,kg={concatArrays:!1,ignoreUndefined:!1},Sc=e=>{let t=[];for(let r in e)Og.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(e);for(let n of r)eR.call(e,n)&&t.push(n)}return t};function bo(e){return Array.isArray(e)?nR(e):_c(e)?iR(e):e}function nR(e){let t=e.slice(0,0);return Sc(e).forEach(r=>{vo(t,r,bo(e[r]))}),t}function iR(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return Sc(e).forEach(r=>{vo(t,r,bo(e[r]))}),t}var Mg=(e,t,r,n)=>(r.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in e&&e[i]!==Object.getPrototypeOf(e)?vo(e,i,Xf(e[i],t[i],n)):vo(e,i,bo(t[i])))}),e),oR=(e,t,r)=>{let n=e.slice(0,0),i=0;return[e,t].forEach(o=>{let s=[];for(let a=0;a<o.length;a++)Og.call(o,a)&&(s.push(String(a)),o===e?vo(n,i++,o[a]):vo(n,i++,bo(o[a])));n=Mg(n,o,Sc(o).filter(a=>!s.includes(a)),r)}),n};function Xf(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?oR(e,t,r):!_c(t)||!_c(e)?bo(t):Mg(e,t,Sc(t),r)}Fg.exports=function(...e){let t=Xf(bo(kg),this!==rR&&this||{},kg),r={_:{}};for(let n of e)if(n!==void 0){if(!_c(n))throw new TypeError("`"+n+"` is not an Option Object");r=Xf(r,{_:n},t)}return r._}});var bs=I((eP,$g)=>{$g.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:Boolean(t)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var Gg=I((nP,Hg)=>{Hg.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=t&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,r){this.addMs(t,r*1e3)}addMs(t,r){this._keys[t]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let r=this._keys[t];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var Wg=I((iP,Yg)=>{var cR=Gg();Yg.exports=cR});var Oe=I((sP,Qg)=>{Qg.exports=class{constructor(t,r,n,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=Boolean(t)}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var _o=I((cP,Zg)=>{var Jf=bs(),uR=Wg(),Xg=Oe();Zg.exports=class extends Jf{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed||t.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration||t.inmemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new uR}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,r,n,i,o,s={}){let a=this._getRateLimiterRes(n,i,o);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):t(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,s)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,c,a)}else t(a)}_handleError(t,r,n,i,o,s=!1,a={}){this.insuranceLimiter instanceof Jf?this.insuranceLimiter[r](o,s,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(t){return this.getInMemoryBlockMsBeforeExpire(t)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(t){this.inMemoryBlockOnConsumed=t}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(t){this.inMemoryBlockDuration=t}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof Jf))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,r,n={}){let i=r*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,r,n,i={}){let o=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),r,o,i)}consume(t,r=1,n={}){return new Promise((i,o)=>{let s=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(s);if(a>0)return o(new Xg(0,a));this._upsert(s,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,o,s,r,c)}).catch(c=>{this._handleError(c,"consume",i,o,t,r,n)})})}penalty(t,r=1,n={}){let i=this.getKey(t);return new Promise((o,s)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",o,s,t,r,n)})})}reward(t,r=1,n={}){let i=this.getKey(t);return new Promise((o,s)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{o(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",o,s,t,r,n)})})}get(t,r={}){let n=this.getKey(t);return new Promise((i,o)=>{this._get(n,r).then(s=>{i(s===null||typeof s>"u"?null:this._getRateLimiterRes(n,0,s))}).catch(s=>{this._handleError(s,"get",i,o,t,r)})})}delete(t,r={}){let n=this.getKey(t);return new Promise((i,o)=>{this._delete(n,r).then(s=>{this._inMemoryBlockedKeys.delete(n),i(s)}).catch(s=>{this._handleError(s,"delete",i,o,t,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,r,n,i={}){return new Promise((o,s)=>{this._upsert(t,r,n,!0,i).then(()=>{o(new Xg(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",o,s,this.parseKey(t),n/1e3,i)})})}_get(t,r={}){throw new Error("You have to implement the method '_get'!")}_delete(t,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,r,n,i=!1,o={}){throw new Error("You have to implement the method '_upsert'!")}}});var tw=I((uP,jg)=>{var lR=_o(),fR=Oe(),Jg="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",jf=class extends lR{constructor(t){super(t),t.redis?this.client=t.redis:this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Jg})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,r,n){let[i,o]=n;Array.isArray(i)&&([,i]=i,[,o]=o);let s=new fR;return s.consumedPoints=parseInt(i),s.isFirstInDuration=s.consumedPoints===r,s.remainingPoints=Math.max(this.points-s.consumedPoints,0),s.msBeforeNext=o,s}_upsert(t,r,n,i=!1){return new Promise((o,s)=>{if(!this._isRedisReady())return s(new Error("Redis connection is not ready"));let a=Math.floor(n/1e3),c=this.client.multi();if(i)a>0?c.set(t,r,"EX",a):c.set(t,r),c.pttl(t).exec((u,l)=>u?s(u):o(l));else if(a>0){let u=function(l,f){return l?s(l):o(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,r,a,u):this.client.eval(Jg,1,t,r,a,u)}else c.incrby(t,r).pttl(t).exec((u,l)=>u?s(u):o(l))})}_get(t){return new Promise((r,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(t).pttl(t).exec((i,o)=>{if(i)n(i);else{let[s]=o;if(s===null)return r(null);r(o)}})})}_delete(t){return new Promise((r,n)=>{this.client.del(t,(i,o)=>{i?n(i):r(o>0)})})}};jg.exports=jf});var nw=I((lP,rw)=>{var hR=_o(),dR=Oe();function ew(e){try{let t=e.client?e.client:e,{version:r}=t.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var _s=class extends hR{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=ew(this.client)}):(this._initCollection(),this._driverVersion=ew(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?_s.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(t,r,n){let i=new dR,o;return typeof n.value>"u"?o=n:o=n.value,i.isFirstInDuration=o.points===r,i.consumedPoints=o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire!==null?Math.max(new Date(o.expire).getTime()-Date.now(),0):-1,i}_upsert(t,r,n,i=!1,o={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let s=o.attrs||{},a,c;i?(a={key:t},a=Object.assign(a,s),c={$set:{key:t,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,s)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,s),c={$setOnInsert:{key:t,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,s));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let h=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},s),p={$set:Object.assign({key:t,points:r,expire:n>0?new Date(Date.now()+n):null},s)};this._collection.findOneAndUpdate(h,p,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(o=>o.deletedCount>0)}};rw.exports=_s});var ow=I((fP,iw)=>{var pR=_o(),mR=Oe(),th=class extends pR{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(t){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),o=>{if(o)return this._releaseConnection(n),r(o);this._releaseConnection(n),t()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,r,n){let i=new mR,[o]=n;return i.isFirstInDuration=r===o.points,i.consumedPoints=i.isFirstInDuration?r:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_upsertTransaction(t,r,n,i,o){return new Promise((s,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;o?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
2
+ "use strict";var Libp2P=(()=>{var Vw=Object.create;var Js=Object.defineProperty;var qw=Object.getOwnPropertyDescriptor;var $w=Object.getOwnPropertyNames;var zw=Object.getPrototypeOf,Hw=Object.prototype.hasOwnProperty;var T=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),ne=(r,t)=>{for(var e in t)Js(r,e,{get:t[e],enumerable:!0})},$f=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of $w(t))!Hw.call(r,i)&&i!==e&&Js(r,i,{get:()=>t[i],enumerable:!(n=qw(t,i))||n.enumerable});return r};var N=(r,t,e)=>(e=r!=null?Vw(zw(r)):{},$f(t||!r||!r.__esModule?Js(e,"default",{value:r,enumerable:!0}):e,r)),Gw=r=>$f(Js({},"__esModule",{value:!0}),r);var _c=T((iA,zf)=>{var Jn=1e3,jn=Jn*60,ti=jn*60,mn=ti*24,Yw=mn*7,Ww=mn*365.25;zf.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return Qw(r);if(e==="number"&&isFinite(r))return t.long?Zw(r):Xw(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Qw(r){if(r=String(r),!(r.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(t){var e=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return e*Ww;case"weeks":case"week":case"w":return e*Yw;case"days":case"day":case"d":return e*mn;case"hours":case"hour":case"hrs":case"hr":case"h":return e*ti;case"minutes":case"minute":case"mins":case"min":case"m":return e*jn;case"seconds":case"second":case"secs":case"sec":case"s":return e*Jn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function Xw(r){var t=Math.abs(r);return t>=mn?Math.round(r/mn)+"d":t>=ti?Math.round(r/ti)+"h":t>=jn?Math.round(r/jn)+"m":t>=Jn?Math.round(r/Jn)+"s":r+"ms"}function Zw(r){var t=Math.abs(r);return t>=mn?js(r,t,mn,"day"):t>=ti?js(r,t,ti,"hour"):t>=jn?js(r,t,jn,"minute"):t>=Jn?js(r,t,Jn,"second"):r+" ms"}function js(r,t,e,n){var i=t>=e*1.5;return Math.round(r/e)+" "+n+(i?"s":"")}});var Gf=T((sA,Hf)=>{function Jw(r){e.debug=e,e.default=e,e.coerce=c,e.disable=s,e.enable=i,e.enabled=o,e.humanize=_c(),e.destroy=l,Object.keys(r).forEach(u=>{e[u]=r[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let f=0;for(let h=0;h<u.length;h++)f=(f<<5)-f+u.charCodeAt(h),f|=0;return e.colors[Math.abs(f)%e.colors.length]}e.selectColor=t;function e(u){let f,h=null,d,p;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),_=x-(f||x);g.diff=_,g.prev=f,g.curr=x,f=x,y[0]=e.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let O=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(B,X)=>{if(B==="%%")return"%";O++;let J=e.formatters[X];if(typeof J=="function"){let Xt=y[O];B=J.call(g,Xt),y.splice(O,1),O--}return B}),e.formatArgs.call(g,y),(g.log||e.log).apply(g,y)}return m.namespace=u,m.useColors=e.useColors(),m.color=e.selectColor(u),m.extend=n,m.destroy=e.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(d!==e.namespaces&&(d=e.namespaces,p=e.enabled(u)),p),set:y=>{h=y}}),typeof e.init=="function"&&e.init(m),m}function n(u,f){let h=e(this.namespace+(typeof f>"u"?":":f)+u);return h.log=this.log,h}function i(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let f,h=(typeof u=="string"?u:"").split(/[\s,]+/),d=h.length;for(f=0;f<d;f++)h[f]&&(u=h[f].replace(/\*/g,".*?"),u[0]==="-"?e.skips.push(new RegExp("^"+u.slice(1)+"$")):e.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...e.names.map(a),...e.skips.map(a).map(f=>"-"+f)].join(",");return e.enable(""),u}function o(u){if(u[u.length-1]==="*")return!0;let f,h;for(f=0,h=e.skips.length;f<h;f++)if(e.skips[f].test(u))return!1;for(f=0,h=e.names.length;f<h;f++)if(e.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack||u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return e.enable(e.load()),e}Hf.exports=Jw});var Sc=T((we,to)=>{we.formatArgs=t1;we.save=e1;we.load=r1;we.useColors=jw;we.storage=n1();we.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();we.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function jw(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function t1(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+to.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;r.splice(1,0,t,"color: inherit");let e=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(e++,i==="%c"&&(n=e))}),r.splice(n,0,t)}we.log=console.debug||console.log||(()=>{});function e1(r){try{r?we.storage.setItem("debug",r):we.storage.removeItem("debug")}catch{}}function r1(){let r;try{r=we.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function n1(){try{return localStorage}catch{}}to.exports=Gf()(we);var{formatters:i1}=to.exports;i1.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _h=T((uR,bh)=>{bh.exports=Qc;var vh=128,mE=127,yE=~mE,gE=Math.pow(2,31);function Qc(r,t,e){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw Qc.bytes=0,new RangeError("Could not encode varint");t=t||[],e=e||0;for(var n=e;r>=gE;)t[e++]=r&255|vh,r/=128;for(;r&yE;)t[e++]=r&255|vh,r>>>=7;return t[e]=r|0,Qc.bytes=e-n+1,t}});var Rh=T((fR,Ah)=>{Ah.exports=Xc;var wE=128,Sh=127;function Xc(r,n){var e=0,n=n||0,i=0,s=n,o,a=r.length;do{if(s>=a||i>49)throw Xc.bytes=0,new RangeError("Could not decode varint");o=r[s++],e+=i<28?(o&Sh)<<i:(o&Sh)*Math.pow(2,i),i+=7}while(o>=wE);return Xc.bytes=s-n,e}});var Th=T((hR,Ih)=>{var EE=Math.pow(2,7),xE=Math.pow(2,14),vE=Math.pow(2,21),bE=Math.pow(2,28),_E=Math.pow(2,35),SE=Math.pow(2,42),AE=Math.pow(2,49),RE=Math.pow(2,56),IE=Math.pow(2,63);Ih.exports=function(r){return r<EE?1:r<xE?2:r<vE?3:r<bE?4:r<_E?5:r<SE?6:r<AE?7:r<RE?8:r<IE?9:10}});var io=T((dR,Ch)=>{Ch.exports={encode:_h(),decode:Rh(),encodingLength:Th()}});var ci=T((PR,Kh)=>{"use strict";function Fh(r,t){for(let e in t)Object.defineProperty(r,e,{value:t[e],enumerable:!0,configurable:!0});return r}function qE(r,t,e){if(!r||typeof r=="string")throw new TypeError("Please pass an Error to err-code");e||(e={}),typeof t=="object"&&(e=t,t=""),t&&(e.code=t);try{return Fh(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),Fh(new i,e)}}Kh.exports=qE});var Qh=T((dI,Wh)=>{"use strict";Wh.exports=function(){return Date.now()}});var ll=T((pI,Xh)=>{"use strict";var go=Qh(),cl=class{constructor(t,e,n){let i=this;this._started=go(),this._rescheduled=0,this._scheduled=e,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(go()-i._started),i._schedule(i._scheduled)):(i._triggered=!0,t.apply(null,i._args))},this._timer=setTimeout(this._timerWrapper,e)}reschedule(t){t||(t=this._scheduled);let e=go();e+t-(this._started+this._scheduled)<0?(clearTimeout(this._timer),this._schedule(t)):this._triggered?this._schedule(t):(this._started=e,this._rescheduled=t)}_schedule(t){this._triggered=!1,this._started=go(),this._rescheduled=0,this._scheduled=t,this._timer=setTimeout(this._timerWrapper,t)}clear(){clearTimeout(this._timer)}};function QE(){if(typeof arguments[0]!="function")throw new Error("callback needed");if(typeof arguments[1]!="number")throw new Error("timeout needed");let r;if(arguments.length>0){r=new Array(arguments.length-2);for(var t=0;t<r.length;t++)r[t]=arguments[t+2]}return new cl(arguments[0],arguments[1],r)}Xh.exports=QE});var _r=T((mI,Jh)=>{"use strict";var{AbortController:XE}=globalThis,Zh=ll(),Zi=class extends XE{constructor(t){super(),this._ms=t,this._timer=Zh(()=>this.abort(),t),Object.setPrototypeOf(this,Zi.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=Zh(()=>this.abort(),this._ms)}};Jh.exports={TimeoutController:Zi}});var e0=T((AI,t0)=>{"use strict";var fi=new Map,tx=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function ex(r,t,e){for(;fi.get(e);){try{await r()}catch(n){setTimeout(()=>{throw n},1);break}if(!fi.get(e))break;await new Promise(n=>{let i=setTimeout(n,t);fi.set(e,i)})}}function rx(r,t,e){e=e||t;let n=tx(),i=setTimeout(()=>{ex(r,t,n)},e);return fi.set(n,i),n}function nx(r){let t=fi.get(r);t&&(clearTimeout(t),fi.delete(r))}t0.exports={setDelayedInterval:rx,clearDelayedInterval:nx}});var tr=T((RI,fl)=>{"use strict";var hi=typeof Reflect=="object"?Reflect:null,r0=hi&&typeof hi.apply=="function"?hi.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},Eo;hi&&typeof hi.ownKeys=="function"?Eo=hi.ownKeys:Object.getOwnPropertySymbols?Eo=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Eo=function(t){return Object.getOwnPropertyNames(t)};function ix(r){console&&console.warn&&console.warn(r)}var i0=Number.isNaN||function(t){return t!==t};function ht(){ht.init.call(this)}fl.exports=ht;fl.exports.once=cx;ht.EventEmitter=ht;ht.prototype._events=void 0;ht.prototype._eventsCount=0;ht.prototype._maxListeners=void 0;var n0=10;function xo(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}Object.defineProperty(ht,"defaultMaxListeners",{enumerable:!0,get:function(){return n0},set:function(r){if(typeof r!="number"||r<0||i0(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");n0=r}});ht.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};ht.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||i0(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function s0(r){return r._maxListeners===void 0?ht.defaultMaxListeners:r._maxListeners}ht.prototype.getMaxListeners=function(){return s0(this)};ht.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var i=t==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[t];if(c===void 0)return!1;if(typeof c=="function")r0(c,this,e);else for(var l=c.length,u=u0(c,l),n=0;n<l;++n)r0(u[n],this,e);return!0};function o0(r,t,e,n){var i,s,o;if(xo(e),s=r._events,s===void 0?(s=r._events=Object.create(null),r._eventsCount=0):(s.newListener!==void 0&&(r.emit("newListener",t,e.listener?e.listener:e),s=r._events),o=s[t]),o===void 0)o=s[t]=e,++r._eventsCount;else if(typeof o=="function"?o=s[t]=n?[e,o]:[o,e]:n?o.unshift(e):o.push(e),i=s0(r),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=r,a.type=t,a.count=o.length,ix(a)}return r}ht.prototype.addListener=function(t,e){return o0(this,t,e,!1)};ht.prototype.on=ht.prototype.addListener;ht.prototype.prependListener=function(t,e){return o0(this,t,e,!0)};function sx(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function a0(r,t,e){var n={fired:!1,wrapFn:void 0,target:r,type:t,listener:e},i=sx.bind(n);return i.listener=e,n.wrapFn=i,i}ht.prototype.once=function(t,e){return xo(e),this.on(t,a0(this,t,e)),this};ht.prototype.prependOnceListener=function(t,e){return xo(e),this.prependListener(t,a0(this,t,e)),this};ht.prototype.removeListener=function(t,e){var n,i,s,o,a;if(xo(e),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||e));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===e||n[o].listener===e){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():ox(n,s),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||e)}return this};ht.prototype.off=ht.prototype.removeListener;ht.prototype.removeAllListeners=function(t){var e,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=n[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function c0(r,t,e){var n=r._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?ax(i):u0(i,i.length)}ht.prototype.listeners=function(t){return c0(this,t,!0)};ht.prototype.rawListeners=function(t){return c0(this,t,!1)};ht.listenerCount=function(r,t){return typeof r.listenerCount=="function"?r.listenerCount(t):l0.call(r,t)};ht.prototype.listenerCount=l0;function l0(r){var t=this._events;if(t!==void 0){var e=t[r];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}ht.prototype.eventNames=function(){return this._eventsCount>0?Eo(this._events):[]};function u0(r,t){for(var e=new Array(t),n=0;n<t;++n)e[n]=r[n];return e}function ox(r,t){for(;t+1<r.length;t++)r[t]=r[t+1];r.pop()}function ax(r){for(var t=new Array(r.length),e=0;e<t.length;++e)t[e]=r[e].listener||r[e];return t}function cx(r,t){return new Promise(function(e,n){function i(o){r.removeListener(t,s),n(o)}function s(){typeof r.removeListener=="function"&&r.removeListener("error",i),e([].slice.call(arguments))}f0(r,t,s,{once:!0}),t!=="error"&&lx(r,i,{once:!0})})}function lx(r,t,e){typeof r.on=="function"&&f0(r,"error",t,e)}function f0(r,t,e,n){if(typeof r.on=="function")n.once?r.once(t,e):r.on(t,e);else if(typeof r.addEventListener=="function")r.addEventListener(t,function i(s){n.once&&r.removeEventListener(t,i),e(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof r)}});var w0=T((iT,g0)=>{"use strict";g0.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let t=Object.getPrototypeOf(r);return t===null||t===Object.prototype}});var S0=T((b0,_0)=>{"use strict";var Ao=w0(),{hasOwnProperty:x0}=Object.prototype,{propertyIsEnumerable:dx}=Object,di=(r,t,e)=>Object.defineProperty(r,t,{value:e,writable:!0,enumerable:!0,configurable:!0}),px=b0,E0={concatArrays:!1,ignoreUndefined:!1},Ro=r=>{let t=[];for(let e in r)x0.call(r,e)&&t.push(e);if(Object.getOwnPropertySymbols){let e=Object.getOwnPropertySymbols(r);for(let n of e)dx.call(r,n)&&t.push(n)}return t};function pi(r){return Array.isArray(r)?mx(r):Ao(r)?yx(r):r}function mx(r){let t=r.slice(0,0);return Ro(r).forEach(e=>{di(t,e,pi(r[e]))}),t}function yx(r){let t=Object.getPrototypeOf(r)===null?Object.create(null):{};return Ro(r).forEach(e=>{di(t,e,pi(r[e]))}),t}var v0=(r,t,e,n)=>(e.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in r&&r[i]!==Object.getPrototypeOf(r)?di(r,i,yl(r[i],t[i],n)):di(r,i,pi(t[i])))}),r),gx=(r,t,e)=>{let n=r.slice(0,0),i=0;return[r,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)x0.call(s,a)&&(o.push(String(a)),s===r?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=v0(n,s,Ro(s).filter(a=>!o.includes(a)),e)}),n};function yl(r,t,e){return e.concatArrays&&Array.isArray(r)&&Array.isArray(t)?gx(r,t,e):!Ao(t)||!Ao(r)?pi(t):v0(r,t,Ro(t),e)}_0.exports=function(...r){let t=yl(pi(E0),this!==px&&this||{},E0),e={_:{}};for(let n of r)if(n!==void 0){if(!Ao(n))throw new TypeError("`"+n+"` is not an Option Object");e=yl(e,{_:n},t)}return e._}});var ts=T((CT,T0)=>{T0.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var B0=T((DT,C0)=>{C0.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(e=>{this._keys[e]<=t&&delete this._keys[e]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,e){this.addMs(t,e*1e3)}addMs(t,e){this._keys[t]=Date.now()+e,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let e=this._keys[t];if(e&&e>=Date.now()){this.collectExpired();let n=Date.now();return e>=n?e-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(e=>{delete this._keys[e]})}}});var L0=T((LT,D0)=>{var xx=B0();D0.exports=xx});var ve=T((NT,P0)=>{P0.exports=class{constructor(t,e,n,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof e>"u"?0:e,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var yi=T((OT,k0)=>{var wl=ts(),vx=L0(),N0=ve();k0.exports=class extends wl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed||t.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration||t.inmemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new vx}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,e,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?e(a):t(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{e(a)}).catch(l=>{e(l)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,c,a)}else t(a)}_handleError(t,e,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof wl?this.insuranceLimiter[e](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(t){return this.getInMemoryBlockMsBeforeExpire(t)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(t){this.inMemoryBlockOnConsumed=t}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(t){this.inMemoryBlockDuration=t}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof wl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,e,n={}){let i=e*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,e,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),e,s,i)}consume(t,e=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new N0(0,a));this._upsert(o,e,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,e,c)}).catch(c=>{this._handleError(c,"consume",i,s,t,e,n)})})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise((s,o)=>{this._upsert(i,e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,e,a))}).catch(a=>{this._handleError(a,"penalty",s,o,t,e,n)})})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise((s,o)=>{this._upsert(i,-e,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-e,a))}).catch(a=>{this._handleError(a,"reward",s,o,t,e,n)})})}get(t,e={}){let n=this.getKey(t);return new Promise((i,s)=>{this._get(n,e).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,t,e)})})}delete(t,e={}){let n=this.getKey(t);return new Promise((i,s)=>{this._delete(n,e).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,t,e)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,e,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,e,n,i={}){return new Promise((s,o)=>{this._upsert(t,e,n,!0,i).then(()=>{s(new N0(0,n>0?n:-1,e))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,e={}){throw new Error("You have to implement the method '_get'!")}_delete(t,e={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,e,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var U0=T((MT,M0)=>{var bx=yi(),_x=ve(),O0="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",El=class extends bx{constructor(t){super(t),t.redis?this.client=t.redis:this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:O0})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,e,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new _x;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===e,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}_upsert(t,e,n,i=!1){return new Promise((s,o)=>{if(!this._isRedisReady())return o(new Error("Redis connection is not ready"));let a=Math.floor(n/1e3),c=this.client.multi();if(i)a>0?c.set(t,e,"EX",a):c.set(t,e),c.pttl(t).exec((l,u)=>l?o(l):s(u));else if(a>0){let l=function(u,f){return u?o(u):s(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,e,a,l):this.client.eval(O0,1,t,e,a,l)}else c.incrby(t,e).pttl(t).exec((l,u)=>l?o(l):s(u))})}_get(t){return new Promise((e,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(t).pttl(t).exec((i,s)=>{if(i)n(i);else{let[o]=s;if(o===null)return e(null);e(s)}})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,s)=>{i?n(i):e(s>0)})})}};M0.exports=El});var V0=T((UT,K0)=>{var Sx=yi(),Ax=ve();function F0(r){try{let t=r.client?r.client:r,{version:e}=t.topology.s.options.metadata.driver,n=e.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var es=class extends Sx{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(e=>{this.client=e,this._initCollection(),this._driverVersion=F0(this.client)}):(this._initCollection(),this._driverVersion=F0(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?es.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){let e=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);e.createIndex({expire:-1},{expireAfterSeconds:0}),e.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=e}_getRateLimiterRes(t,e,n){let i=new Ax,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===e,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(t,e,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:t},a=Object.assign(a,o),c={$set:{key:t,points:e,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,expire:n>0?new Date(Date.now()+n):null},$inc:{points:e}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let l={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?l.returnDocument="after":l.returnOriginal=!1,new Promise((u,f)=>{this._collection.findOneAndUpdate(a,c,l).then(h=>{u(h)}).catch(h=>{if(h&&h.code===11e3){let d=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},o),p={$set:Object.assign({key:t,points:e,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(d,p,l).then(m=>{u(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,e,n,i).then(y=>u(y)).catch(y=>f(y)):f(m)})}else f(h)})})}_get(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,e={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=e.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};K0.exports=es});var $0=T((FT,q0)=>{var Rx=yi(),Ix=ve(),xl=class extends Rx{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(n),e()})}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,e)=>{this.client.getConnection((n,i)=>{if(n)return e(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,e)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),e(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),e(s);this._releaseConnection(n),t()})})}).catch(n=>{e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,e,n){let i=new Ix,[s]=n;return i.isFirstInDuration=e===s.points,i.consumedPoints=i.isFirstInDuration?e:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(t,e,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let l=Date.now(),u=i>0?l+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
16
3
  ON DUPLICATE KEY UPDATE
17
4
  points = ?,
18
- expire = ?;`,d=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
5
+ expire = ?;`,h=[this.dbName,this.tableName,e,n,u,n,u]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
19
6
  ON DUPLICATE KEY UPDATE
20
7
  points = IF(expire <= ?, ?, points + (?)),
21
- expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),t.query(f,d,h=>{if(h)return t.rollback(),a(h);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(p,m)=>{if(p)return t.rollback(),a(p);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);s(m)})})})})})}_upsert(t,r,n,i=!1){return this.tableCreated?new Promise((o,s)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,r,n,i).then(c=>{o(c),this._releaseConnection(a)}).catch(c=>{s(c),this._releaseConnection(a)})}).catch(a=>{s(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(o,s)=>{o?n(o):s.length===0?r(null):r(s),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(o,s)=>{o?n(o):r(s.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};iw.exports=th});var aw=I((hP,sw)=>{var yR=_o(),gR=Oe(),eh=class extends yR{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?typeof r=="function"&&r():this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(t){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this.tableName} WHERE expire < $1`,values:[t]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this.tableName} (
8
+ expire = IF(expire <= ?, ?, expire);`,h=[this.dbName,this.tableName,e,n,u,l,n,n,l,u]),t.query(f,h,d=>{if(d)return t.rollback(),a(d);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,e],(p,m)=>{if(p)return t.rollback(),a(p);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,e,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,e,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(s,o)=>{s?n(s):o.length===0?e(null):e(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((e,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):e(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};q0.exports=xl});var H0=T((KT,z0)=>{var Tx=yi(),Cx=ve(),vl=class extends Tx{constructor(t,e=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?typeof e=="function"&&e():this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof e=="function"&&e()}).catch(n=>{if(typeof e=="function")e(n);else throw n})}clearExpired(t){return new Promise(e=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this.tableName} WHERE expire < $1`,values:[t]};this._query(n).then(()=>{e()}).catch(()=>{e()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,e)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():e(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this.tableName} (
22
9
  key varchar(255) PRIMARY KEY,
23
10
  points integer NOT NULL DEFAULT 0,
24
11
  expire bigint
25
- );`}get clientType(){return this._clientType}set clientType(t){let r=this.client.constructor.name;if(typeof t>"u")if(r==="Client")t="client";else if(r==="Pool"||r==="BoundPool")t="pool";else if(r==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:Boolean(t)}_getRateLimiterRes(t,r,n){let i=new gR,o=n.rows[0];return i.isFirstInDuration=r===o.points,i.consumedPoints=i.isFirstInDuration?r:o.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=o.expire?Math.max(o.expire-Date.now(),0):-1,i}_query(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,o)=>{this._getConnection().then(s=>{s.query(n).then(a=>{i(a),this._releaseConnection(s)}).catch(a=>{o(a),this._releaseConnection(s)})}).catch(s=>{o(s)})})}_upsert(t,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let o=n>0?Date.now()+n:null,s=i?" $3 ":` CASE
12
+ );`}get clientType(){return this._clientType}set clientType(t){let e=this.client.constructor.name;if(typeof t>"u")if(e==="Client")t="client";else if(e==="Pool"||e==="BoundPool")t="pool";else if(e==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,e,n){let i=new Cx,s=n.rows[0];return i.isFirstInDuration=e===s.points,i.consumedPoints=i.isFirstInDuration?e:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(t,e,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
26
13
  WHEN ${this.tableName}.expire <= $4 THEN $3
27
14
  ELSE ${this.tableName}.expire
28
15
  END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
@@ -32,21 +19,34 @@
32
19
  WHEN (${this.tableName}.expire <= $4 OR 1=${i?1:0}) THEN $2
33
20
  ELSE ${this.tableName}.points + ($2)
34
21
  END,
35
- expire = ${s}
36
- RETURNING points, expire;`,values:[t,r,o,Date.now()]})}_get(t){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
37
- SELECT points, expire FROM ${this.tableName} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[t]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};sw.exports=eh});var cw=I(()=>{});var lw=I((yP,uw)=>{uw.exports=class{constructor(t,r,n=null){this.value=t,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var hw=I((wP,fw)=>{var wR=lw(),rh=Oe();fw.exports=class{constructor(){this._storage={}}incrby(t,r,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+r,new rh(0,i,this._storage[t].value,!1)):this.set(t,r,n)}return this.set(t,r,n)}set(t,r,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new wR(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new rh(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let r=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new rh(0,r,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var ih=I((EP,pw)=>{var ER=bs(),xR=hw(),dw=Oe(),nh=class extends ER{constructor(t={}){super(t),this._memoryStorage=new xR}consume(t,r=1,n={}){return new Promise((i,o)=>{let s=this.getKey(t),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(s,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(s,c.consumedPoints,this.blockDuration)),o(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(t,r=1,n={}){let i=this.getKey(t);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}reward(t,r=1,n={}){let i=this.getKey(t);return new Promise(o=>{let s=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,s);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),o(a)})}block(t,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,r),Promise.resolve(new dw(0,n===0?-1:n,i))}set(t,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),r,n),Promise.resolve(new dw(0,i===0?-1:i,r))}get(t){let r=this._memoryStorage.get(this.getKey(t));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};pw.exports=nh});var vw=I((xP,xw)=>{var mw=cw(),vR=si(),bR=bs(),gw=ih(),_R=Oe(),Ye="rate_limiter_flexible",Ro=null,yw=function(e,t,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},e.send({channel:Ye,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},ww=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&ww.call(this,e)},30)},So=function(e,t,r,n,i){let o={channel:Ye,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(o):ww.call(this,o)},Ew=function(e,t){if(!t||t.channel!==Ye||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then(n=>{yw(e,t,"resolve",n)}).catch(n=>{yw(e,t,"reject",n)})},SR=function(e){if(!e||e.channel!==Ye||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new _R(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},AR=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ao=function(e,t){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=vR.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},oh=class{constructor(){if(Ro)return Ro;this._rateLimiters={},mw.setMaxListeners(0),mw.on("message",(t,r)=>{r&&r.channel===Ye&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new gw(r.opts)),t.send({channel:Ye,type:"init",keyPrefix:r.opts.keyPrefix})):Ew.call(this,t,r)}),Ro=this}},sh=class{constructor(t){if(Ro)return Ro;this._rateLimiters={},t.launchBus((r,n)=>{n.on("process:msg",i=>{let o=i.raw;if(o&&o.channel===Ye&&o.type==="init")typeof this._rateLimiters[o.opts.keyPrefix]>"u"&&(this._rateLimiters[o.opts.keyPrefix]=new gw(o.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Ye,channel:Ye,type:"init",keyPrefix:o.opts.keyPrefix},(s,a)=>{s&&console.log(s,a)});else{let s={send:a=>{let c=a;c.topic=Ye,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Ew.call(this,s,o)}})}),Ro=this}},ah=class extends bR{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Ye&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:SR.call(this,r)}),process.send({channel:Ye,type:"init",opts:AR.call(this)}),this._promises={}}consume(t,r=1,n={}){return new Promise((i,o)=>{let s=Ao.call(this,i,o);So.call(this,"consume",s,t,r,n)})}penalty(t,r=1,n={}){return new Promise((i,o)=>{let s=Ao.call(this,i,o);So.call(this,"penalty",s,t,r,n)})}reward(t,r=1,n={}){return new Promise((i,o)=>{let s=Ao.call(this,i,o);So.call(this,"reward",s,t,r,n)})}block(t,r,n={}){return new Promise((i,o)=>{let s=Ao.call(this,i,o);So.call(this,"block",s,t,r,n)})}get(t,r={}){return new Promise((n,i)=>{let o=Ao.call(this,n,i);So.call(this,"get",o,t,r)})}delete(t,r={}){return new Promise((n,i)=>{let o=Ao.call(this,n,i);So.call(this,"delete",o,t,r)})}};xw.exports={RateLimiterClusterMaster:oh,RateLimiterClusterMasterPM2:sh,RateLimiterCluster:ah}});var _w=I((vP,bw)=>{var RR=_o(),IR=Oe(),ch=class extends RR{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,r,n){let i=new IR;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(t,r,n,i=!1,o={}){return new Promise((s,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(t,r,u,l=>{l?a(l):this.client.set(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};s(f)})}):this.client.incr(t,r,(l,f)=>{l||f===!1?this.client.add(t,r,u,(d,h)=>{if(d||!h)if(typeof o.attemptNumber>"u"||o.attemptNumber<3){let p=Object.assign({},o);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(t,r,n,i,p).then(m=>s(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let p={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};s(p)})}):this.client.get(`${t}_expire`,(d,h)=>{if(d)a(d);else{let p=h===!1?0:h,m={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};s(m)}})})})}_get(t){return new Promise((r,n)=>{let i=Date.now();this.client.get(t,(o,s)=>{s?this.client.get(`${t}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:s,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(t){return new Promise((r,n)=>{this.client.del(t,(i,o)=>{i?n(i):o===!1?r(o):this.client.del(`${t}_expire`,s=>{s?n(s):r(o)})})})}};bw.exports=ch});var Rw=I((_P,Aw)=>{var Sw=Oe();Aw.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new Sw(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Sw(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,r=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,r):(this.runActionAnyway&&this.limiter.consume(t,r).catch(()=>{}),n)}block(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,r):(this.runActionAnyway&&this.limiter.block(t,r).catch(()=>{}),n)}penalty(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,r):(this.runActionAnyway&&this.limiter.penalty(t,r).catch(()=>{}),n)}reward(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,r):(this.runActionAnyway&&this.limiter.reward(t,r).catch(()=>{}),n)}get(t){let r;return this.isWhiteListedSomewhere(t)?r=this.resolveWhite():this.isBlackListedSomewhere(t)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(t):r}delete(t){return this.limiter.delete(t)}}});var Tw=I((AP,Iw)=>{var TR=bs();Iw.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(r=>{if(!(r instanceof TR))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,r=1){return new Promise((n,i)=>{let o=[];this._limiters.forEach(s=>{o.push(s.consume(t,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(o).then(s=>{let a={},c=!1;s.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<s.length;u++)c&&s[u].rejected===!0?a[this._limiters[u].keyPrefix]=s[u].rej:c||(a[this._limiters[u].keyPrefix]=s[u]);c?i(a):n(a)})})}}});var Dw=I((IP,Cw)=>{Cw.exports=class extends Error{constructor(t,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,r&&(this.extra=r)}}});var Nw=I((CP,Pw)=>{var Bw=Dw(),Lw=4294967295,uh="limiter";Pw.exports=class{constructor(t,r={maxQueueSize:Lw}){this._queueLimiters={KEY_DEFAULT:new Cc(t,r)},this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(t=uh){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,r=uh){return this._queueLimiters[r]||(this._queueLimiters[r]=new Cc(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(t)}};var Cc=class{constructor(t,r={maxQueueSize:Lw,key:uh}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let r=this;return new Promise((n,i)=>{if(t>r._limiterFlexible.points){i(new Bw(`Requested tokens ${t} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,t):r._limiterFlexible.consume(r._key,t).then(o=>{n(o.remainingPoints)}).catch(o=>{o instanceof Error?i(o):(r._queueRequest.call(r,n,i,t),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),o.msBeforeNext)))})})}_queueRequest(t,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:r,tokens:n}):r(new Bw(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let r=t._queue.shift();t._limiterFlexible.consume(t._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(r.reject(n),t._processFIFO.call(t)):(t._queue.unshift(r),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var Ow=I((BP,kw)=>{var lh=Oe();kw.exports=class{constructor(t,r){this._rateLimiter=t,this._burstLimiter=r}_combineRes(t,r){return new lh(t.remainingPoints,Math.min(t.msBeforeNext,r.msBeforeNext),t.consumedPoints,t.isFirstInDuration)}consume(t,r=1,n={}){return this._rateLimiter.consume(t,r,n).catch(i=>i instanceof lh?this._burstLimiter.consume(t,r,n).then(o=>Promise.resolve(this._combineRes(i,o))).catch(o=>o instanceof lh?Promise.reject(this._combineRes(i,o)):Promise.reject(o)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var Uw=I((LP,Mw)=>{var CR=tw(),DR=nw(),BR=ow(),LR=aw(),{RateLimiterClusterMaster:PR,RateLimiterClusterMasterPM2:NR,RateLimiterCluster:kR}=vw(),OR=ih(),MR=_w(),UR=Rw(),FR=Tw(),KR=Nw(),VR=Ow(),qR=Oe();Mw.exports={RateLimiterRedis:CR,RateLimiterMongo:DR,RateLimiterMySQL:BR,RateLimiterPostgres:LR,RateLimiterMemory:OR,RateLimiterMemcache:MR,RateLimiterClusterMaster:PR,RateLimiterClusterMasterPM2:NR,RateLimiterCluster:kR,RLWrapperBlackAndWhite:UR,RateLimiterUnion:FR,RateLimiterQueue:KR,BurstyRateLimiter:VR,RateLimiterRes:qR}});var jw=I((KN,Jw)=>{"use strict";function eI(e){return e>=55296&&e<=56319}function rI(e){return e>=56320&&e<=57343}Jw.exports=function(t,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,o=0,s,a,c=0;c<i;c+=1){if(s=r.charCodeAt(c),a=r[c],eI(s)&&rI(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),o+=t(a),o===n)return r.slice(0,c+1);if(o>n)return r.slice(0,c-a.length+1)}return r}});var eE=I((VN,tE)=>{"use strict";function nI(e){return e>=55296&&e<=56319}function iI(e){return e>=56320&&e<=57343}tE.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var r=t.length,n=0,i=null,o=null,s=0;s<r;s++)i=t.charCodeAt(s),iI(i)?o!=null&&nI(o)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),o=i;return n}});var nE=I((qN,rE)=>{"use strict";var oI=jw(),sI=eE();rE.exports=oI.bind(null,sI)});var sE=I((zN,oE)=>{"use strict";var aI=nE(),cI=/[\/\?<>\\:\*\|"]/g,uI=/[\x00-\x1f\x80-\x9f]/g,lI=/^\.+$/,fI=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,hI=/[\. ]+$/;function iE(e,t){if(typeof e!="string")throw new Error("Input must be string");var r=e.replace(cI,t).replace(uI,t).replace(lI,t).replace(fI,t).replace(hI,t);return aI(r,255)}oE.exports=function(e,t){var r=t&&t.replacement||"",n=iE(e,r);return r===""?n:iE(n,"")}});var FE=I((nO,UE)=>{function II(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}UE.exports=II});var JE=I((JO,ZE)=>{"use strict";ZE.exports=de;var Ks=Li();function de(e,t){this.lo=e>>>0,this.hi=t>>>0}var Bi=de.zero=new de(0,0);Bi.toNumber=function(){return 0};Bi.zzEncode=Bi.zzDecode=function(){return this};Bi.length=function(){return 1};var BI=de.zeroHash="\0\0\0\0\0\0\0\0";de.fromNumber=function(t){if(t===0)return Bi;var r=t<0;r&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new de(n,i)};de.from=function(t){if(typeof t=="number")return de.fromNumber(t);if(Ks.isString(t))if(Ks.Long)t=Ks.Long.fromString(t);else return de.fromNumber(parseInt(t,10));return t.low||t.high?new de(t.low>>>0,t.high>>>0):Bi};de.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};de.prototype.toLong=function(t){return Ks.Long?new Ks.Long(this.lo|0,this.hi|0,Boolean(t)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(t)}};var Un=String.prototype.charCodeAt;de.fromHash=function(t){return t===BI?Bi:new de((Un.call(t,0)|Un.call(t,1)<<8|Un.call(t,2)<<16|Un.call(t,3)<<24)>>>0,(Un.call(t,4)|Un.call(t,5)<<8|Un.call(t,6)<<16|Un.call(t,7)<<24)>>>0)};de.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};de.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};de.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};de.prototype.length=function(){var t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var Li=I(Ph=>{"use strict";var F=Ph;F.asPromise=ol();F.base64=sl();F.EventEmitter=al();F.float=cl();F.inquire=ul();F.utf8=fl();F.pool=hl();F.LongBits=JE();F.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);F.global=F.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Ph;F.emptyArray=Object.freeze?Object.freeze([]):[];F.emptyObject=Object.freeze?Object.freeze({}):{};F.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};F.isString=function(t){return typeof t=="string"||t instanceof String};F.isObject=function(t){return t&&typeof t=="object"};F.isset=F.isSet=function(t,r){var n=t[r];return n!=null&&t.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};F.Buffer=function(){try{var e=F.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}}();F._Buffer_from=null;F._Buffer_allocUnsafe=null;F.newBuffer=function(t){return typeof t=="number"?F.Buffer?F._Buffer_allocUnsafe(t):new F.Array(t):F.Buffer?F._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};F.Array=typeof Uint8Array<"u"?Uint8Array:Array;F.Long=F.global.dcodeIO&&F.global.dcodeIO.Long||F.global.Long||F.inquire("long");F.key2Re=/^true|false|0|1$/;F.key32Re=/^-?(?:0|[1-9][0-9]*)$/;F.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;F.longToHash=function(t){return t?F.LongBits.from(t).toHash():F.LongBits.zeroHash};F.longFromHash=function(t,r){var n=F.LongBits.fromHash(t);return F.Long?F.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))};function jE(e,t,r){for(var n=Object.keys(t),i=0;i<n.length;++i)(e[n[i]]===void 0||!r)&&(e[n[i]]=t[n[i]]);return e}F.merge=jE;F.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function t1(e){function t(r,n){if(!(this instanceof t))return new t(r,n);Object.defineProperty(this,"message",{get:function(){return r}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&jE(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}F.newError=t1;F.ProtocolError=t1("ProtocolError");F.oneOfGetter=function(t){for(var r={},n=0;n<t.length;++n)r[t[n]]=1;return function(){for(var i=Object.keys(this),o=i.length-1;o>-1;--o)if(r[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};F.oneOfSetter=function(t){return function(r){for(var n=0;n<t.length;++n)t[n]!==r&&delete this[t[n]]}};F.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};F._configure=function(){var e=F.Buffer;if(!e){F._Buffer_from=F._Buffer_allocUnsafe=null;return}F._Buffer_from=e.from!==Uint8Array.from&&e.from||function(r,n){return new e(r,n)},F._Buffer_allocUnsafe=e.allocUnsafe||function(r){return new e(r)}}});var Oh=I((t5,o1)=>{"use strict";o1.exports=Qt;var Pr=Li(),kh,n1=Pr.LongBits,LI=Pr.utf8;function dr(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function Qt(e){this.buf=e,this.pos=0,this.len=e.length}var e1=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new Qt(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new Qt(t);throw Error("illegal buffer")},i1=function(){return Pr.Buffer?function(r){return(Qt.create=function(i){return Pr.Buffer.isBuffer(i)?new kh(i):e1(i)})(r)}:e1};Qt.create=i1();Qt.prototype._slice=Pr.Array.prototype.subarray||Pr.Array.prototype.slice;Qt.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,dr(this,10);return t}}();Qt.prototype.int32=function(){return this.uint32()|0};Qt.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function Nh(){var e=new n1(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw dr(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw dr(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}Qt.prototype.bool=function(){return this.uint32()!==0};function iu(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}Qt.prototype.fixed32=function(){if(this.pos+4>this.len)throw dr(this,4);return iu(this.buf,this.pos+=4)};Qt.prototype.sfixed32=function(){if(this.pos+4>this.len)throw dr(this,4);return iu(this.buf,this.pos+=4)|0};function r1(){if(this.pos+8>this.len)throw dr(this,8);return new n1(iu(this.buf,this.pos+=4),iu(this.buf,this.pos+=4))}Qt.prototype.float=function(){if(this.pos+4>this.len)throw dr(this,4);var t=Pr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Qt.prototype.double=function(){if(this.pos+8>this.len)throw dr(this,4);var t=Pr.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Qt.prototype.bytes=function(){var t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw dr(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};Qt.prototype.string=function(){var t=this.bytes();return LI.read(t,0,t.length)};Qt.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw dr(this,t);this.pos+=t}else do if(this.pos>=this.len)throw dr(this);while(this.buf[this.pos++]&128);return this};Qt.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};Qt._configure=function(e){kh=e,Qt.create=i1(),kh._configure();var t=Pr.Long?"toLong":"toNumber";Pr.merge(Qt.prototype,{int64:function(){return Nh.call(this)[t](!1)},uint64:function(){return Nh.call(this)[t](!0)},sint64:function(){return Nh.call(this).zzDecode()[t](!1)},fixed64:function(){return r1.call(this)[t](!0)},sfixed64:function(){return r1.call(this)[t](!1)}})}});var u1=I((e5,c1)=>{"use strict";c1.exports=Pi;var a1=Oh();(Pi.prototype=Object.create(a1.prototype)).constructor=Pi;var s1=Li();function Pi(e){a1.call(this,e)}Pi._configure=function(){s1.Buffer&&(Pi.prototype._slice=s1.Buffer.prototype.slice)};Pi.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Pi._configure()});var zh=I((r5,d1)=>{"use strict";d1.exports=ft;var Xe=Li(),Mh,ou=Xe.LongBits,l1=Xe.base64,f1=Xe.utf8;function Vs(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function Fh(){}function PI(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function ft(){this.len=0,this.head=new Vs(Fh,0,0),this.tail=this.head,this.states=null}var h1=function(){return Xe.Buffer?function(){return(ft.create=function(){return new Mh})()}:function(){return new ft}};ft.create=h1();ft.alloc=function(t){return new Xe.Array(t)};Xe.Array!==Array&&(ft.alloc=Xe.pool(ft.alloc,Xe.Array.prototype.subarray));ft.prototype._push=function(t,r,n){return this.tail=this.tail.next=new Vs(t,r,n),this.len+=r,this};function Kh(e,t,r){t[r]=e&255}function NI(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}function Vh(e,t){this.len=e,this.next=void 0,this.val=t}Vh.prototype=Object.create(Vs.prototype);Vh.prototype.fn=NI;ft.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new Vh((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};ft.prototype.int32=function(t){return t<0?this._push(qh,10,ou.fromNumber(t)):this.uint32(t)};ft.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function qh(e,t,r){for(;e.hi;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}ft.prototype.uint64=function(t){var r=ou.from(t);return this._push(qh,r.length(),r)};ft.prototype.int64=ft.prototype.uint64;ft.prototype.sint64=function(t){var r=ou.from(t).zzEncode();return this._push(qh,r.length(),r)};ft.prototype.bool=function(t){return this._push(Kh,1,t?1:0)};function Uh(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}ft.prototype.fixed32=function(t){return this._push(Uh,4,t>>>0)};ft.prototype.sfixed32=ft.prototype.fixed32;ft.prototype.fixed64=function(t){var r=ou.from(t);return this._push(Uh,4,r.lo)._push(Uh,4,r.hi)};ft.prototype.sfixed64=ft.prototype.fixed64;ft.prototype.float=function(t){return this._push(Xe.float.writeFloatLE,4,t)};ft.prototype.double=function(t){return this._push(Xe.float.writeDoubleLE,8,t)};var kI=Xe.Array.prototype.set?function(t,r,n){r.set(t,n)}:function(t,r,n){for(var i=0;i<t.length;++i)r[n+i]=t[i]};ft.prototype.bytes=function(t){var r=t.length>>>0;if(!r)return this._push(Kh,1,0);if(Xe.isString(t)){var n=ft.alloc(r=l1.length(t));l1.decode(t,n,0),t=n}return this.uint32(r)._push(kI,r,t)};ft.prototype.string=function(t){var r=f1.length(t);return r?this.uint32(r)._push(f1.write,r,t):this._push(Kh,1,0)};ft.prototype.fork=function(){return this.states=new PI(this),this.head=this.tail=new Vs(Fh,0,0),this.len=0,this};ft.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Vs(Fh,0,0),this.len=0),this};ft.prototype.ldelim=function(){var t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=r,this.len+=n),this};ft.prototype.finish=function(){for(var t=this.head.next,r=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r};ft._configure=function(e){Mh=e,ft.create=h1(),Mh._configure()}});var y1=I((n5,m1)=>{"use strict";m1.exports=Nr;var p1=zh();(Nr.prototype=Object.create(p1.prototype)).constructor=Nr;var Fn=Li();function Nr(){p1.call(this)}Nr._configure=function(){Nr.alloc=Fn._Buffer_allocUnsafe,Nr.writeBytesBuffer=Fn.Buffer&&Fn.Buffer.prototype instanceof Uint8Array&&Fn.Buffer.prototype.set.name==="set"?function(t,r,n){r.set(t,n)}:function(t,r,n){if(t.copy)t.copy(r,n,0,t.length);else for(var i=0;i<t.length;)r[n++]=t[i++]}};Nr.prototype.bytes=function(t){Fn.isString(t)&&(t=Fn._Buffer_from(t,"base64"));var r=t.length>>>0;return this.uint32(r),r&&this._push(Nr.writeBytesBuffer,r,t),this};function OI(e,t,r){e.length<40?Fn.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}Nr.prototype.string=function(t){var r=Fn.Buffer.byteLength(t);return this.uint32(r),r&&this._push(OI,r,t),this};Nr._configure()});var b1=I((_5,Qh)=>{"use strict";var KI=Object.prototype.hasOwnProperty,ve="~";function $s(){}Object.create&&($s.prototype=Object.create(null),new $s().__proto__||(ve=!1));function VI(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function v1(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new VI(r,n||e,i),s=ve?ve+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function cu(e,t){--e._eventsCount===0?e._events=new $s:delete e._events[t]}function ge(){this._events=new $s,this._eventsCount=0}ge.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)KI.call(r,n)&&t.push(ve?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ge.prototype.listeners=function(t){var r=ve?ve+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};ge.prototype.listenerCount=function(t){var r=ve?ve+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ge.prototype.emit=function(t,r,n,i,o,s){var a=ve?ve+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,s),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(t,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c[f].fn.apply(c[f].context,l)}}return!0};ge.prototype.on=function(t,r,n){return v1(this,t,r,n,!1)};ge.prototype.once=function(t,r,n){return v1(this,t,r,n,!0)};ge.prototype.removeListener=function(t,r,n,i){var o=ve?ve+t:t;if(!this._events[o])return this;if(!r)return cu(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&cu(this,o);else{for(var a=0,c=[],u=s.length;a<u;a++)(s[a].fn!==r||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:cu(this,o)}return this};ge.prototype.removeAllListeners=function(t){var r;return t?(r=ve?ve+t:t,this._events[r]&&cu(this,r)):(this._events=new $s,this._eventsCount=0),this};ge.prototype.off=ge.prototype.removeListener;ge.prototype.addListener=ge.prototype.on;ge.prefixed=ve;ge.EventEmitter=ge;typeof Qh<"u"&&(Qh.exports=ge)});var q1=I((mM,V1)=>{"use strict";V1.exports=K1;var HI=Lu(),Yn=K1.prototype,GI=new Date%1e9;function YI(){return(Math.random()*1e9>>>0)+GI++}function K1(e){e=e||{},this.id=e.id||YI(),this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}Yn.has=function(e){return e in this._lookup};Yn.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Yn.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null};Yn.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,value:t};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Yn.delete=function(e){var t=this._lookup[e];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this):!1};Yn.expire=function(e,t){var r=t||0,n=this._lookup[e];if(!n)return this;if(typeof r=="string"&&(r=HI(t)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Yn.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this};Yn.toJSON=function(){for(var e=new Array(this.items.length),t,r=e.length;r--;)t=this.items[r],e[r]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:e}}});var bd=I((QM,vd)=>{function J1(e){let t=new globalThis.AbortController;function r(){t.abort();for(let n of e)!n||!n.removeEventListener||n.removeEventListener("abort",r)}for(let n of e)if(!(!n||!n.addEventListener)){if(n.aborted){r();break}n.addEventListener("abort",r)}return t.signal}vd.exports=J1;vd.exports.anySignal=J1});var tx=I((ZM,j1)=>{j1.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var nx=I((jM,rx)=>{var ex=tx();rx.exports=class{constructor(t){this.hwm=t||16,this.head=new ex(this.hwm),this.tail=this.head}push(t){if(!this.head.push(t)){let r=this.head;this.head=r.next=new ex(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return t}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var ox=I((tU,ix)=>{"use strict";var rT=()=>{let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e};ix.exports=rT});var ux=I((rU,cx)=>{var sx=nx(),ax=ox();cx.exports=class{constructor(){this._buffer=new sx,this._waitingConsumers=new sx}push(t){let{promise:r,resolve:n}=ax();return this._buffer.push({chunk:t,resolve:n}),this._consume(),r}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let t=this._waitingConsumers.shift(),r=this._buffer.shift();t.resolve(r.chunk),r.resolve()}}shift(){let{promise:t,resolve:r}=ax();return this._waitingConsumers.push({resolve:r}),this._consume(),t}isEmpty(){return this._buffer.isEmpty()}}});var sT={};pe(sT,{createLibp2p:()=>oT});var mr=T(Pu(),1);var Uu={};pe(Uu,{base58btc:()=>zt,base58flickr:()=>Kx});function kx(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,y=0,g=0,E=p.length;g!==E&&p[g]===0;)g++,m++;for(var _=(E-g)*l+1>>>0,O=new Uint8Array(_);g!==E;){for(var C=p[g],D=0,j=_-1;(C!==0||D<y)&&j!==-1;j--,D++)C+=256*O[j]>>>0,O[j]=C%a>>>0,C=C/a>>>0;if(C!==0)throw new Error("Non-zero carry");y=D,g++}for(var rt=_-y;rt!==_&&O[rt]===0;)rt++;for(var ie=c.repeat(m);rt<_;++rt)ie+=e.charAt(O[rt]);return ie}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var y=0,g=0;p[m]===c;)y++,m++;for(var E=(p.length-m)*u+1>>>0,_=new Uint8Array(E);p[m];){var O=r[p.charCodeAt(m)];if(O===255)return;for(var C=0,D=E-1;(O!==0||C<g)&&D!==-1;D--,C++)O+=a*_[D]>>>0,_[D]=O%256>>>0,O=O/256>>>0;if(O!==0)throw new Error("Non-zero carry");g=C,m++}if(p[m]!==" "){for(var j=E-g;j!==E&&_[j]===0;)j++;for(var rt=new Uint8Array(y+(E-j)),ie=y;j!==E;)rt[ie++]=_[j++];return rt}}}function h(p){var m=d(p);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:d,decode:h}}var Ox=kx,Mx=Ox,Bd=Mx;var fT=new Uint8Array(0);var Ld=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},Mr=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var Pd=e=>new TextEncoder().encode(e),Nd=e=>new TextDecoder().decode(e);var Nu=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},ku=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Od(this,t)}},Ou=class{constructor(t){this.decoders=t}or(t){return Od(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Od=(e,t)=>new Ou({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Mu=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Nu(t,r,n),this.decoder=new ku(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Vi=({name:e,prefix:t,encode:r,decode:n})=>new Mu(e,t,r,n),ln=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=Bd(r,t);return Vi({prefix:e,name:t,encode:n,decode:o=>Mr(i(o))})},Ux=(e,t,r,n)=>{let i={};for(let l=0;l<t.length;++l)i[t[l]]=l;let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let l=0;l<o;++l){let f=i[e[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},Fx=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},Ft=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Vi({prefix:t,name:e,encode(i){return Fx(i,n,r)},decode(i){return Ux(i,n,r,e)}});var zt=ln({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Kx=ln({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Fu={};pe(Fu,{base32:()=>Te,base32hex:()=>$x,base32hexpad:()=>Gx,base32hexpadupper:()=>Yx,base32hexupper:()=>Hx,base32pad:()=>qx,base32padupper:()=>zx,base32upper:()=>Vx,base32z:()=>Wx});var Te=Ft({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Vx=Ft({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),qx=Ft({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),zx=Ft({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$x=Ft({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Hx=Ft({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Gx=Ft({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Yx=Ft({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Wx=Ft({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ku={};pe(Ku,{base64:()=>Qn,base64pad:()=>Qx,base64url:()=>Xx,base64urlpad:()=>Zx});var Qn=Ft({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Qx=Ft({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Xx=Ft({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Zx=Ft({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});mr.default.formatters.b=e=>e==null?"undefined":zt.baseEncode(e);mr.default.formatters.t=e=>e==null?"undefined":Te.baseEncode(e);mr.default.formatters.m=e=>e==null?"undefined":Qn.baseEncode(e);mr.default.formatters.p=e=>e==null?"undefined":e.toString();mr.default.formatters.c=e=>e==null?"undefined":e.toString();mr.default.formatters.k=e=>e==null?"undefined":e.toString();function N(e){return Object.assign((0,mr.default)(e),{error:(0,mr.default)(`${e}:error`),trace:(0,mr.default)(`${e}:trace`)})}var Ur="/libp2p/circuit/relay/0.2.0/hop",ko="/libp2p/circuit/relay/0.2.0/stop";var Jx=Fd,Md=128,jx=127,t2=~jx,e2=Math.pow(2,31);function Fd(e,t,r){t=t||[],r=r||0;for(var n=r;e>=e2;)t[r++]=e&255|Md,e/=128;for(;e&t2;)t[r++]=e&255|Md,e>>>=7;return t[r]=e|0,Fd.bytes=r-n+1,t}var r2=Vu,n2=128,Ud=127;function Vu(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw Vu.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&Ud)<<i:(s&Ud)*Math.pow(2,i),i+=7}while(s>=n2);return Vu.bytes=o-n,r}var i2=Math.pow(2,7),o2=Math.pow(2,14),s2=Math.pow(2,21),a2=Math.pow(2,28),c2=Math.pow(2,35),u2=Math.pow(2,42),l2=Math.pow(2,49),f2=Math.pow(2,56),h2=Math.pow(2,63),d2=function(e){return e<i2?1:e<o2?2:e<s2?3:e<a2?4:e<c2?5:e<u2?6:e<l2?7:e<f2?8:e<h2?9:10},p2={encode:Jx,decode:r2,encodingLength:d2},m2=p2,Oo=m2;var Mo=(e,t=0)=>[Oo.decode(e,t),Oo.decode.bytes],qi=(e,t,r=0)=>(Oo.encode(e,t,r),t),zi=e=>Oo.encodingLength(e);var yr=(e,t)=>{let r=t.byteLength,n=zi(e),i=n+zi(r),o=new Uint8Array(i+r);return qi(e,o,0),qi(r,o,n),o.set(t,i),new $i(e,r,t,o)},Xn=e=>{let t=Mr(e),[r,n]=Mo(t),[i,o]=Mo(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new $i(r,i,s,t)},Kd=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Ld(e.bytes,r.bytes)}},$i=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Vd=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return g2(r,qu(e),t||zt.encoder);default:return w2(r,qu(e),t||Te.encoder)}};var qd=new WeakMap,qu=e=>{let t=qd.get(e);if(t==null){let r=new Map;return qd.set(e,r),r}return t},yt=class{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==Uo)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==E2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return yt.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=yr(t,r);return yt.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return yt.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Kd(t.multihash,n.multihash)}toString(t){return Vd(this,t)}toJSON(){return{"/":Vd(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof yt)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new yt(n,i,o,s||zd(n,i,o.bytes))}else if(r[x2]===!0){let{version:n,multihash:i,code:o}=r,s=Xn(i);return yt.create(n,o,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==Uo)throw new Error(`Version 0 CID must use dag-pb (code: ${Uo}) block encoding`);return new yt(t,r,n,n.bytes)}case 1:{let i=zd(t,r,n.bytes);return new yt(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return yt.create(0,Uo,t)}static createV1(t,r){return yt.create(1,t,r)}static decode(t){let[r,n]=yt.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=yt.inspectBytes(t),n=r.size-r.multihashSize,i=Mr(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new $i(r.multihashCode,r.digestSize,o,i);return[r.version===0?yt.createV0(s):yt.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[f,d]=Mo(t.subarray(r));return r+=d,f},i=n(),o=Uo;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,l=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(t,r){let[n,i]=y2(t,r),o=yt.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return qu(o).set(n,t),o}},y2=(e,t)=>{switch(e[0]){case"Q":{let r=t||zt;return[zt.prefix,r.decode(`${zt.prefix}${e}`)]}case zt.prefix:{let r=t||zt;return[zt.prefix,r.decode(e)]}case Te.prefix:{let r=t||Te;return[Te.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},g2=(e,t,r)=>{let{prefix:n}=r;if(n!==zt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},w2=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},Uo=112,E2=18,zd=(e,t,r)=>{let n=zi(e),i=n+zi(t),o=new Uint8Array(i+r.byteLength);return qi(e,o,0),qi(t,o,n),o.set(r,i),o},x2=Symbol.for("@ipld/js-cid/CID");var Hu={};pe(Hu,{sha256:()=>oe,sha512:()=>v2});var $u=({name:e,code:t,encode:r})=>new zu(e,t,r),zu=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?yr(this.code,r):r.then(n=>yr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Hd=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),oe=$u({name:"sha2-256",code:18,encode:Hd("SHA-256")}),v2=$u({name:"sha2-512",code:19,encode:Hd("SHA-512")});var Gd=N("libp2p:circuit:v2:util"),Yd=(e,t)=>{queueMicrotask(()=>{t.sink(e.source).catch(r=>Gd.error("error while relating streams:",r))}),queueMicrotask(()=>{e.sink(t.source).catch(r=>Gd.error("error while relaying streams:",r))})};function Xd(e,t,r){if(r==null){Yd(e,t);return}let n=r.data??0n,i=r.duration??0,o=Qd(Wd(e,n),i),s=Qd(Wd(t,n),i);Yd(o,s)}var b2=(e,t)=>{if(t===0n)return e;let r=e.source;return e.source=async function*(){let n=0n;for await(let i of r){let o=BigInt(i.byteLength);if(n+o>t){let s=Number(t-n);try{s!==0&&(yield i)}finally{e.abort(new Error("data limit exceeded"))}return}yield i,n+=o}}(),e},_2=(e,t)=>{if(t===0n)return e;let r=e.sink;return e.sink=async n=>{await r(async function*(){let i=0n;for await(let o of n){let s=BigInt(o.byteLength);if(i+s>t){let a=Number(t-i);try{a!==0&&(yield o.subarray(0,a))}finally{e.abort(new Error("data limit exceeded"))}return}i+=s,yield o}}())},e},Wd=(e,t)=>(b2(e,t),_2(e,t),e),Qd=(e,t)=>{if(t===0)return e;let r=!1,n=setTimeout(()=>{r=!0,e.abort(new Error("exceeded connection duration limit"))},t),i=e.source;return e.source=async function*(){try{for await(let o of i){if(r)return;yield o}}finally{clearTimeout(n)}}(),e};async function oa(e){let t=new TextEncoder().encode(e),r=await oe.digest(t);return yt.createV0(r)}function Zd(e){return Number(e)-new Date().getTime()}var sa="/libp2p/relay";var Jd="relay-destination";var jd=BigInt(131072);async function Jn(e){let t=[];for await(let r of e)t.push(r);return t}async function*Gu(e,t){yield*(await Jn(e)).sort(t)}var aa=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Hi=class{constructor(t={}){this.hwm=t.splitLimit??16,this.head=new aa(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new aa(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};function jn(e={}){return A2(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function A2(e,t){t=t??{};let r=t.onEnd,n=new Hi,i,o,s,a=async()=>n.isEmpty()?s?{done:!0}:await new Promise((m,y)=>{o=g=>{o=null,n.push(g);try{m(e(n))}catch(E){y(E)}return i}}):e(n),c=m=>o!=null?o(m):(n.push(m),i),u=m=>(n=new Hi,o!=null?o({error:m}):(n.push({error:m}),i)),l=m=>{if(s)return i;if(t?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:m})},f=m=>s?i:(s=!0,m!=null?u(m):c({done:!0})),d=()=>(n=new Hi,f(),{done:!0}),h=m=>(f(m),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:h,push:l,end:f,get readableLength(){return n.size}},r==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),r!=null&&(r(m),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(m){return p.end(m),r!=null&&(r(m),r=void 0),i},get readableLength(){return p.readableLength}},i}async function*Fr(...e){let t=jn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async r=>{for await(let n of r)t.push(n)})),t.end()}catch(r){t.end(r)}}),yield*t}var R2=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},t0=e=>e!=null&&(typeof e[Symbol.asyncIterator]=="function"||typeof e[Symbol.iterator]=="function"||typeof e.next=="function"),Yu=e=>e!=null&&typeof e.sink=="function"&&t0(e.source),I2=e=>t=>{let r=e.sink(t);if(r.then!=null){let n=jn({objectMode:!0});return r.then(()=>{n.end()},o=>{n.end(o)}),Fr(n,async function*(){yield*e.source,n.end()}())}return e.source};function Jt(e,...t){if(Yu(e)){let n=e;e=()=>n.source}else if(t0(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&Yu(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)Yu(r[n])&&(r[n]=I2(r[n]));return R2(...r)}var d0=T(e0(),1);var r0="[a-fA-F\\d:]",fn=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${r0})|(?<=${r0})(?=\\s|$))`:"",tr="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",jt="[a-fA-F\\d]{1,4}",ca=`
22
+ expire = ${o}
23
+ RETURNING points, expire;`,values:[t,e,s,Date.now()]})}_get(t){return this.tableCreated?new Promise((e,n)=>{this._query({name:"rlflx-get",text:`
24
+ SELECT points, expire FROM ${this.tableName} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),e(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[t]}).then(e=>e.rowCount>0):Promise.reject(Error("Table is not created yet"))}};z0.exports=vl});var G0=T(()=>{});var Rn=T(()=>{});var W0=T((GT,Y0)=>{Y0.exports=class{constructor(t,e,n=null){this.value=t,this.expiresAt=e,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var X0=T((WT,Q0)=>{var Bx=W0(),bl=ve();Q0.exports=class{constructor(){this._storage={}}incrby(t,e,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+e,new bl(0,i,this._storage[t].value,!1)):this.set(t,e,n)}return this.set(t,e,n)}set(t,e,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new Bx(e,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new bl(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let e=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new bl(0,e,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var Sl=T((QT,J0)=>{var Dx=ts(),Lx=X0(),Z0=ve(),_l=class extends Dx{constructor(t={}){super(t),this._memoryStorage=new Lx}consume(t,e=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,e,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+e&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let l=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));l<this.execEvenlyMinDelayMs&&(l=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,l,c)}else i(c)})}penalty(t,e=1,n={}){let i=this.getKey(t);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,e,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(t,e=1,n={}){let i=this.getKey(t);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-e,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(t,e){let n=e*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,e),Promise.resolve(new Z0(0,n===0?-1:n,i))}set(t,e,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),e,n),Promise.resolve(new Z0(0,i===0?-1:i,e))}get(t){let e=this._memoryStorage.get(this.getKey(t));return e!==null&&(e.remainingPoints=Math.max(this.points-e.consumedPoints,0)),Promise.resolve(e)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};J0.exports=_l});var sd=T((XT,id)=>{var j0=G0(),Px=Rn(),Nx=ts(),ed=Sl(),kx=ve(),Be="rate_limiter_flexible",Ei=null,td=function(r,t,e,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},r.send({channel:Be,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:e,data:i})},rd=function(r){setTimeout(()=>{this._initiated?process.send(r):typeof this._promises[r.promiseId]<"u"&&rd.call(this,r)},30)},gi=function(r,t,e,n,i){let s={channel:Be,keyPrefix:this.keyPrefix,func:r,promiseId:t,data:{key:e,arg:n,opts:i}};this._initiated?process.send(s):rd.call(this,s)},nd=function(r,t){if(!t||t.channel!==Be||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let e;switch(t.func){case"consume":e=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":e=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":e=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":e=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":e=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":e=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}e&&e.then(n=>{td(r,t,"resolve",n)}).catch(n=>{td(r,t,"reject",n)})},Ox=function(r){if(!r||r.channel!==Be||r.keyPrefix!==this.keyPrefix)return!1;if(this._promises[r.promiseId]){clearTimeout(this._promises[r.promiseId].timeoutId);let t;switch(r.data===null||r.data===!0||r.data===!1?t=r.data:t=new kx(r.data.remainingPoints,r.data.msBeforeNext,r.data.consumedPoints,r.data.isFirstInDuration),r.type){case"resolve":this._promises[r.promiseId].resolve(t);break;case"reject":this._promises[r.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${r.type}'`)}delete this._promises[r.promiseId]}},Mx=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},wi=function(r,t){let e=process.hrtime(),n=e[0].toString()+e[1].toString();return typeof this._promises[n]<"u"&&(n+=Px.randomBytes(12).toString("base64")),this._promises[n]={resolve:r,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Al=class{constructor(){if(Ei)return Ei;this._rateLimiters={},j0.setMaxListeners(0),j0.on("message",(t,e)=>{e&&e.channel===Be&&e.type==="init"?(typeof this._rateLimiters[e.opts.keyPrefix]>"u"&&(this._rateLimiters[e.opts.keyPrefix]=new ed(e.opts)),t.send({channel:Be,type:"init",keyPrefix:e.opts.keyPrefix})):nd.call(this,t,e)}),Ei=this}},Rl=class{constructor(t){if(Ei)return Ei;this._rateLimiters={},t.launchBus((e,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Be&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new ed(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Be,channel:Be,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Be,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(l,u)=>{l&&console.log(l,u)})}};nd.call(this,o,s)}})}),Ei=this}},Il=class extends Nx{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",e=>{e&&e.channel===Be&&e.type==="init"&&e.keyPrefix===this.keyPrefix?this._initiated=!0:Ox.call(this,e)}),process.send({channel:Be,type:"init",opts:Mx.call(this)}),this._promises={}}consume(t,e=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"consume",o,t,e,n)})}penalty(t,e=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"penalty",o,t,e,n)})}reward(t,e=1,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"reward",o,t,e,n)})}block(t,e,n={}){return new Promise((i,s)=>{let o=wi.call(this,i,s);gi.call(this,"block",o,t,e,n)})}get(t,e={}){return new Promise((n,i)=>{let s=wi.call(this,n,i);gi.call(this,"get",s,t,e)})}delete(t,e={}){return new Promise((n,i)=>{let s=wi.call(this,n,i);gi.call(this,"delete",s,t,e)})}};id.exports={RateLimiterClusterMaster:Al,RateLimiterClusterMasterPM2:Rl,RateLimiterCluster:Il}});var ad=T((ZT,od)=>{var Ux=yi(),Fx=ve(),Tl=class extends Ux{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,e,n){let i=new Fx;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===e,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(t,e,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),l=Math.floor(n/1e3);i?this.client.set(t,e,l,u=>{u?a(u):this.client.set(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let f={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};o(f)})}):this.client.incr(t,e,(u,f)=>{u||f===!1?this.client.add(t,e,l,(h,d)=>{if(h||!d)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let p=Object.assign({},s);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(t,e,n,i,p).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,l>0?c+l*1e3:-1,l,()=>{let p={consumedPoints:e,msBeforeNext:l>0?l*1e3:-1};o(p)})}):this.client.get(`${t}_expire`,(h,d)=>{if(h)a(h);else{let p=d===!1?0:d,m={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};o(m)}})})})}_get(t){return new Promise((e,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_expire`,(a,c)=>{if(a)n(a);else{let l=c===!1?0:c,u={consumedPoints:o,msBeforeNext:l>=0?Math.max(l-i,0):-1};e(u)}}):e(null)})})}_delete(t){return new Promise((e,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?e(s):this.client.del(`${t}_expire`,o=>{o?n(o):e(s)})})})}};od.exports=Tl});var ud=T((jT,ld)=>{var cd=ve();ld.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new cd(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new cd(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,e=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,e):(this.runActionAnyway&&this.limiter.consume(t,e).catch(()=>{}),n)}block(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,e):(this.runActionAnyway&&this.limiter.block(t,e).catch(()=>{}),n)}penalty(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,e):(this.runActionAnyway&&this.limiter.penalty(t,e).catch(()=>{}),n)}reward(t,e){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,e):(this.runActionAnyway&&this.limiter.reward(t,e).catch(()=>{}),n)}get(t){let e;return this.isWhiteListedSomewhere(t)?e=this.resolveWhite():this.isBlackListedSomewhere(t)&&(e=this.resolveBlack()),typeof e>"u"||this.runActionAnyway?this.limiter.get(t):e}delete(t){return this.limiter.delete(t)}}});var hd=T((eC,fd)=>{var Kx=ts();fd.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(e=>{if(!(e instanceof Kx))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,e=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,e).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(l=>{l.rejected===!0&&(c=!0)});for(let l=0;l<o.length;l++)c&&o[l].rejected===!0?a[this._limiters[l].keyPrefix]=o[l].rej:c||(a[this._limiters[l].keyPrefix]=o[l]);c?i(a):n(a)})})}}});var pd=T((nC,dd)=>{dd.exports=class extends Error{constructor(t,e){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,e&&(this.extra=e)}}});var wd=T((sC,gd)=>{var md=pd(),yd=4294967295,Cl="limiter";gd.exports=class{constructor(t,e={maxQueueSize:yd}){this._queueLimiters={KEY_DEFAULT:new Do(t,e)},this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(t=Cl){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,e=Cl){return this._queueLimiters[e]||(this._queueLimiters[e]=new Do(this._limiterFlexible,{key:e,maxQueueSize:this._maxQueueSize})),this._queueLimiters[e].removeTokens(t)}};var Do=class{constructor(t,e={maxQueueSize:yd,key:Cl}){this._key=e.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let e=this;return new Promise((n,i)=>{if(t>e._limiterFlexible.points){i(new md(`Requested tokens ${t} exceeds maximum ${e._limiterFlexible.points} tokens per interval`));return}e._queue.length>0?e._queueRequest.call(e,n,i,t):e._limiterFlexible.consume(e._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(e._queueRequest.call(e,n,i,t),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),s.msBeforeNext)))})})}_queueRequest(t,e,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:e,tokens:n}):e(new md(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let e=t._queue.shift();t._limiterFlexible.consume(t._key,e.tokens).then(n=>{e.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(e.reject(n),t._processFIFO.call(t)):(t._queue.unshift(e),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var xd=T((aC,Ed)=>{var Bl=ve();Ed.exports=class{constructor(t,e){this._rateLimiter=t,this._burstLimiter=e}_combineRes(t,e){return new Bl(t.remainingPoints,Math.min(t.msBeforeNext,e.msBeforeNext),t.consumedPoints,t.isFirstInDuration)}consume(t,e=1,n={}){return this._rateLimiter.consume(t,e,n).catch(i=>i instanceof Bl?this._burstLimiter.consume(t,e,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Bl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([e,n])=>this._combineRes(e,n))}get points(){return this._rateLimiter.points}}});var bd=T((cC,vd)=>{var Vx=U0(),qx=V0(),$x=$0(),zx=H0(),{RateLimiterClusterMaster:Hx,RateLimiterClusterMasterPM2:Gx,RateLimiterCluster:Yx}=sd(),Wx=Sl(),Qx=ad(),Xx=ud(),Zx=hd(),Jx=wd(),jx=xd(),tv=ve();vd.exports={RateLimiterRedis:Vx,RateLimiterMongo:qx,RateLimiterMySQL:$x,RateLimiterPostgres:zx,RateLimiterMemory:Wx,RateLimiterMemcache:Qx,RateLimiterClusterMaster:Hx,RateLimiterClusterMasterPM2:Gx,RateLimiterCluster:Yx,RLWrapperBlackAndWhite:Xx,RateLimiterUnion:Zx,RateLimiterQueue:Jx,BurstyRateLimiter:jx,RateLimiterRes:tv}});var Ad=T((BC,Sd)=>{"use strict";function iv(r){return r>=55296&&r<=56319}function sv(r){return r>=56320&&r<=57343}Sd.exports=function(t,e,n){if(typeof e!="string")throw new Error("Input must be string");for(var i=e.length,s=0,o,a,c=0;c<i;c+=1){if(o=e.charCodeAt(c),a=e[c],iv(o)&&sv(e.charCodeAt(c+1))&&(c+=1,a+=e[c]),s+=t(a),s===n)return e.slice(0,c+1);if(s>n)return e.slice(0,c-a.length+1)}return e}});var Id=T((DC,Rd)=>{"use strict";function ov(r){return r>=55296&&r<=56319}function av(r){return r>=56320&&r<=57343}Rd.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var e=t.length,n=0,i=null,s=null,o=0;o<e;o++)i=t.charCodeAt(o),av(i)?s!=null&&ov(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var Cd=T((LC,Td)=>{"use strict";var cv=Ad(),lv=Id();Td.exports=cv.bind(null,lv)});var Ld=T((PC,Dd)=>{"use strict";var uv=Cd(),fv=/[\/\?<>\\:\*\|"]/g,hv=/[\x00-\x1f\x80-\x9f]/g,dv=/^\.+$/,pv=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,mv=/[\. ]+$/;function Bd(r,t){if(typeof r!="string")throw new Error("Input must be string");var e=r.replace(fv,t).replace(hv,t).replace(dv,t).replace(pv,t).replace(mv,t);return uv(e,255)}Dd.exports=function(r,t){var e=t&&t.replacement||"",n=Bd(r,e);return e===""?n:Bd(n,"")}});var Nd=T((kC,Pd)=>{"use strict";Pd.exports=yv;function yv(r,t){for(var e=new Array(arguments.length-1),n=0,i=2,s=!0;i<arguments.length;)e[n++]=arguments[i++];return new Promise(function(a,c){e[n]=function(u){if(s)if(s=!1,u)c(u);else{for(var f=new Array(arguments.length-1),h=0;h<f.length;)f[h++]=arguments[h];a.apply(null,f)}};try{r.apply(t||null,e)}catch(l){s&&(s=!1,c(l))}})}});var Ud=T(Md=>{"use strict";var Oo=Md;Oo.length=function(t){var e=t.length;if(!e)return 0;for(var n=0;--e%4>1&&t.charAt(e)==="=";)++n;return Math.ceil(t.length*3)/4-n};var vi=new Array(64),Od=new Array(123);for(Fe=0;Fe<64;)Od[vi[Fe]=Fe<26?Fe+65:Fe<52?Fe+71:Fe<62?Fe-4:Fe-59|43]=Fe++;var Fe;Oo.encode=function(t,e,n){for(var i=null,s=[],o=0,a=0,c;e<n;){var l=t[e++];switch(a){case 0:s[o++]=vi[l>>2],c=(l&3)<<4,a=1;break;case 1:s[o++]=vi[c|l>>4],c=(l&15)<<2,a=2;break;case 2:s[o++]=vi[c|l>>6],s[o++]=vi[l&63],a=0;break}o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0)}return a&&(s[o++]=vi[c],s[o++]=61,a===1&&(s[o++]=61)),i?(o&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))};var kd="invalid encoding";Oo.decode=function(t,e,n){for(var i=n,s=0,o,a=0;a<t.length;){var c=t.charCodeAt(a++);if(c===61&&s>1)break;if((c=Od[c])===void 0)throw Error(kd);switch(s){case 0:o=c,s=1;break;case 1:e[n++]=o<<2|(c&48)>>4,o=c,s=2;break;case 2:e[n++]=(o&15)<<4|(c&60)>>2,o=c,s=3;break;case 3:e[n++]=(o&3)<<6|c,s=0;break}}if(s===1)throw Error(kd);return n-i};Oo.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Kd=T((MC,Fd)=>{"use strict";Fd.exports=Mo;function Mo(){this._listeners={}}Mo.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};Mo.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var n=this._listeners[t],i=0;i<n.length;)n[i].fn===e?n.splice(i,1):++i;return this};Mo.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var n=[],i=1;i<arguments.length;)n.push(arguments[i++]);for(i=0;i<e.length;)e[i].fn.apply(e[i++].ctx,n)}return this}});var Yd=T((UC,Gd)=>{"use strict";Gd.exports=Vd(Vd);function Vd(r){return typeof Float32Array<"u"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),n=e[3]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3]}function s(c,l,u){t[0]=c,l[u]=e[3],l[u+1]=e[2],l[u+2]=e[1],l[u+3]=e[0]}r.writeFloatLE=n?i:s,r.writeFloatBE=n?s:i;function o(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],t[0]}function a(c,l){return e[3]=c[l],e[2]=c[l+1],e[1]=c[l+2],e[0]=c[l+3],t[0]}r.readFloatLE=n?o:a,r.readFloatBE=n?a:o}():function(){function t(n,i,s,o){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,s,o);else if(isNaN(i))n(2143289344,s,o);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,s,o);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,s,o);else{var c=Math.floor(Math.log(i)/Math.LN2),l=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|l)>>>0,s,o)}}r.writeFloatLE=t.bind(null,qd),r.writeFloatBE=t.bind(null,$d);function e(n,i,s){var o=n(i,s),a=(o>>31)*2+1,c=o>>>23&255,l=o&8388607;return c===255?l?NaN:a*(1/0):c===0?a*1401298464324817e-60*l:a*Math.pow(2,c-150)*(l+8388608)}r.readFloatLE=e.bind(null,zd),r.readFloatBE=e.bind(null,Hd)}(),typeof Float64Array<"u"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),n=e[7]===128;function i(c,l,u){t[0]=c,l[u]=e[0],l[u+1]=e[1],l[u+2]=e[2],l[u+3]=e[3],l[u+4]=e[4],l[u+5]=e[5],l[u+6]=e[6],l[u+7]=e[7]}function s(c,l,u){t[0]=c,l[u]=e[7],l[u+1]=e[6],l[u+2]=e[5],l[u+3]=e[4],l[u+4]=e[3],l[u+5]=e[2],l[u+6]=e[1],l[u+7]=e[0]}r.writeDoubleLE=n?i:s,r.writeDoubleBE=n?s:i;function o(c,l){return e[0]=c[l],e[1]=c[l+1],e[2]=c[l+2],e[3]=c[l+3],e[4]=c[l+4],e[5]=c[l+5],e[6]=c[l+6],e[7]=c[l+7],t[0]}function a(c,l){return e[7]=c[l],e[6]=c[l+1],e[5]=c[l+2],e[4]=c[l+3],e[3]=c[l+4],e[2]=c[l+5],e[1]=c[l+6],e[0]=c[l+7],t[0]}r.readDoubleLE=n?o:a,r.readDoubleBE=n?a:o}():function(){function t(n,i,s,o,a,c){var l=o<0?1:0;if(l&&(o=-o),o===0)n(0,a,c+i),n(1/o>0?0:2147483648,a,c+s);else if(isNaN(o))n(0,a,c+i),n(2146959360,a,c+s);else if(o>17976931348623157e292)n(0,a,c+i),n((l<<31|2146435072)>>>0,a,c+s);else{var u;if(o<22250738585072014e-324)u=o/5e-324,n(u>>>0,a,c+i),n((l<<31|u/4294967296)>>>0,a,c+s);else{var f=Math.floor(Math.log(o)/Math.LN2);f===1024&&(f=1023),u=o*Math.pow(2,-f),n(u*4503599627370496>>>0,a,c+i),n((l<<31|f+1023<<20|u*1048576&1048575)>>>0,a,c+s)}}}r.writeDoubleLE=t.bind(null,qd,0,4),r.writeDoubleBE=t.bind(null,$d,4,0);function e(n,i,s,o,a){var c=n(o,a+i),l=n(o,a+s),u=(l>>31)*2+1,f=l>>>20&2047,h=4294967296*(l&1048575)+c;return f===2047?h?NaN:u*(1/0):f===0?u*5e-324*h:u*Math.pow(2,f-1075)*(h+4503599627370496)}r.readDoubleLE=e.bind(null,zd,0,4),r.readDoubleBE=e.bind(null,Hd,4,0)}(),r}function qd(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function $d(r,t,e){t[e]=r>>>24,t[e+1]=r>>>16&255,t[e+2]=r>>>8&255,t[e+3]=r&255}function zd(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function Hd(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var Wd=T((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}});var Xd=T(Qd=>{"use strict";var Pl=Qd;Pl.length=function(t){for(var e=0,n=0,i=0;i<t.length;++i)n=t.charCodeAt(i),n<128?e+=1:n<2048?e+=2:(n&64512)===55296&&(t.charCodeAt(i+1)&64512)===56320?(++i,e+=4):e+=3;return e};Pl.read=function(t,e,n){var i=n-e;if(i<1)return"";for(var s=null,o=[],a=0,c;e<n;)c=t[e++],c<128?o[a++]=c:c>191&&c<224?o[a++]=(c&31)<<6|t[e++]&63:c>239&&c<365?(c=((c&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,o[a++]=55296+(c>>10),o[a++]=56320+(c&1023)):o[a++]=(c&15)<<12|(t[e++]&63)<<6|t[e++]&63,a>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),a=0);return s?(a&&s.push(String.fromCharCode.apply(String,o.slice(0,a))),s.join("")):String.fromCharCode.apply(String,o.slice(0,a))};Pl.write=function(t,e,n){for(var i=n,s,o,a=0;a<t.length;++a)s=t.charCodeAt(a),s<128?e[n++]=s:s<2048?(e[n++]=s>>6|192,e[n++]=s&63|128):(s&64512)===55296&&((o=t.charCodeAt(a+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++a,e[n++]=s>>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=s&63|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=s&63|128);return n-i}});var Jd=T((KC,Zd)=>{"use strict";Zd.exports=gv;function gv(r,t,e){var n=e||8192,i=n>>>1,s=null,o=n;return function(c){if(c<1||c>i)return r(c);o+c>n&&(s=r(n),o=0);var l=t.call(s,o,o+=c);return o&7&&(o=(o|7)+1),l}}});var tp=T((VC,jd)=>{"use strict";jd.exports=Jt;var rs=Tn();function Jt(r,t){this.lo=r>>>0,this.hi=t>>>0}var In=Jt.zero=new Jt(0,0);In.toNumber=function(){return 0};In.zzEncode=In.zzDecode=function(){return this};In.length=function(){return 1};var wv=Jt.zeroHash="\0\0\0\0\0\0\0\0";Jt.fromNumber=function(t){if(t===0)return In;var e=t<0;e&&(t=-t);var n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Jt(n,i)};Jt.from=function(t){if(typeof t=="number")return Jt.fromNumber(t);if(rs.isString(t))if(rs.Long)t=rs.Long.fromString(t);else return Jt.fromNumber(parseInt(t,10));return t.low||t.high?new Jt(t.low>>>0,t.high>>>0):In};Jt.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var e=~this.lo+1>>>0,n=~this.hi>>>0;return e||(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296};Jt.prototype.toLong=function(t){return rs.Long?new rs.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var zr=String.prototype.charCodeAt;Jt.fromHash=function(t){return t===wv?In:new Jt((zr.call(t,0)|zr.call(t,1)<<8|zr.call(t,2)<<16|zr.call(t,3)<<24)>>>0,(zr.call(t,4)|zr.call(t,5)<<8|zr.call(t,6)<<16|zr.call(t,7)<<24)>>>0)};Jt.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};Jt.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};Jt.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};Jt.prototype.length=function(){var t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}});var Tn=T(Nl=>{"use strict";var M=Nl;M.asPromise=Nd();M.base64=Ud();M.EventEmitter=Kd();M.float=Yd();M.inquire=Wd();M.utf8=Xd();M.pool=Jd();M.LongBits=tp();M.isNode=!!(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);M.global=M.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||Nl;M.emptyArray=Object.freeze?Object.freeze([]):[];M.emptyObject=Object.freeze?Object.freeze({}):{};M.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};M.isString=function(t){return typeof t=="string"||t instanceof String};M.isObject=function(t){return t&&typeof t=="object"};M.isset=M.isSet=function(t,e){var n=t[e];return n!=null&&t.hasOwnProperty(e)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};M.Buffer=function(){try{var r=M.inquire("buffer").Buffer;return r.prototype.utf8Write?r:null}catch{return null}}();M._Buffer_from=null;M._Buffer_allocUnsafe=null;M.newBuffer=function(t){return typeof t=="number"?M.Buffer?M._Buffer_allocUnsafe(t):new M.Array(t):M.Buffer?M._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};M.Array=typeof Uint8Array<"u"?Uint8Array:Array;M.Long=M.global.dcodeIO&&M.global.dcodeIO.Long||M.global.Long||M.inquire("long");M.key2Re=/^true|false|0|1$/;M.key32Re=/^-?(?:0|[1-9][0-9]*)$/;M.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;M.longToHash=function(t){return t?M.LongBits.from(t).toHash():M.LongBits.zeroHash};M.longFromHash=function(t,e){var n=M.LongBits.fromHash(t);return M.Long?M.Long.fromBits(n.lo,n.hi,e):n.toNumber(!!e)};function ep(r,t,e){for(var n=Object.keys(t),i=0;i<n.length;++i)(r[n[i]]===void 0||!e)&&(r[n[i]]=t[n[i]]);return r}M.merge=ep;M.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function rp(r){function t(e,n){if(!(this instanceof t))return new t(e,n);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:new Error().stack||""}),n&&ep(this,n)}return t.prototype=Object.create(Error.prototype,{constructor:{value:t,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return r},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),t}M.newError=rp;M.ProtocolError=rp("ProtocolError");M.oneOfGetter=function(t){for(var e={},n=0;n<t.length;++n)e[t[n]]=1;return function(){for(var i=Object.keys(this),s=i.length-1;s>-1;--s)if(e[i[s]]===1&&this[i[s]]!==void 0&&this[i[s]]!==null)return i[s]}};M.oneOfSetter=function(t){return function(e){for(var n=0;n<t.length;++n)t[n]!==e&&delete this[t[n]]}};M.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};M._configure=function(){var r=M.Buffer;if(!r){M._Buffer_from=M._Buffer_allocUnsafe=null;return}M._Buffer_from=r.from!==Uint8Array.from&&r.from||function(e,n){return new r(e,n)},M._Buffer_allocUnsafe=r.allocUnsafe||function(e){return new r(e)}}});var Ml=T(($C,ap)=>{"use strict";ap.exports=Vt;var er=Tn(),Ol,sp=er.LongBits,Ev=er.utf8;function Ke(r,t){return RangeError("index out of range: "+r.pos+" + "+(t||1)+" > "+r.len)}function Vt(r){this.buf=r,this.pos=0,this.len=r.length}var np=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new Vt(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new Vt(t);throw Error("illegal buffer")},op=function(){return er.Buffer?function(e){return(Vt.create=function(i){return er.Buffer.isBuffer(i)?new Ol(i):np(i)})(e)}:np};Vt.create=op();Vt.prototype._slice=er.Array.prototype.subarray||er.Array.prototype.slice;Vt.prototype.uint32=function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ke(this,10);return t}}();Vt.prototype.int32=function(){return this.uint32()|0};Vt.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function kl(){var r=new sp(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Ke(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,r}if(this.len-this.pos>4){for(;t<5;++t)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;t<5;++t){if(this.pos>=this.len)throw Ke(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}Vt.prototype.bool=function(){return this.uint32()!==0};function Uo(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}Vt.prototype.fixed32=function(){if(this.pos+4>this.len)throw Ke(this,4);return Uo(this.buf,this.pos+=4)};Vt.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Ke(this,4);return Uo(this.buf,this.pos+=4)|0};function ip(){if(this.pos+8>this.len)throw Ke(this,8);return new sp(Uo(this.buf,this.pos+=4),Uo(this.buf,this.pos+=4))}Vt.prototype.float=function(){if(this.pos+4>this.len)throw Ke(this,4);var t=er.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Vt.prototype.double=function(){if(this.pos+8>this.len)throw Ke(this,4);var t=er.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};Vt.prototype.bytes=function(){var t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Ke(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(e,n):e===n?new this.buf.constructor(0):this._slice.call(this.buf,e,n)};Vt.prototype.string=function(){var t=this.bytes();return Ev.read(t,0,t.length)};Vt.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ke(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ke(this);while(this.buf[this.pos++]&128);return this};Vt.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};Vt._configure=function(r){Ol=r,Vt.create=op(),Ol._configure();var t=er.Long?"toLong":"toNumber";er.merge(Vt.prototype,{int64:function(){return kl.call(this)[t](!1)},uint64:function(){return kl.call(this)[t](!0)},sint64:function(){return kl.call(this).zzDecode()[t](!1)},fixed64:function(){return ip.call(this)[t](!0)},sfixed64:function(){return ip.call(this)[t](!1)}})}});var fp=T((zC,up)=>{"use strict";up.exports=Cn;var lp=Ml();(Cn.prototype=Object.create(lp.prototype)).constructor=Cn;var cp=Tn();function Cn(r){lp.call(this,r)}Cn._configure=function(){cp.Buffer&&(Cn.prototype._slice=cp.Buffer.prototype.slice)};Cn.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};Cn._configure()});var zl=T((HC,mp)=>{"use strict";mp.exports=nt;var De=Tn(),Ul,Fo=De.LongBits,hp=De.base64,dp=De.utf8;function ns(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function Kl(){}function xv(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function nt(){this.len=0,this.head=new ns(Kl,0,0),this.tail=this.head,this.states=null}var pp=function(){return De.Buffer?function(){return(nt.create=function(){return new Ul})()}:function(){return new nt}};nt.create=pp();nt.alloc=function(t){return new De.Array(t)};De.Array!==Array&&(nt.alloc=De.pool(nt.alloc,De.Array.prototype.subarray));nt.prototype._push=function(t,e,n){return this.tail=this.tail.next=new ns(t,e,n),this.len+=e,this};function Vl(r,t,e){t[e]=r&255}function vv(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function ql(r,t){this.len=r,this.next=void 0,this.val=t}ql.prototype=Object.create(ns.prototype);ql.prototype.fn=vv;nt.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new ql((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};nt.prototype.int32=function(t){return t<0?this._push($l,10,Fo.fromNumber(t)):this.uint32(t)};nt.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function $l(r,t,e){for(;r.hi;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}nt.prototype.uint64=function(t){var e=Fo.from(t);return this._push($l,e.length(),e)};nt.prototype.int64=nt.prototype.uint64;nt.prototype.sint64=function(t){var e=Fo.from(t).zzEncode();return this._push($l,e.length(),e)};nt.prototype.bool=function(t){return this._push(Vl,1,t?1:0)};function Fl(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}nt.prototype.fixed32=function(t){return this._push(Fl,4,t>>>0)};nt.prototype.sfixed32=nt.prototype.fixed32;nt.prototype.fixed64=function(t){var e=Fo.from(t);return this._push(Fl,4,e.lo)._push(Fl,4,e.hi)};nt.prototype.sfixed64=nt.prototype.fixed64;nt.prototype.float=function(t){return this._push(De.float.writeFloatLE,4,t)};nt.prototype.double=function(t){return this._push(De.float.writeDoubleLE,8,t)};var bv=De.Array.prototype.set?function(t,e,n){e.set(t,n)}:function(t,e,n){for(var i=0;i<t.length;++i)e[n+i]=t[i]};nt.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(Vl,1,0);if(De.isString(t)){var n=nt.alloc(e=hp.length(t));hp.decode(t,n,0),t=n}return this.uint32(e)._push(bv,e,t)};nt.prototype.string=function(t){var e=dp.length(t);return e?this.uint32(e)._push(dp.write,e,t):this._push(Vl,1,0)};nt.prototype.fork=function(){return this.states=new xv(this),this.head=this.tail=new ns(Kl,0,0),this.len=0,this};nt.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new ns(Kl,0,0),this.len=0),this};nt.prototype.ldelim=function(){var t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=t.next,this.tail=e,this.len+=n),this};nt.prototype.finish=function(){for(var t=this.head.next,e=this.constructor.alloc(this.len),n=0;t;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e};nt._configure=function(r){Ul=r,nt.create=pp(),Ul._configure()}});var wp=T((GC,gp)=>{"use strict";gp.exports=rr;var yp=zl();(rr.prototype=Object.create(yp.prototype)).constructor=rr;var Hr=Tn();function rr(){yp.call(this)}rr._configure=function(){rr.alloc=Hr._Buffer_allocUnsafe,rr.writeBytesBuffer=Hr.Buffer&&Hr.Buffer.prototype instanceof Uint8Array&&Hr.Buffer.prototype.set.name==="set"?function(t,e,n){e.set(t,n)}:function(t,e,n){if(t.copy)t.copy(e,n,0,t.length);else for(var i=0;i<t.length;)e[n++]=t[i++]}};rr.prototype.bytes=function(t){Hr.isString(t)&&(t=Hr._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(rr.writeBytesBuffer,e,t),this};function _v(r,t,e){r.length<40?Hr.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}rr.prototype.string=function(t){var e=Hr.Buffer.byteLength(t);return this.uint32(e),e&&this._push(_v,e,t),this};rr._configure()});var ft=T((u4,_p)=>{_p.exports={options:{usePureJavaScript:!1}}});var Rp=T((f4,Ap)=>{var Xl={};Ap.exports=Xl;var Sp={};Xl.encode=function(r,t,e){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(e!==void 0&&typeof e!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(r instanceof Uint8Array))n=Iv(r,t);else{var i=0,s=t.length,o=t.charAt(0),a=[0];for(i=0;i<r.length;++i){for(var c=0,l=r[i];c<a.length;++c)l+=a[c]<<8,a[c]=l%s,l=l/s|0;for(;l>0;)a.push(l%s),l=l/s|0}for(i=0;r[i]===0&&i<r.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(e){var u=new RegExp(".{1,"+e+"}","g");n=n.match(u).join(`\r
25
+ `)}return n};Xl.decode=function(r,t){if(typeof r!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var e=Sp[t];if(!e){e=Sp[t]=[];for(var n=0;n<t.length;++n)e[t.charCodeAt(n)]=n}r=r.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<r.length;n++){var a=e[r.charCodeAt(n)];if(a===void 0)return;for(var c=0,l=a;c<o.length;++c)l+=o[c]*i,o[c]=l&255,l>>=8;for(;l>0;)o.push(l&255),l>>=8}for(var u=0;r[u]===s&&u<r.length-1;++u)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Iv(r,t){var e=0,n=t.length,i=t.charAt(0),s=[0];for(e=0;e<r.length();++e){for(var o=0,a=r.at(e);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(e=0;r.at(e)===0&&e<r.length()-1;++e)c+=i;for(e=s.length-1;e>=0;--e)c+=t[s[e]];return c}});var qt=T((h4,Bp)=>{var Ip=ft(),Tp=Rp(),E=Bp.exports=Ip.util=Ip.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===r){c.stopPropagation();var l=t.slice();t.length=0,l.forEach(function(u){u()})}};var o=a,r="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(r,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var e=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(l){l()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-e>15?(e=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(r){return Object.prototype.toString.call(r)==="[object Array]"};E.isArrayBuffer=function(r){return typeof ArrayBuffer<"u"&&r instanceof ArrayBuffer};E.isArrayBufferView=function(r){return r&&E.isArrayBuffer(r.buffer)&&r.byteLength!==void 0};function is(r){if(!(r===8||r===16||r===24||r===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+r)}E.ByteBuffer=Zl;function Zl(r){if(this.data="",this.read=0,typeof r=="string")this.data=r;else if(E.isArrayBuffer(r)||E.isArrayBufferView(r))if(typeof Buffer<"u"&&r instanceof Buffer)this.data=r.toString("binary");else{var t=new Uint8Array(r);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var e=0;e<t.length;++e)this.putByte(t[e])}}else(r instanceof Zl||typeof r=="object"&&typeof r.data=="string"&&typeof r.read=="number")&&(this.data=r.data,this.read=r.read);this._constructedStringLength=0}E.ByteStringBuffer=Zl;var Tv=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(r){this._constructedStringLength+=r,this._constructedStringLength>Tv&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(r){return this.putBytes(String.fromCharCode(r))};E.ByteStringBuffer.prototype.fillWithByte=function(r,t){r=String.fromCharCode(r);for(var e=this.data;t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return this.data=e,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(r){return this.data+=r,this._optimizeConstructedString(r.length),this};E.ByteStringBuffer.prototype.putString=function(r){return this.putBytes(E.encodeUtf8(r))};E.ByteStringBuffer.prototype.putInt16=function(r){return this.putBytes(String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};E.ByteStringBuffer.prototype.putInt24=function(r){return this.putBytes(String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};E.ByteStringBuffer.prototype.putInt32=function(r){return this.putBytes(String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255))};E.ByteStringBuffer.prototype.putInt16Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(r){return this.putBytes(String.fromCharCode(r&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>24&255))};E.ByteStringBuffer.prototype.putInt=function(r,t){is(t);var e="";do t-=8,e+=String.fromCharCode(r>>t&255);while(t>0);return this.putBytes(e)};E.ByteStringBuffer.prototype.putSignedInt=function(r,t){return r<0&&(r+=2<<t-1),this.putInt(r,t)};E.ByteStringBuffer.prototype.putBuffer=function(r){return this.putBytes(r.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var r=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,r};E.ByteStringBuffer.prototype.getInt24=function(){var r=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,r};E.ByteStringBuffer.prototype.getInt32=function(){var r=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,r};E.ByteStringBuffer.prototype.getInt16Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,r};E.ByteStringBuffer.prototype.getInt24Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,r};E.ByteStringBuffer.prototype.getInt32Le=function(){var r=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,r};E.ByteStringBuffer.prototype.getInt=function(r){is(r);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),r-=8;while(r>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};E.ByteStringBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};E.ByteStringBuffer.prototype.at=function(r){return this.data.charCodeAt(this.read+r)};E.ByteStringBuffer.prototype.setAt=function(r,t){return this.data=this.data.substr(0,this.read+r)+String.fromCharCode(t)+this.data.substr(this.read+r+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var r=E.createBuffer(this.data);return r.read=this.read,r};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(r){var t=Math.max(0,this.length()-r);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.length;++t){var e=this.data.charCodeAt(t);e<16&&(r+="0"),r+=e.toString(16)}return r};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function Cv(r,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var e=E.isArrayBuffer(r),n=E.isArrayBufferView(r);if(e||n){e?this.data=new DataView(r):this.data=new DataView(r.buffer,r.byteOffset,r.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,r!=null&&this.putBytes(r),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=Cv;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(r,t){if(this.length()>=r)return this;t=Math.max(t||this.growSize,r);var e=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(e),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(r){return this.accommodate(1),this.data.setUint8(this.write++,r),this};E.DataBuffer.prototype.fillWithByte=function(r,t){this.accommodate(t);for(var e=0;e<t;++e)this.data.setUint8(r);return this};E.DataBuffer.prototype.putBytes=function(r,t){if(E.isArrayBufferView(r)){var e=new Uint8Array(r.buffer,r.byteOffset,r.byteLength),n=e.byteLength-e.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(e),this.write+=n,this}if(E.isArrayBuffer(r)){var e=new Uint8Array(r);this.accommodate(e.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(e,this.write),this.write+=e.byteLength,this}if(r instanceof E.DataBuffer||typeof r=="object"&&typeof r.read=="number"&&typeof r.write=="number"&&E.isArrayBufferView(r.data)){var e=new Uint8Array(r.data.byteLength,r.read,r.length());this.accommodate(e.byteLength);var i=new Uint8Array(r.data.byteLength,this.write);return i.set(e),this.write+=e.byteLength,this}if(r instanceof E.ByteStringBuffer&&(r=r.data,t="binary"),t=t||"binary",typeof r=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(r.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(r,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(r.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(r,s,this.write),this;if(t==="utf8"&&(r=E.encodeUtf8(r),t="binary"),t==="binary"||t==="raw")return this.accommodate(r.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(r.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+r)};E.DataBuffer.prototype.putBuffer=function(r){return this.putBytes(r),r.clear(),this};E.DataBuffer.prototype.putString=function(r){return this.putBytes(r,"utf16")};E.DataBuffer.prototype.putInt16=function(r){return this.accommodate(2),this.data.setInt16(this.write,r),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(r){return this.accommodate(3),this.data.setInt16(this.write,r>>8&65535),this.data.setInt8(this.write,r>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(r){return this.accommodate(4),this.data.setInt32(this.write,r),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(r){return this.accommodate(2),this.data.setInt16(this.write,r,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(r){return this.accommodate(3),this.data.setInt8(this.write,r>>16&255),this.data.setInt16(this.write,r>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(r){return this.accommodate(4),this.data.setInt32(this.write,r,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(r,t){is(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,r>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(r,t){return is(t),this.accommodate(t/8),r<0&&(r+=2<<t-1),this.putInt(r,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var r=this.data.getInt16(this.read);return this.read+=2,r};E.DataBuffer.prototype.getInt24=function(){var r=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,r};E.DataBuffer.prototype.getInt32=function(){var r=this.data.getInt32(this.read);return this.read+=4,r};E.DataBuffer.prototype.getInt16Le=function(){var r=this.data.getInt16(this.read,!0);return this.read+=2,r};E.DataBuffer.prototype.getInt24Le=function(){var r=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,r};E.DataBuffer.prototype.getInt32Le=function(){var r=this.data.getInt32(this.read,!0);return this.read+=4,r};E.DataBuffer.prototype.getInt=function(r){is(r);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),r-=8;while(r>0);return t};E.DataBuffer.prototype.getSignedInt=function(r){var t=this.getInt(r),e=2<<r-2;return t>=e&&(t-=e<<1),t};E.DataBuffer.prototype.getBytes=function(r){var t;return r?(r=Math.min(this.length(),r),t=this.data.slice(this.read,this.read+r),this.read+=r):r===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(r){return typeof r>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+r)};E.DataBuffer.prototype.at=function(r){return this.data.getUint8(this.read+r)};E.DataBuffer.prototype.setAt=function(r,t){return this.data.setUint8(r,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var r=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(r.byteLength);t.set(r),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(r){return this.write=Math.max(0,this.length()-r),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var r="",t=this.read;t<this.data.byteLength;++t){var e=this.data.getUint8(t);e<16&&(r+="0"),r+=e.toString(16)}return r};E.DataBuffer.prototype.toString=function(r){var t=new Uint8Array(this.data,this.read,this.length());if(r=r||"utf8",r==="binary"||r==="raw")return E.binary.raw.encode(t);if(r==="hex")return E.binary.hex.encode(t);if(r==="base64")return E.binary.base64.encode(t);if(r==="utf8")return E.text.utf8.decode(t);if(r==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+r)};E.createBuffer=function(r,t){return t=t||"raw",r!==void 0&&t==="utf8"&&(r=E.encodeUtf8(r)),new E.ByteBuffer(r)};E.fillString=function(r,t){for(var e="";t>0;)t&1&&(e+=r),t>>>=1,t>0&&(r+=r);return e};E.xorBytes=function(r,t,e){for(var n="",i="",s="",o=0,a=0;e>0;--e,++o)i=r.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(r){var t="",e=0;for(r.length&!0&&(e=1,t+=String.fromCharCode(parseInt(r[0],16)));e<r.length;e+=2)t+=String.fromCharCode(parseInt(r.substr(e,2),16));return t};E.bytesToHex=function(r){return E.createBuffer(r).toHex()};E.int32ToBytes=function(r){return String.fromCharCode(r>>24&255)+String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(r&255)};var Yr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Wr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Cp="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(r,t){for(var e="",n="",i,s,o,a=0;a<r.length;)i=r.charCodeAt(a++),s=r.charCodeAt(a++),o=r.charCodeAt(a++),e+=Yr.charAt(i>>2),e+=Yr.charAt((i&3)<<4|s>>4),isNaN(s)?e+="==":(e+=Yr.charAt((s&15)<<2|o>>6),e+=isNaN(o)?"=":Yr.charAt(o&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
26
+ `,e=e.substr(t));return n+=e,n};E.decode64=function(r){r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",e,n,i,s,o=0;o<r.length;)e=Wr[r.charCodeAt(o++)-43],n=Wr[r.charCodeAt(o++)-43],i=Wr[r.charCodeAt(o++)-43],s=Wr[r.charCodeAt(o++)-43],t+=String.fromCharCode(e<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(t+=String.fromCharCode((i&3)<<6|s)));return t};E.encodeUtf8=function(r){return unescape(encodeURIComponent(r))};E.decodeUtf8=function(r){return decodeURIComponent(escape(r))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Tp.encode,decode:Tp.decode}};E.binary.raw.encode=function(r){return String.fromCharCode.apply(null,r)};E.binary.raw.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,s=0;s<r.length;++s)n[i++]=r.charCodeAt(s);return t?i-e:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/2))),e=e||0;var i=0,s=e;for(r.length&1&&(i=1,n[s++]=parseInt(r[0],16));i<r.length;i+=2)n[s++]=parseInt(r.substr(i,2),16);return t?s-e:n};E.binary.base64.encode=function(r,t){for(var e="",n="",i,s,o,a=0;a<r.byteLength;)i=r[a++],s=r[a++],o=r[a++],e+=Yr.charAt(i>>2),e+=Yr.charAt((i&3)<<4|s>>4),isNaN(s)?e+="==":(e+=Yr.charAt((s&15)<<2|o>>6),e+=isNaN(o)?"=":Yr.charAt(o&63)),t&&e.length>t&&(n+=e.substr(0,t)+`\r
27
+ `,e=e.substr(t));return n+=e,n};E.binary.base64.decode=function(r,t,e){var n=t;n||(n=new Uint8Array(Math.ceil(r.length/4)*3)),r=r.replace(/[^A-Za-z0-9\+\/\=]/g,""),e=e||0;for(var i,s,o,a,c=0,l=e;c<r.length;)i=Wr[r.charCodeAt(c++)-43],s=Wr[r.charCodeAt(c++)-43],o=Wr[r.charCodeAt(c++)-43],a=Wr[r.charCodeAt(c++)-43],n[l++]=i<<2|s>>4,o!==64&&(n[l++]=(s&15)<<4|o>>2,a!==64&&(n[l++]=(o&3)<<6|a));return t?l-e:n.subarray(0,l)};E.binary.base58.encode=function(r,t){return E.binary.baseN.encode(r,Cp,t)};E.binary.base58.decode=function(r,t){return E.binary.baseN.decode(r,Cp,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(r,t,e){r=E.encodeUtf8(r);var n=t;n||(n=new Uint8Array(r.length)),e=e||0;for(var i=e,s=0;s<r.length;++s)n[i++]=r.charCodeAt(s);return t?i-e:n};E.text.utf8.decode=function(r){return E.decodeUtf8(String.fromCharCode.apply(null,r))};E.text.utf16.encode=function(r,t,e){var n=t;n||(n=new Uint8Array(r.length*2));var i=new Uint16Array(n.buffer);e=e||0;for(var s=e,o=e,a=0;a<r.length;++a)i[o++]=r.charCodeAt(a),s+=2;return t?s-e:n};E.text.utf16.decode=function(r){return String.fromCharCode.apply(null,new Uint16Array(r.buffer))};E.deflate=function(r,t,e){if(t=E.decode64(r.deflate(E.encode64(t)).rval),e){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(r,t,e){var n=r.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var Jl=function(r,t,e){if(!r)throw new Error("WebStorage not available.");var n;if(e===null?n=r.removeItem(t):(e=E.encode64(JSON.stringify(e)),n=r.setItem(t,e)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},jl=function(r,t){if(!r)throw new Error("WebStorage not available.");var e=r.getItem(t);if(r.init)if(e.rval===null){if(e.error){var n=new Error(e.error.message);throw n.id=e.error.id,n.name=e.error.name,n}e=null}else e=e.rval;return e!==null&&(e=JSON.parse(E.decode64(e))),e},Bv=function(r,t,e,n){var i=jl(r,t);i===null&&(i={}),i[e]=n,Jl(r,t,i)},Dv=function(r,t,e){var n=jl(r,t);return n!==null&&(n=e in n?n[e]:null),n},Lv=function(r,t,e){var n=jl(r,t);if(n!==null&&e in n){delete n[e];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Jl(r,t,n)}},Pv=function(r,t){Jl(r,t,null)},qo=function(r,t,e){var n=null;typeof e>"u"&&(e=["web","flash"]);var i,s=!1,o=null;for(var a in e){i=e[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=r.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=r.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(r,t,e,n,i){qo(Bv,arguments,i)};E.getItem=function(r,t,e,n){return qo(Dv,arguments,n)};E.removeItem=function(r,t,e,n){qo(Lv,arguments,n)};E.clearItems=function(r,t,e){qo(Pv,arguments,e)};E.isEmpty=function(r){for(var t in r)if(r.hasOwnProperty(t))return!1;return!0};E.format=function(r){for(var t=/%./g,e,n,i=0,s=[],o=0;e=t.exec(r);){n=r.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.lastIndex;var a=e[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(r.substring(o)),s.join("")};E.formatNumber=function(r,t,e,n){var i=r,s=isNaN(t=Math.abs(t))?2:t,o=e===void 0?",":e,a=n===void 0?".":n,c=i<0?"-":"",l=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",u=l.length>3?l.length%3:0;return c+(u?l.substr(0,u)+a:"")+l.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-l).toFixed(s).slice(2):"")};E.formatSize=function(r){return r>=1073741824?r=E.formatNumber(r/1073741824,2,".","")+" GiB":r>=1048576?r=E.formatNumber(r/1048576,2,".","")+" MiB":r>=1024?r=E.formatNumber(r/1024,0)+" KiB":r=E.formatNumber(r,0)+" bytes",r};E.bytesFromIP=function(r){return r.indexOf(".")!==-1?E.bytesFromIPv4(r):r.indexOf(":")!==-1?E.bytesFromIPv6(r):null};E.bytesFromIPv4=function(r){if(r=r.split("."),r.length!==4)return null;for(var t=E.createBuffer(),e=0;e<r.length;++e){var n=parseInt(r[e],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(r){var t=0;r=r.split(":").filter(function(o){return o.length===0&&++t,!0});for(var e=(8-r.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!r[i]||r[i].length===0){n.fillWithByte(0,e),e=0;continue}var s=E.hexToBytes(r[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(r){return r.length===4?E.bytesToIPv4(r):r.length===16?E.bytesToIPv6(r):null};E.bytesToIPv4=function(r){if(r.length!==4)return null;for(var t=[],e=0;e<r.length;++e)t.push(r.charCodeAt(e));return t.join(".")};E.bytesToIPv6=function(r){if(r.length!==16)return null;for(var t=[],e=[],n=0,i=0;i<r.length;i+=2){for(var s=E.bytesToHex(r[i]+r[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=e[e.length-1],a=t.length;!o||a!==o.end+1?e.push({start:a,end:a}):(o.end=a,o.end-o.start>e[n].end-e[n].start&&(n=e.length-1))}t.push(s)}if(e.length>0){var c=e[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(r,t){if(typeof r=="function"&&(t=r,r={}),r=r||{},"cores"in E&&!r.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.cores);var e=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var l=Math.floor(o.reduce(function(u,f){return u+f},0)/o.length);return E.cores=Math.max(1,l),URL.revokeObjectURL(e),t(null,E.cores)}i(c,function(u,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],l=[],u=0;u<o;++u){var f=new Worker(e);f.addEventListener("message",function(h){if(l.push(h.data),l.length===o){for(var d=0;d<o;++d)c[d].terminate();a(null,l)}}),c.push(f)}for(var u=0;u<o;++u)c[u].postMessage(u)}function s(o,a){for(var c=[],l=0;l<o;++l)for(var u=a[l],f=c[l]=[],h=0;h<o;++h)if(l!==h){var d=a[h];(u.st>d.st&&u.st<d.et||d.st>u.st&&d.st<u.et)&&f.push(h)}return c.reduce(function(p,m){return Math.max(p,m.length)},0)}}});var $o=T((d4,Dp)=>{var ss=ft();ss.pki=ss.pki||{};var tu=Dp.exports=ss.pki.oids=ss.oids=ss.oids||{};function I(r,t){tu[r]=t,tu[t]=r}function ut(r,t){tu[r]=t}I("1.2.840.113549.1.1.1","rsaEncryption");I("1.2.840.113549.1.1.4","md5WithRSAEncryption");I("1.2.840.113549.1.1.5","sha1WithRSAEncryption");I("1.2.840.113549.1.1.7","RSAES-OAEP");I("1.2.840.113549.1.1.8","mgf1");I("1.2.840.113549.1.1.9","pSpecified");I("1.2.840.113549.1.1.10","RSASSA-PSS");I("1.2.840.113549.1.1.11","sha256WithRSAEncryption");I("1.2.840.113549.1.1.12","sha384WithRSAEncryption");I("1.2.840.113549.1.1.13","sha512WithRSAEncryption");I("1.3.101.112","EdDSA25519");I("1.2.840.10040.4.3","dsa-with-sha1");I("1.3.14.3.2.7","desCBC");I("1.3.14.3.2.26","sha1");I("1.3.14.3.2.29","sha1WithRSASignature");I("2.16.840.1.101.3.4.2.1","sha256");I("2.16.840.1.101.3.4.2.2","sha384");I("2.16.840.1.101.3.4.2.3","sha512");I("2.16.840.1.101.3.4.2.4","sha224");I("2.16.840.1.101.3.4.2.5","sha512-224");I("2.16.840.1.101.3.4.2.6","sha512-256");I("1.2.840.113549.2.2","md2");I("1.2.840.113549.2.5","md5");I("1.2.840.113549.1.7.1","data");I("1.2.840.113549.1.7.2","signedData");I("1.2.840.113549.1.7.3","envelopedData");I("1.2.840.113549.1.7.4","signedAndEnvelopedData");I("1.2.840.113549.1.7.5","digestedData");I("1.2.840.113549.1.7.6","encryptedData");I("1.2.840.113549.1.9.1","emailAddress");I("1.2.840.113549.1.9.2","unstructuredName");I("1.2.840.113549.1.9.3","contentType");I("1.2.840.113549.1.9.4","messageDigest");I("1.2.840.113549.1.9.5","signingTime");I("1.2.840.113549.1.9.6","counterSignature");I("1.2.840.113549.1.9.7","challengePassword");I("1.2.840.113549.1.9.8","unstructuredAddress");I("1.2.840.113549.1.9.14","extensionRequest");I("1.2.840.113549.1.9.20","friendlyName");I("1.2.840.113549.1.9.21","localKeyId");I("1.2.840.113549.1.9.22.1","x509Certificate");I("1.2.840.113549.1.12.10.1.1","keyBag");I("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");I("1.2.840.113549.1.12.10.1.3","certBag");I("1.2.840.113549.1.12.10.1.4","crlBag");I("1.2.840.113549.1.12.10.1.5","secretBag");I("1.2.840.113549.1.12.10.1.6","safeContentsBag");I("1.2.840.113549.1.5.13","pkcs5PBES2");I("1.2.840.113549.1.5.12","pkcs5PBKDF2");I("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");I("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");I("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");I("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");I("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");I("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");I("1.2.840.113549.2.7","hmacWithSHA1");I("1.2.840.113549.2.8","hmacWithSHA224");I("1.2.840.113549.2.9","hmacWithSHA256");I("1.2.840.113549.2.10","hmacWithSHA384");I("1.2.840.113549.2.11","hmacWithSHA512");I("1.2.840.113549.3.7","des-EDE3-CBC");I("2.16.840.1.101.3.4.1.2","aes128-CBC");I("2.16.840.1.101.3.4.1.22","aes192-CBC");I("2.16.840.1.101.3.4.1.42","aes256-CBC");I("2.5.4.3","commonName");I("2.5.4.4","surname");I("2.5.4.5","serialNumber");I("2.5.4.6","countryName");I("2.5.4.7","localityName");I("2.5.4.8","stateOrProvinceName");I("2.5.4.9","streetAddress");I("2.5.4.10","organizationName");I("2.5.4.11","organizationalUnitName");I("2.5.4.12","title");I("2.5.4.13","description");I("2.5.4.15","businessCategory");I("2.5.4.17","postalCode");I("2.5.4.42","givenName");I("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");I("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");I("2.16.840.1.113730.1.1","nsCertType");I("2.16.840.1.113730.1.13","nsComment");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");I("2.5.29.14","subjectKeyIdentifier");I("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");I("2.5.29.17","subjectAltName");I("2.5.29.18","issuerAltName");I("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");I("2.5.29.31","cRLDistributionPoints");I("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");I("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");I("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("2.5.29.54","inhibitAnyPolicy");I("1.3.6.1.4.1.11129.2.4.2","timestampList");I("1.3.6.1.5.5.7.1.1","authorityInfoAccess");I("1.3.6.1.5.5.7.3.1","serverAuth");I("1.3.6.1.5.5.7.3.2","clientAuth");I("1.3.6.1.5.5.7.3.3","codeSigning");I("1.3.6.1.5.5.7.3.4","emailProtection");I("1.3.6.1.5.5.7.3.8","timeStamping")});var as=T((p4,Pp)=>{var _t=ft();qt();$o();var D=Pp.exports=_t.asn1=_t.asn1||{};D.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};D.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};D.create=function(r,t,e,n,i){if(_t.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:r,type:t,constructed:e,composed:e||_t.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=D.copy(a)),a};D.copy=function(r,t){var e;if(_t.util.isArray(r)){e=[];for(var n=0;n<r.length;++n)e.push(D.copy(r[n],t));return e}return typeof r=="string"?r:(e={tagClass:r.tagClass,type:r.type,constructed:r.constructed,composed:r.composed,value:D.copy(r.value,t)},t&&!t.excludeBitStringContents&&(e.bitStringContents=r.bitStringContents),e)};D.equals=function(r,t,e){if(_t.util.isArray(r)){if(!_t.util.isArray(t)||r.length!==t.length)return!1;for(var n=0;n<r.length;++n)if(!D.equals(r[n],t[n]))return!1;return!0}if(typeof r!=typeof t)return!1;if(typeof r=="string")return r===t;var i=r.tagClass===t.tagClass&&r.type===t.type&&r.constructed===t.constructed&&r.composed===t.composed&&D.equals(r.value,t.value);return e&&e.includeBitStringContents&&(i=i&&r.bitStringContents===t.bitStringContents),i};D.getBerValueLength=function(r){var t=r.getByte();if(t!==128){var e,n=t&128;return n?e=r.getInt((t&127)<<3):e=t,e}};function os(r,t,e){if(e>t){var n=new Error("Too few bytes to parse DER.");throw n.available=r.length(),n.remaining=t,n.requested=e,n}}var Nv=function(r,t){var e=r.getByte();if(t--,e!==128){var n,i=e&128;if(!i)n=e;else{var s=e&127;os(r,t,s),n=r.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};D.fromDer=function(r,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof r=="string"&&(r=_t.util.createBuffer(r));var e=r.length(),n=zo(r,r.length(),0,t);if(t.parseAllBytes&&r.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=e,i.remaining=r.length(),i}return n};function zo(r,t,e,n){var i;os(r,t,2);var s=r.getByte();t--;var o=s&192,a=s&31;i=r.length();var c=Nv(r,t);if(t-=i-r.length(),c!==void 0&&c>t){if(n.strict){var l=new Error("Too few bytes to read ASN.1 value.");throw l.available=r.length(),l.remaining=t,l.requested=c,l}c=t}var u,f,h=(s&32)===32;if(h)if(u=[],c===void 0)for(;;){if(os(r,t,2),r.bytes(2)===String.fromCharCode(0,0)){r.getBytes(2),t-=2;break}i=r.length(),u.push(zo(r,t,e+1,n)),t-=i-r.length()}else for(;c>0;)i=r.length(),u.push(zo(r,c,e+1,n)),t-=i-r.length(),c-=i-r.length();if(u===void 0&&o===D.Class.UNIVERSAL&&a===D.Type.BITSTRING&&(f=r.bytes(c)),u===void 0&&n.decodeBitStrings&&o===D.Class.UNIVERSAL&&a===D.Type.BITSTRING&&c>1){var d=r.read,p=t,m=0;if(a===D.Type.BITSTRING&&(os(r,t,1),m=r.getByte(),t--),m===0)try{i=r.length();var y={strict:!0,decodeBitStrings:!0},g=zo(r,t,e+1,y),x=i-r.length();t-=x,a==D.Type.BITSTRING&&x++;var _=g.tagClass;x===c&&(_===D.Class.UNIVERSAL||_===D.Class.CONTEXT_SPECIFIC)&&(u=[g])}catch{}u===void 0&&(r.read=d,t=p)}if(u===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===D.Type.BMPSTRING)for(u="";c>0;c-=2)os(r,t,2),u+=String.fromCharCode(r.getInt16()),t-=2;else u=r.getBytes(c),t-=c}var O=f===void 0?null:{bitStringContents:f};return D.create(o,a,h,u,O)}D.toDer=function(r){var t=_t.util.createBuffer(),e=r.tagClass|r.type,n=_t.util.createBuffer(),i=!1;if("bitStringContents"in r&&(i=!0,r.original&&(i=D.equals(r,r.original))),i)n.putBytes(r.bitStringContents);else if(r.composed){r.constructed?e|=32:n.putByte(0);for(var s=0;s<r.value.length;++s)r.value[s]!==void 0&&n.putBuffer(D.toDer(r.value[s]))}else if(r.type===D.Type.BMPSTRING)for(var s=0;s<r.value.length;++s)n.putInt16(r.value.charCodeAt(s));else r.type===D.Type.INTEGER&&r.value.length>1&&(r.value.charCodeAt(0)===0&&!(r.value.charCodeAt(1)&128)||r.value.charCodeAt(0)===255&&(r.value.charCodeAt(1)&128)===128)?n.putBytes(r.value.substr(1)):n.putBytes(r.value);if(t.putByte(e),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};D.oidToDer=function(r){var t=r.split("."),e=_t.util.createBuffer();e.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)e.putByte(i[c])}return e};D.derToOid=function(r){var t;typeof r=="string"&&(r=_t.util.createBuffer(r));var e=r.getByte();t=Math.floor(e/40)+"."+e%40;for(var n=0;r.length()>0;)e=r.getByte(),n=n<<7,e&128?n+=e&127:(t+="."+(n+e),n=0);return t};D.utcTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,2),10);e=e>=50?1900+e:2e3+e;var n=parseInt(r.substr(2,2),10)-1,i=parseInt(r.substr(4,2),10),s=parseInt(r.substr(6,2),10),o=parseInt(r.substr(8,2),10),a=0;if(r.length>11){var c=r.charAt(10),l=10;c!=="+"&&c!=="-"&&(a=parseInt(r.substr(10,2),10),l+=2)}if(t.setUTCFullYear(e,n,i),t.setUTCHours(s,o,a,0),l&&(c=r.charAt(l),c==="+"||c==="-")){var u=parseInt(r.substr(l+1,2),10),f=parseInt(r.substr(l+4,2),10),h=u*60+f;h*=6e4,c==="+"?t.setTime(+t-h):t.setTime(+t+h)}return t};D.generalizedTimeToDate=function(r){var t=new Date,e=parseInt(r.substr(0,4),10),n=parseInt(r.substr(4,2),10)-1,i=parseInt(r.substr(6,2),10),s=parseInt(r.substr(8,2),10),o=parseInt(r.substr(10,2),10),a=parseInt(r.substr(12,2),10),c=0,l=0,u=!1;r.charAt(r.length-1)==="Z"&&(u=!0);var f=r.length-5,h=r.charAt(f);if(h==="+"||h==="-"){var d=parseInt(r.substr(f+1,2),10),p=parseInt(r.substr(f+4,2),10);l=d*60+p,l*=6e4,h==="+"&&(l*=-1),u=!0}return r.charAt(14)==="."&&(c=parseFloat(r.substr(14),10)*1e3),u?(t.setUTCFullYear(e,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+l)):(t.setFullYear(e,n,i),t.setHours(s,o,a,c)),t};D.dateToUtcTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push((""+r.getUTCFullYear()).substr(2)),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};D.dateToGeneralizedTime=function(r){if(typeof r=="string")return r;var t="",e=[];e.push(""+r.getUTCFullYear()),e.push(""+(r.getUTCMonth()+1)),e.push(""+r.getUTCDate()),e.push(""+r.getUTCHours()),e.push(""+r.getUTCMinutes()),e.push(""+r.getUTCSeconds());for(var n=0;n<e.length;++n)e[n].length<2&&(t+="0"),t+=e[n];return t+="Z",t};D.integerToDer=function(r){var t=_t.util.createBuffer();if(r>=-128&&r<128)return t.putSignedInt(r,8);if(r>=-32768&&r<32768)return t.putSignedInt(r,16);if(r>=-8388608&&r<8388608)return t.putSignedInt(r,24);if(r>=-2147483648&&r<2147483648)return t.putSignedInt(r,32);var e=new Error("Integer too large; max is 32-bits.");throw e.integer=r,e};D.derToInteger=function(r){typeof r=="string"&&(r=_t.util.createBuffer(r));var t=r.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return r.getSignedInt(t)};D.validate=function(r,t,e,n){var i=!1;if((r.tagClass===t.tagClass||typeof t.tagClass>"u")&&(r.type===t.type||typeof t.type>"u"))if(r.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&_t.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,r.value[s]&&(i=D.validate(r.value[s],t.value[o],e,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+r.value.length+'"');if(i&&e&&(t.capture&&(e[t.capture]=r.value),t.captureAsn1&&(e[t.captureAsn1]=r),t.captureBitStringContents&&"bitStringContents"in r&&(e[t.captureBitStringContents]=r.bitStringContents),t.captureBitStringValue&&"bitStringContents"in r)){var a;if(r.bitStringContents.length<2)e[t.captureBitStringValue]="";else{var c=r.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");e[t.captureBitStringValue]=r.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+r.constructed+'"');else n&&(r.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+r.tagClass+'"'),r.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+r.type+'"'));return i};var Lp=/[^\\u0000-\\u00ff]/;D.prettyPrint=function(r,t,e){var n="";t=t||0,e=e||2,t>0&&(n+=`
28
+ `);for(var i="",s=0;s<t*e;++s)i+=" ";switch(n+=i+"Tag: ",r.tagClass){case D.Class.UNIVERSAL:n+="Universal:";break;case D.Class.APPLICATION:n+="Application:";break;case D.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case D.Class.PRIVATE:n+="Private:";break}if(r.tagClass===D.Class.UNIVERSAL)switch(n+=r.type,r.type){case D.Type.NONE:n+=" (None)";break;case D.Type.BOOLEAN:n+=" (Boolean)";break;case D.Type.INTEGER:n+=" (Integer)";break;case D.Type.BITSTRING:n+=" (Bit string)";break;case D.Type.OCTETSTRING:n+=" (Octet string)";break;case D.Type.NULL:n+=" (Null)";break;case D.Type.OID:n+=" (Object Identifier)";break;case D.Type.ODESC:n+=" (Object Descriptor)";break;case D.Type.EXTERNAL:n+=" (External or Instance of)";break;case D.Type.REAL:n+=" (Real)";break;case D.Type.ENUMERATED:n+=" (Enumerated)";break;case D.Type.EMBEDDED:n+=" (Embedded PDV)";break;case D.Type.UTF8:n+=" (UTF8)";break;case D.Type.ROID:n+=" (Relative Object Identifier)";break;case D.Type.SEQUENCE:n+=" (Sequence)";break;case D.Type.SET:n+=" (Set)";break;case D.Type.PRINTABLESTRING:n+=" (Printable String)";break;case D.Type.IA5String:n+=" (IA5String (ASCII))";break;case D.Type.UTCTIME:n+=" (UTC time)";break;case D.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case D.Type.BMPSTRING:n+=" (BMP String)";break}else n+=r.type;if(n+=`
29
+ `,n+=i+"Constructed: "+r.constructed+`
30
+ `,r.composed){for(var o=0,a="",s=0;s<r.value.length;++s)r.value[s]!==void 0&&(o+=1,a+=D.prettyPrint(r.value[s],t+1,e),s+1<r.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",r.type===D.Type.OID){var c=D.derToOid(r.value);n+=c,_t.pki&&_t.pki.oids&&c in _t.pki.oids&&(n+=" ("+_t.pki.oids[c]+") ")}if(r.type===D.Type.INTEGER)try{n+=D.derToInteger(r.value)}catch{n+="0x"+_t.util.bytesToHex(r.value)}else if(r.type===D.Type.BITSTRING){if(r.value.length>1?n+="0x"+_t.util.bytesToHex(r.value.slice(1)):n+="(none)",r.value.length>0){var l=r.value.charCodeAt(0);l==1?n+=" (1 unused bit shown)":l>1&&(n+=" ("+l+" unused bits shown)")}}else if(r.type===D.Type.OCTETSTRING)Lp.test(r.value)||(n+="("+r.value+") "),n+="0x"+_t.util.bytesToHex(r.value);else if(r.type===D.Type.UTF8)try{n+=_t.util.decodeUtf8(r.value)}catch(u){if(u.message==="URI malformed")n+="0x"+_t.util.bytesToHex(r.value)+" (malformed UTF8)";else throw u}else r.type===D.Type.PRINTABLESTRING||r.type===D.Type.IA5String?n+=r.value:Lp.test(r.value)?n+="0x"+_t.util.bytesToHex(r.value):r.value.length===0?n+="[null]":n+=r.value}return n}});var ru=T((m4,Np)=>{var jt=ft();qt();Np.exports=jt.cipher=jt.cipher||{};jt.cipher.algorithms=jt.cipher.algorithms||{};jt.cipher.createCipher=function(r,t){var e=r;if(typeof e=="string"&&(e=jt.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new jt.cipher.BlockCipher({algorithm:e,key:t,decrypt:!1})};jt.cipher.createDecipher=function(r,t){var e=r;if(typeof e=="string"&&(e=jt.cipher.getAlgorithm(e),e&&(e=e())),!e)throw new Error("Unsupported algorithm: "+r);return new jt.cipher.BlockCipher({algorithm:e,key:t,decrypt:!0})};jt.cipher.registerAlgorithm=function(r,t){r=r.toUpperCase(),jt.cipher.algorithms[r]=t};jt.cipher.getAlgorithm=function(r){return r=r.toUpperCase(),r in jt.cipher.algorithms?jt.cipher.algorithms[r]:null};var eu=jt.cipher.BlockCipher=function(r){this.algorithm=r.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=r.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=r.decrypt,this.algorithm.initialize(r)};eu.prototype.start=function(r){r=r||{};var t={};for(var e in r)t[e]=r[e];t.decrypt=this._decrypt,this._finish=!1,this._input=jt.util.createBuffer(),this.output=r.output||jt.util.createBuffer(),this.mode.start(t)};eu.prototype.update=function(r){for(r&&this._input.putBuffer(r);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};eu.prototype.finish=function(r){r&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(e){return r(this.blockSize,e,!1)},this.mode.unpad=function(e){return r(this.blockSize,e,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var iu=T((y4,kp)=>{var te=ft();qt();te.cipher=te.cipher||{};var Q=kp.exports=te.cipher.modes=te.cipher.modes||{};Q.ecb=function(r){r=r||{},this.name="ECB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Q.ecb.prototype.start=function(r){};Q.ecb.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Q.ecb.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};Q.ecb.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Q.ecb.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Q.cbc=function(r){r=r||{},this.name="CBC",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Q.cbc.prototype.start=function(r){if(r.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in r)this._iv=Ho(r.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Q.cbc.prototype.encrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^r.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};Q.cbc.prototype.decrypt=function(r,t,e){if(r.length()<this.blockSize&&!(e&&r.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=r.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};Q.cbc.prototype.pad=function(r,t){var e=r.length()===this.blockSize?this.blockSize:this.blockSize-r.length();return r.fillWithByte(e,e),!0};Q.cbc.prototype.unpad=function(r,t){if(t.overflow>0)return!1;var e=r.length(),n=r.at(e-1);return n>this.blockSize<<2?!1:(r.truncate(n),!0)};Q.cfb=function(r){r=r||{},this.name="CFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0};Q.cfb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Ho(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.cfb.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=r.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.cfb.prototype.decrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=r.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=r.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.ofb=function(r){r=r||{},this.name="OFB",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0};Q.ofb.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Ho(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.ofb.prototype.encrypt=function(r,t,e){var n=r.length();if(r.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(r.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(s>0)r.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Q.ofb.prototype.decrypt=Q.ofb.prototype.encrypt;Q.ctr=function(r){r=r||{},this.name="CTR",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0};Q.ctr.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");this._iv=Ho(r.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Q.ctr.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(r.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(s>0&&(r.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!e)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Go(this._inBlock)};Q.ctr.prototype.decrypt=Q.ctr.prototype.encrypt;Q.gcm=function(r){r=r||{},this.name="GCM",this.cipher=r.cipher,this.blockSize=r.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=te.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Q.gcm.prototype.start=function(r){if(!("iv"in r))throw new Error("Invalid IV parameter.");var t=te.util.createBuffer(r.iv);this._cipherLength=0;var e;if("additionalData"in r?e=te.util.createBuffer(r.additionalData):e=te.util.createBuffer(),"tagLength"in r?this._tagLength=r.tagLength:this._tagLength=128,this._tag=null,r.decrypt&&(this._tag=te.util.createBuffer(r.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(nu(n*8)))}this._inBlock=this._j0.slice(0),Go(this._inBlock),this._partialBytes=0,e=te.util.createBuffer(e),this._aDataLength=nu(e.length()*8);var i=e.length()%this.blockSize;for(i&&e.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];e.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()])};Q.gcm.prototype.encrypt=function(r,t,e){var n=r.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=r.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(r.getInt32()^this._outBlock[i]);if(s<=0||e){if(e){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!e)return r.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Go(this._inBlock)};Q.gcm.prototype.decrypt=function(r,t,e){var n=r.length();if(n<this.blockSize&&!(e&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Go(this._inBlock),this._hashBlock[0]=r.getInt32(),this._hashBlock[1]=r.getInt32(),this._hashBlock[2]=r.getInt32(),this._hashBlock[3]=r.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};Q.gcm.prototype.afterFinish=function(r,t){var e=!0;t.decrypt&&t.overflow&&r.truncate(this.blockSize-t.overflow),this.tag=te.util.createBuffer();var n=this._aDataLength.concat(nu(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(e=!1),e};Q.gcm.prototype.multiply=function(r,t){for(var e=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=r[i/32|0]&1<<31-i%32;s&&(e[0]^=n[0],e[1]^=n[1],e[2]^=n[2],e[3]^=n[3]),this.pow(n,n)}return e};Q.gcm.prototype.pow=function(r,t){for(var e=r[3]&1,n=3;n>0;--n)t[n]=r[n]>>>1|(r[n-1]&1)<<31;t[0]=r[0]>>>1,e&&(t[0]^=this._R)};Q.gcm.prototype.tableMultiply=function(r){for(var t=[0,0,0,0],e=0;e<32;++e){var n=e/8|0,i=r[n]>>>(7-e%8)*4&15,s=this._m[e][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};Q.gcm.prototype.ghash=function(r,t,e){return t[0]^=e[0],t[1]^=e[1],t[2]^=e[2],t[3]^=e[3],this.tableMultiply(t)};Q.gcm.prototype.generateHashTable=function(r,t){for(var e=8/t,n=4*e,i=16*e,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,l=(n-1-o%n)*t;a[c]=1<<t-1<<l,s[o]=this.generateSubHashTable(this.multiply(a,r),t)}return s};Q.gcm.prototype.generateSubHashTable=function(r,t){var e=1<<t,n=e>>>1,i=new Array(e);i[n]=r.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<e;++s){var l=i[s^n];i[s]=[r[0]^l[0],r[1]^l[1],r[2]^l[2],r[3]^l[3]]}return i};function Ho(r,t){if(typeof r=="string"&&(r=te.util.createBuffer(r)),te.util.isArray(r)&&r.length>4){var e=r;r=te.util.createBuffer();for(var n=0;n<e.length;++n)r.putByte(e[n])}if(r.length()<t)throw new Error("Invalid IV length; got "+r.length()+" bytes and expected "+t+" bytes.");if(!te.util.isArray(r)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(r.getInt32());r=i}return r}function Go(r){r[r.length-1]=r[r.length-1]+1&4294967295}function nu(r){return[r/4294967296|0,r&4294967295]}});var Wo=T((g4,Fp)=>{var vt=ft();ru();iu();qt();Fp.exports=vt.aes=vt.aes||{};vt.aes.startEncrypting=function(r,t,e,n){var i=Yo({key:r,output:e,decrypt:!1,mode:n});return i.start(t),i};vt.aes.createEncryptionCipher=function(r,t){return Yo({key:r,output:null,decrypt:!1,mode:t})};vt.aes.startDecrypting=function(r,t,e,n){var i=Yo({key:r,output:e,decrypt:!0,mode:n});return i.start(t),i};vt.aes.createDecryptionCipher=function(r,t){return Yo({key:r,output:null,decrypt:!0,mode:t})};vt.aes.Algorithm=function(r,t){au||Mp();var e=this;e.name=r,e.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return ou(e._w,n,i,!1)},decrypt:function(n,i){return ou(e._w,n,i,!0)}}}),e._init=!1};vt.aes.Algorithm.prototype.initialize=function(r){if(!this._init){var t=r.key,e;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=vt.util.createBuffer(t);else if(vt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){e=t,t=vt.util.createBuffer();for(var n=0;n<e.length;++n)t.putByte(e[n])}if(!vt.util.isArray(t)){e=t,t=[];var i=e.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(e.getInt32())}}if(!vt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Up(t,r.decrypt&&!o),this._init=!0}};vt.aes._expandKey=function(r,t){return au||Mp(),Up(r,t)};vt.aes._updateBlock=ou;Si("AES-ECB",vt.cipher.modes.ecb);Si("AES-CBC",vt.cipher.modes.cbc);Si("AES-CFB",vt.cipher.modes.cfb);Si("AES-OFB",vt.cipher.modes.ofb);Si("AES-CTR",vt.cipher.modes.ctr);Si("AES-GCM",vt.cipher.modes.gcm);function Si(r,t){var e=function(){return new vt.aes.Algorithm(r,t)};vt.cipher.registerAlgorithm(r,e)}var au=!1,_i=4,ce,su,Op,Bn,Ve;function Mp(){au=!0,Op=[0,1,2,4,8,16,32,64,128,27,54];for(var r=new Array(256),t=0;t<128;++t)r[t]=t<<1,r[t+128]=t+128<<1^283;ce=new Array(256),su=new Array(256),Bn=new Array(4),Ve=new Array(4);for(var t=0;t<4;++t)Bn[t]=new Array(256),Ve[t]=new Array(256);for(var e=0,n=0,i,s,o,a,c,l,u,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,ce[e]=a,su[a]=e,c=r[a],i=r[e],s=r[i],o=r[s],l=c<<24^a<<16^a<<8^(a^c),u=(i^s^o)<<24^(e^o)<<16^(e^s^o)<<8^(e^i^o);for(var f=0;f<4;++f)Bn[f][e]=l,Ve[f][a]=u,l=l<<24|l>>>8,u=u<<24|u>>>8;e===0?e=n=1:(e=i^r[r[r[i^o]]],n^=r[r[n]])}}function Up(r,t){for(var e=r.slice(0),n,i=1,s=e.length,o=s+6+1,a=_i*o,c=s;c<a;++c)n=e[c-1],c%s===0?(n=ce[n>>>16&255]<<24^ce[n>>>8&255]<<16^ce[n&255]<<8^ce[n>>>24]^Op[i]<<24,i++):s>6&&c%s===4&&(n=ce[n>>>24]<<24^ce[n>>>16&255]<<16^ce[n>>>8&255]<<8^ce[n&255]),e[c]=e[c-s]^n;if(t){var l,u=Ve[0],f=Ve[1],h=Ve[2],d=Ve[3],p=e.slice(0);a=e.length;for(var c=0,m=a-_i;c<a;c+=_i,m-=_i)if(c===0||c===a-_i)p[c]=e[m],p[c+1]=e[m+3],p[c+2]=e[m+2],p[c+3]=e[m+1];else for(var y=0;y<_i;++y)l=e[m+y],p[c+(3&-y)]=u[ce[l>>>24]]^f[ce[l>>>16&255]]^h[ce[l>>>8&255]]^d[ce[l&255]];e=p}return e}function ou(r,t,e,n){var i=r.length/4-1,s,o,a,c,l;n?(s=Ve[0],o=Ve[1],a=Ve[2],c=Ve[3],l=su):(s=Bn[0],o=Bn[1],a=Bn[2],c=Bn[3],l=ce);var u,f,h,d,p,m,y;u=t[0]^r[0],f=t[n?3:1]^r[1],h=t[2]^r[2],d=t[n?1:3]^r[3];for(var g=3,x=1;x<i;++x)p=s[u>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[d&255]^r[++g],m=s[f>>>24]^o[h>>>16&255]^a[d>>>8&255]^c[u&255]^r[++g],y=s[h>>>24]^o[d>>>16&255]^a[u>>>8&255]^c[f&255]^r[++g],d=s[d>>>24]^o[u>>>16&255]^a[f>>>8&255]^c[h&255]^r[++g],u=p,f=m,h=y;e[0]=l[u>>>24]<<24^l[f>>>16&255]<<16^l[h>>>8&255]<<8^l[d&255]^r[++g],e[n?3:1]=l[f>>>24]<<24^l[h>>>16&255]<<16^l[d>>>8&255]<<8^l[u&255]^r[++g],e[2]=l[h>>>24]<<24^l[d>>>16&255]<<16^l[u>>>8&255]<<8^l[f&255]^r[++g],e[n?1:3]=l[d>>>24]<<24^l[u>>>16&255]<<16^l[f>>>8&255]<<8^l[h&255]^r[++g]}function Yo(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="AES-"+t,n;r.decrypt?n=vt.cipher.createDecipher(e,r.key):n=vt.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof vt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var qp=T((w4,Vp)=>{var Ct=ft();ru();iu();qt();Vp.exports=Ct.des=Ct.des||{};Ct.des.startEncrypting=function(r,t,e,n){var i=Qo({key:r,output:e,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Ct.des.createEncryptionCipher=function(r,t){return Qo({key:r,output:null,decrypt:!1,mode:t})};Ct.des.startDecrypting=function(r,t,e,n){var i=Qo({key:r,output:e,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Ct.des.createDecryptionCipher=function(r,t){return Qo({key:r,output:null,decrypt:!0,mode:t})};Ct.des.Algorithm=function(r,t){var e=this;e.name=r,e.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Kp(e._keys,n,i,!1)},decrypt:function(n,i){return Kp(e._keys,n,i,!0)}}}),e._init=!1};Ct.des.Algorithm.prototype.initialize=function(r){if(!this._init){var t=Ct.util.createBuffer(r.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=$v(t),this._init=!0}};sr("DES-ECB",Ct.cipher.modes.ecb);sr("DES-CBC",Ct.cipher.modes.cbc);sr("DES-CFB",Ct.cipher.modes.cfb);sr("DES-OFB",Ct.cipher.modes.ofb);sr("DES-CTR",Ct.cipher.modes.ctr);sr("3DES-ECB",Ct.cipher.modes.ecb);sr("3DES-CBC",Ct.cipher.modes.cbc);sr("3DES-CFB",Ct.cipher.modes.cfb);sr("3DES-OFB",Ct.cipher.modes.ofb);sr("3DES-CTR",Ct.cipher.modes.ctr);function sr(r,t){var e=function(){return new Ct.des.Algorithm(r,t)};Ct.cipher.registerAlgorithm(r,e)}var kv=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Ov=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],Mv=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Uv=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Fv=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Kv=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Vv=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],qv=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function $v(r){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],e=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],u=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],h=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],d=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=r.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,_,O=0;O<m;O++){var C=r.getInt32(),B=r.getInt32();_=(C>>>4^B)&252645135,B^=_,C^=_<<4,_=(B>>>-16^C)&65535,C^=_,B^=_<<-16,_=(C>>>2^B)&858993459,B^=_,C^=_<<2,_=(B>>>-16^C)&65535,C^=_,B^=_<<-16,_=(C>>>1^B)&1431655765,B^=_,C^=_<<1,_=(B>>>8^C)&16711935,C^=_,B^=_<<8,_=(C>>>1^B)&1431655765,B^=_,C^=_<<1,_=C<<8|B>>>20&240,C=B<<24|B<<8&16711680|B>>>8&65280|B>>>24&240,B=_;for(var X=0;X<g.length;++X){g[X]?(C=C<<2|C>>>26,B=B<<2|B>>>26):(C=C<<1|C>>>27,B=B<<1|B>>>27),C&=-15,B&=-15;var J=t[C>>>28]|e[C>>>24&15]|n[C>>>20&15]|i[C>>>16&15]|s[C>>>12&15]|o[C>>>8&15]|a[C>>>4&15],Xt=c[B>>>28]|l[B>>>24&15]|u[B>>>20&15]|f[B>>>16&15]|h[B>>>12&15]|d[B>>>8&15]|p[B>>>4&15];_=(Xt>>>16^J)&65535,y[x++]=J^_,y[x++]=Xt^_<<16}}return y}function Kp(r,t,e,n){var i=r.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=t[0],c=t[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var l=0;l<i;l+=3){for(var u=s[l+1],f=s[l+2],h=s[l];h!=u;h+=f){var d=c^r[h],p=(c>>>4|c<<28)^r[h+1];o=a,a=c,c=o^(Ov[d>>>24&63]|Uv[d>>>16&63]|Kv[d>>>8&63]|qv[d&63]|kv[p>>>24&63]|Mv[p>>>16&63]|Fv[p>>>8&63]|Vv[p&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,e[0]=a,e[1]=c}function Qo(r){r=r||{};var t=(r.mode||"CBC").toUpperCase(),e="DES-"+t,n;r.decrypt?n=Ct.cipher.createDecipher(e,r.key):n=Ct.cipher.createCipher(e,r.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Ct.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Dn=T((E4,$p)=>{var Xo=ft();$p.exports=Xo.md=Xo.md||{};Xo.md.algorithms=Xo.md.algorithms||{}});var Hp=T((x4,zp)=>{var Tr=ft();Dn();qt();var zv=zp.exports=Tr.hmac=Tr.hmac||{};zv.create=function(){var r=null,t=null,e=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Tr.md.algorithms)t=Tr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=r;else{if(typeof o=="string")o=Tr.util.createBuffer(o);else if(Tr.util.isArray(o)){var a=o;o=Tr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var l=o.length();l>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),e=Tr.util.createBuffer(),n=Tr.util.createBuffer(),l=o.length();for(var c=0;c<l;++c){var a=o.at(c);e.putByte(54^a),n.putByte(92^a)}if(l<t.blockLength)for(var a=t.blockLength-l,c=0;c<a;++c)e.putByte(54),n.putByte(92);r=o,e=e.bytes(),n=n.bytes()}t.start(),t.update(e)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var cu=T((v4,Gp)=>{var le=ft();Hp();Dn();qt();var Hv=le.pkcs5=le.pkcs5||{},Cr;le.util.isNodejs&&!le.options.usePureJavaScript&&(Cr=Rn());Gp.exports=le.pbkdf2=Hv.pbkdf2=function(r,t,e,n,i,s){if(typeof i=="function"&&(s=i,i=null),le.util.isNodejs&&!le.options.usePureJavaScript&&Cr.pbkdf2&&(i===null||typeof i!="object")&&(Cr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),r=Buffer.from(r,"binary"),t=Buffer.from(t,"binary"),s?Cr.pbkdf2Sync.length===4?Cr.pbkdf2(r,t,e,n,function(_,O){if(_)return s(_);s(null,O.toString("binary"))}):Cr.pbkdf2(r,t,e,n,i,function(_,O){if(_)return s(_);s(null,O.toString("binary"))}):Cr.pbkdf2Sync.length===4?Cr.pbkdf2Sync(r,t,e,n).toString("binary"):Cr.pbkdf2Sync(r,t,e,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in le.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=le.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),l=n-(c-1)*o,u=le.hmac.create();u.start(i,r);var f="",h,d,p;if(!s){for(var m=1;m<=c;++m){u.start(null,null),u.update(t),u.update(le.util.int32ToBytes(m)),h=p=u.digest().getBytes();for(var y=2;y<=e;++y)u.start(null,null),u.update(p),d=u.digest().getBytes(),h=le.util.xorBytes(h,d,o),p=d;f+=m<c?h:h.substr(0,l)}return f}var m=1,y;function g(){if(m>c)return s(null,f);u.start(null,null),u.update(t),u.update(le.util.int32ToBytes(m)),h=p=u.digest().getBytes(),y=2,x()}function x(){if(y<=e)return u.start(null,null),u.update(p),d=u.digest().getBytes(),h=le.util.xorBytes(h,d,o),p=d,++y,le.util.setImmediate(x);f+=m<c?h:h.substr(0,l),++m,g()}g()}});var Qp=T((b4,Wp)=>{var Jo=ft();qt();var Yp=Wp.exports=Jo.pem=Jo.pem||{};Yp.encode=function(r,t){t=t||{};var e="-----BEGIN "+r.type+`-----\r
31
+ `,n;if(r.procType&&(n={name:"Proc-Type",values:[String(r.procType.version),r.procType.type]},e+=Zo(n)),r.contentDomain&&(n={name:"Content-Domain",values:[r.contentDomain]},e+=Zo(n)),r.dekInfo&&(n={name:"DEK-Info",values:[r.dekInfo.algorithm]},r.dekInfo.parameters&&n.values.push(r.dekInfo.parameters),e+=Zo(n)),r.headers)for(var i=0;i<r.headers.length;++i)e+=Zo(r.headers[i]);return r.procType&&(e+=`\r
32
+ `),e+=Jo.util.encode64(r.body,t.maxline||64)+`\r
33
+ `,e+="-----END "+r.type+`-----\r
34
+ `,e};Yp.decode=function(r){for(var t=[],e=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=e.exec(r),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Jo.util.decode64(s[3])};if(t.push(a),!!s[2]){for(var c=s[2].split(i),l=0;s&&l<c.length;){for(var u=c[l].replace(/\s+$/,""),f=l+1;f<c.length;++f){var h=c[f];if(!/\s/.test(h[0]))break;u+=h,l=f}if(s=u.match(n),s){for(var d={name:s[1],values:[]},p=s[2].split(","),m=0;m<p.length;++m)d.values.push(Gv(p[m]));if(a.procType)if(!a.contentDomain&&d.name==="Content-Domain")a.contentDomain=p[0]||"";else if(!a.dekInfo&&d.name==="DEK-Info"){if(d.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:p[0],parameters:p[1]||null}}else a.headers.push(d);else{if(d.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(d.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:p[0],type:p[1]}}}++l}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function Zo(r){for(var t=r.name+": ",e=[],n=function(c,l){return" "+l},i=0;i<r.values.length;++i)e.push(r.values[i].replace(/^(\S+\r\n)/,n));t+=e.join(",")+`\r
35
+ `;for(var s=0,o=-1,i=0;i<t.length;++i,++s)if(s>65&&o!==-1){var a=t[o];a===","?(++o,t=t.substr(0,o)+`\r
36
+ `+t.substr(o)):t=t.substr(0,o)+`\r
37
+ `+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function Gv(r){return r.replace(/^\s+/,"")}});var em=T((_4,tm)=>{var or=ft();Dn();qt();var Zp=tm.exports=or.sha256=or.sha256||{};or.md.sha256=or.md.algorithms.sha256=Zp;Zp.create=function(){Jp||Yv();var r=null,t=or.util.createBuffer(),e=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=or.util.createBuffer(),r={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=or.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return t.putBytes(i),Xp(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=or.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(lu.substr(0,n.blockLength-o));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4,h5:r.h5,h6:r.h6,h7:r.h7};Xp(f,e,i);var h=or.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h.putInt32(f.h5),h.putInt32(f.h6),h.putInt32(f.h7),h},n};var lu=null,Jp=!1,jp=null;function Yv(){lu=String.fromCharCode(128),lu+=or.util.fillString(String.fromCharCode(0),64),jp=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Jp=!0}function Xp(r,t,e){for(var n,i,s,o,a,c,l,u,f,h,d,p,m,y,g,x=e.length();x>=64;){for(l=0;l<16;++l)t[l]=e.getInt32();for(;l<64;++l)n=t[l-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[l-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[l]=n+t[l-7]+i+t[l-16]|0;for(u=r.h0,f=r.h1,h=r.h2,d=r.h3,p=r.h4,m=r.h5,y=r.h6,g=r.h7,l=0;l<64;++l)o=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=y^p&(m^y),s=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),c=u&f|h&(u^f),n=g+o+a+jp[l]+t[l],i=s+c,g=y,y=m,m=p,p=d+n>>>0,d=h,h=f,f=u,u=n+i>>>0;r.h0=r.h0+u|0,r.h1=r.h1+f|0,r.h2=r.h2+h|0,r.h3=r.h3+d|0,r.h4=r.h4+p|0,r.h5=r.h5+m|0,r.h6=r.h6+y|0,r.h7=r.h7+g|0,x-=64}}});var nm=T((S4,rm)=>{var ar=ft();qt();var jo=null;ar.util.isNodejs&&!ar.options.usePureJavaScript&&!process.versions["node-webkit"]&&(jo=Rn());var Wv=rm.exports=ar.prng=ar.prng||{};Wv.create=function(r){for(var t={plugin:r,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},e=r.md,n=new Array(32),i=0;i<32;++i)n[i]=e.create();t.pools=n,t.pool=0,t.generate=function(l,u){if(!u)return t.generateSync(l);var f=t.plugin.cipher,h=t.plugin.increment,d=t.plugin.formatKey,p=t.plugin.formatSeed,m=ar.util.createBuffer();t.key=null,y();function y(g){if(g)return u(g);if(m.length()>=l)return u(null,m.getBytes(l));if(t.generated>1048575&&(t.key=null),t.key===null)return ar.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=d(f(t.key,h(t.seed))),t.seed=p(f(t.key,t.seed)),ar.util.setImmediate(y)}},t.generateSync=function(l){var u=t.plugin.cipher,f=t.plugin.increment,h=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var p=ar.util.createBuffer();p.length()<l;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=u(t.key,t.seed);t.generated+=m.length,p.putBytes(m),t.key=h(u(t.key,f(t.seed))),t.seed=d(u(t.key,t.seed))}return p.getBytes(l)};function s(l){if(t.pools[0].messageLength>=32)return a(),l();var u=32-t.pools[0].messageLength<<5;t.seedFile(u,function(f,h){if(f)return l(f);t.collect(h),a(),l()})}function o(){if(t.pools[0].messageLength>=32)return a();var l=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(l)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var l=t.plugin.md.create();l.update(t.keyBytes);for(var u=1,f=0;f<32;++f)t.reseeds%u===0&&(l.update(t.pools[f].digest().getBytes()),t.pools[f].start()),u=u<<1;t.keyBytes=l.digest().getBytes(),l.start(),l.update(t.keyBytes);var h=l.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(h),t.generated=0}function c(l){var u=null,f=ar.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(u=function(C){return h.getRandomValues(C)});var d=ar.util.createBuffer();if(u)for(;d.length()<l;){var p=Math.max(1,Math.min(l-d.length(),65536)/4),m=new Uint32Array(Math.floor(p));try{u(m);for(var y=0;y<m.length;++y)d.putInt32(m[y])}catch(C){if(!(typeof QuotaExceededError<"u"&&C instanceof QuotaExceededError))throw C}}if(d.length()<l)for(var g,x,_,O=Math.floor(Math.random()*65536);d.length()<l;){x=16807*(O&65535),g=16807*(O>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),O=x&4294967295;for(var y=0;y<3;++y)_=O>>>(y<<3),_^=Math.floor(Math.random()*256),d.putByte(_&255)}return d.getBytes(l)}return jo?(t.seedFile=function(l,u){jo.randomBytes(l,function(f,h){if(f)return u(f);u(null,h.toString())})},t.seedFileSync=function(l){return jo.randomBytes(l).toString()}):(t.seedFile=function(l,u){try{u(null,c(l))}catch(f){u(f)}},t.seedFileSync=c),t.collect=function(l){for(var u=l.length,f=0;f<u;++f)t.pools[t.pool].update(l.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(l,u){for(var f="",h=0;h<u;h+=8)f+=String.fromCharCode(l>>h&255);t.collect(f)},t.registerWorker=function(l){if(l===self)t.seedFile=function(f,h){function d(p){var m=p.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",d),h(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:f}}})};else{var u=function(f){var h=f.data;h.forge&&h.forge.prng&&t.seedFile(h.forge.prng.needed,function(d,p){l.postMessage({forge:{prng:{err:d,bytes:p}}})})};l.addEventListener("message",u)}},t}});var cs=T((A4,uu)=>{var ee=ft();Wo();em();nm();qt();(function(){if(ee.random&&ee.random.getBytes){uu.exports=ee.random;return}(function(r){var t={},e=new Array(4),n=ee.util.createBuffer();t.formatKey=function(f){var h=ee.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),ee.aes._expandKey(f,!1)},t.formatSeed=function(f){var h=ee.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),f},t.cipher=function(f,h){return ee.aes._updateBlock(f,h,e,!1),n.putInt32(e[0]),n.putInt32(e[1]),n.putInt32(e[2]),n.putInt32(e[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=ee.md.sha256;function i(){var f=ee.prng.create(t);return f.getBytes=function(h,d){return f.generate(h,d)},f.getBytesSync=function(h){return f.generate(h)},f}var s=i(),o=null,a=ee.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),ee.options.usePureJavaScript||!ee.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var l="";for(var u in navigator)try{typeof navigator[u]=="string"&&(l+=navigator[u])}catch{}s.collect(l),l=null}r&&(r().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),r().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!ee.random)ee.random=s;else for(var u in s)ee.random[u]=s[u];ee.random.createInstance=i,uu.exports=ee.random})(typeof jQuery<"u"?jQuery:null)})()});var am=T((R4,om)=>{var he=ft();qt();var fu=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],im=[1,2,3,5],Qv=function(r,t){return r<<t&65535|(r&65535)>>16-t},Xv=function(r,t){return(r&65535)>>t|r<<16-t&65535};om.exports=he.rc2=he.rc2||{};he.rc2.expandKey=function(r,t){typeof r=="string"&&(r=he.util.createBuffer(r)),t=t||128;var e=r,n=r.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)e.putByte(fu[e.at(a-1)+e.at(a-n)&255]);for(e.setAt(128-s,fu[e.at(128-s)&o]),a=127-s;a>=0;a--)e.setAt(a,fu[e.at(a+1)^e.at(a+s)]);return e};var sm=function(r,t,e){var n=!1,i=null,s=null,o=null,a,c,l,u,f=[];for(r=he.rc2.expandKey(r,t),l=0;l<64;l++)f.push(r.getInt16Le());e?(a=function(p){for(l=0;l<4;l++)p[l]+=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),p[l]=Qv(p[l],im[l]),u++},c=function(p){for(l=0;l<4;l++)p[l]+=f[p[(l+3)%4]&63]}):(a=function(p){for(l=3;l>=0;l--)p[l]=Xv(p[l],im[l]),p[l]-=f[u]+(p[(l+3)%4]&p[(l+2)%4])+(~p[(l+3)%4]&p[(l+1)%4]),u--},c=function(p){for(l=3;l>=0;l--)p[l]-=f[p[(l+3)%4]&63]});var h=function(p){var m=[];for(l=0;l<4;l++){var y=i.getInt16Le();o!==null&&(e?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}u=e?0:63;for(var g=0;g<p.length;g++)for(var x=0;x<p[g][0];x++)p[g][1](m);for(l=0;l<4;l++)o!==null&&(e?o.putInt16Le(m[l]):m[l]^=o.getInt16Le()),s.putInt16Le(m[l])},d=null;return d={start:function(p,m){p&&typeof p=="string"&&(p=he.util.createBuffer(p)),n=!1,i=he.util.createBuffer(),s=m||new he.util.createBuffer,o=p,d.output=s},update:function(p){for(n||i.putBuffer(p);i.length()>=8;)h([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(p){var m=!0;if(e)if(p)m=p(8,i,!e);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,d.update()),!e&&(m=i.length()===0,m))if(p)m=p(8,s,!e);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},d};he.rc2.startEncrypting=function(r,t,e){var n=he.rc2.createEncryptionCipher(r,128);return n.start(t,e),n};he.rc2.createEncryptionCipher=function(r,t){return sm(r,t,!0)};he.rc2.startDecrypting=function(r,t,e){var n=he.rc2.createDecryptionCipher(r,128);return n.start(t,e),n};he.rc2.createDecryptionCipher=function(r,t){return sm(r,t,!1)}});var ra=T((I4,mm)=>{var hu=ft();mm.exports=hu.jsbn=hu.jsbn||{};var Br,Zv=0xdeadbeefcafe,cm=(Zv&16777215)==15715070;function A(r,t,e){this.data=[],r!=null&&(typeof r=="number"?this.fromNumber(r,t,e):t==null&&typeof r!="string"?this.fromString(r,256):this.fromString(r,t))}hu.jsbn.BigInteger=A;function it(){return new A(null)}function Jv(r,t,e,n,i,s){for(;--s>=0;){var o=t*this.data[r++]+e.data[n]+i;i=Math.floor(o/67108864),e.data[n++]=o&67108863}return i}function jv(r,t,e,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[r]&32767,l=this.data[r++]>>15,u=a*c+l*o;c=o*c+((u&32767)<<15)+e.data[n]+(i&1073741823),i=(c>>>30)+(u>>>15)+a*l+(i>>>30),e.data[n++]=c&1073741823}return i}function lm(r,t,e,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[r]&16383,l=this.data[r++]>>14,u=a*c+l*o;c=o*c+((u&16383)<<14)+e.data[n]+i,i=(c>>28)+(u>>14)+a*l,e.data[n++]=c&268435455}return i}typeof navigator>"u"?(A.prototype.am=lm,Br=28):cm&&navigator.appName=="Microsoft Internet Explorer"?(A.prototype.am=jv,Br=30):cm&&navigator.appName!="Netscape"?(A.prototype.am=Jv,Br=26):(A.prototype.am=lm,Br=28);A.prototype.DB=Br;A.prototype.DM=(1<<Br)-1;A.prototype.DV=1<<Br;var du=52;A.prototype.FV=Math.pow(2,du);A.prototype.F1=du-Br;A.prototype.F2=2*Br-du;var t2="0123456789abcdefghijklmnopqrstuvwxyz",ta=new Array,Ai,Le;Ai="0".charCodeAt(0);for(Le=0;Le<=9;++Le)ta[Ai++]=Le;Ai="a".charCodeAt(0);for(Le=10;Le<36;++Le)ta[Ai++]=Le;Ai="A".charCodeAt(0);for(Le=10;Le<36;++Le)ta[Ai++]=Le;function um(r){return t2.charAt(r)}function fm(r,t){var e=ta[r.charCodeAt(t)];return e??-1}function e2(r){for(var t=this.t-1;t>=0;--t)r.data[t]=this.data[t];r.t=this.t,r.s=this.s}function r2(r){this.t=1,this.s=r<0?-1:0,r>0?this.data[0]=r:r<-1?this.data[0]=r+this.DV:this.t=0}function Qr(r){var t=it();return t.fromInt(r),t}function n2(r,t){var e;if(t==16)e=4;else if(t==8)e=3;else if(t==256)e=8;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else{this.fromRadix(r,t);return}this.t=0,this.s=0;for(var n=r.length,i=!1,s=0;--n>=0;){var o=e==8?r[n]&255:fm(r,n);if(o<0){r.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+e>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=e,s>=this.DB&&(s-=this.DB)}e==8&&r[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&A.ZERO.subTo(this,this)}function i2(){for(var r=this.s&this.DM;this.t>0&&this.data[this.t-1]==r;)--this.t}function s2(r){if(this.s<0)return"-"+this.negate().toString(r);var t;if(r==16)t=4;else if(r==8)t=3;else if(r==2)t=1;else if(r==32)t=5;else if(r==4)t=2;else return this.toRadix(r);var e=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=um(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&e,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=um(n));return i?s:"0"}function o2(){var r=it();return A.ZERO.subTo(this,r),r}function a2(){return this.s<0?this.negate():this}function c2(r){var t=this.s-r.s;if(t!=0)return t;var e=this.t;if(t=e-r.t,t!=0)return this.s<0?-t:t;for(;--e>=0;)if((t=this.data[e]-r.data[e])!=0)return t;return 0}function ea(r){var t=1,e;return(e=r>>>16)!=0&&(r=e,t+=16),(e=r>>8)!=0&&(r=e,t+=8),(e=r>>4)!=0&&(r=e,t+=4),(e=r>>2)!=0&&(r=e,t+=2),(e=r>>1)!=0&&(r=e,t+=1),t}function l2(){return this.t<=0?0:this.DB*(this.t-1)+ea(this.data[this.t-1]^this.s&this.DM)}function u2(r,t){var e;for(e=this.t-1;e>=0;--e)t.data[e+r]=this.data[e];for(e=r-1;e>=0;--e)t.data[e]=0;t.t=this.t+r,t.s=this.s}function f2(r,t){for(var e=r;e<this.t;++e)t.data[e-r]=this.data[e];t.t=Math.max(this.t-r,0),t.s=this.s}function h2(r,t){var e=r%this.DB,n=this.DB-e,i=(1<<n)-1,s=Math.floor(r/this.DB),o=this.s<<e&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<e;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function d2(r,t){t.s=this.s;var e=Math.floor(r/this.DB);if(e>=this.t){t.t=0;return}var n=r%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[e]>>n;for(var o=e+1;o<this.t;++o)t.data[o-e-1]|=(this.data[o]&s)<<i,t.data[o-e]=this.data[o]>>n;n>0&&(t.data[this.t-e-1]|=(this.s&s)<<i),t.t=this.t-e,t.clamp()}function p2(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]-r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n-=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n-=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n-=r.s}t.s=n<0?-1:0,n<-1?t.data[e++]=this.DV+n:n>0&&(t.data[e++]=n),t.t=e,t.clamp()}function m2(r,t){var e=this.abs(),n=r.abs(),i=e.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+e.t]=e.am(0,n.data[i],t,i,0,e.t);t.s=0,t.clamp(),this.s!=r.s&&A.ZERO.subTo(t,t)}function y2(r){for(var t=this.abs(),e=r.t=2*t.t;--e>=0;)r.data[e]=0;for(e=0;e<t.t-1;++e){var n=t.am(e,t.data[e],r,2*e,0,1);(r.data[e+t.t]+=t.am(e+1,2*t.data[e],r,2*e+1,n,t.t-e-1))>=t.DV&&(r.data[e+t.t]-=t.DV,r.data[e+t.t+1]=1)}r.t>0&&(r.data[r.t-1]+=t.am(e,t.data[e],r,2*e,0,1)),r.s=0,r.clamp()}function g2(r,t,e){var n=r.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),e!=null&&this.copyTo(e);return}e==null&&(e=it());var s=it(),o=this.s,a=r.s,c=this.DB-ea(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,e)):(n.copyTo(s),i.copyTo(e));var l=s.t,u=s.data[l-1];if(u!=0){var f=u*(1<<this.F1)+(l>1?s.data[l-2]>>this.F2:0),h=this.FV/f,d=(1<<this.F1)/f,p=1<<this.F2,m=e.t,y=m-l,g=t??it();for(s.dlShiftTo(y,g),e.compareTo(g)>=0&&(e.data[e.t++]=1,e.subTo(g,e)),A.ONE.dlShiftTo(l,g),g.subTo(s,s);s.t<l;)s.data[s.t++]=0;for(;--y>=0;){var x=e.data[--m]==u?this.DM:Math.floor(e.data[m]*h+(e.data[m-1]+p)*d);if((e.data[m]+=s.am(0,x,e,y,0,l))<x)for(s.dlShiftTo(y,g),e.subTo(g,e);e.data[m]<--x;)e.subTo(g,e)}t!=null&&(e.drShiftTo(l,t),o!=a&&A.ZERO.subTo(t,t)),e.t=l,e.clamp(),c>0&&e.rShiftTo(c,e),o<0&&A.ZERO.subTo(e,e)}}}function w2(r){var t=it();return this.abs().divRemTo(r,null,t),this.s<0&&t.compareTo(A.ZERO)>0&&r.subTo(t,t),t}function Ln(r){this.m=r}function E2(r){return r.s<0||r.compareTo(this.m)>=0?r.mod(this.m):r}function x2(r){return r}function v2(r){r.divRemTo(this.m,null,r)}function b2(r,t,e){r.multiplyTo(t,e),this.reduce(e)}function _2(r,t){r.squareTo(t),this.reduce(t)}Ln.prototype.convert=E2;Ln.prototype.revert=x2;Ln.prototype.reduce=v2;Ln.prototype.mulTo=b2;Ln.prototype.sqrTo=_2;function S2(){if(this.t<1)return 0;var r=this.data[0];if(!(r&1))return 0;var t=r&3;return t=t*(2-(r&15)*t)&15,t=t*(2-(r&255)*t)&255,t=t*(2-((r&65535)*t&65535))&65535,t=t*(2-r*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Pn(r){this.m=r,this.mp=r.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<r.DB-15)-1,this.mt2=2*r.t}function A2(r){var t=it();return r.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),r.s<0&&t.compareTo(A.ZERO)>0&&this.m.subTo(t,t),t}function R2(r){var t=it();return r.copyTo(t),this.reduce(t),t}function I2(r){for(;r.t<=this.mt2;)r.data[r.t++]=0;for(var t=0;t<this.m.t;++t){var e=r.data[t]&32767,n=e*this.mpl+((e*this.mph+(r.data[t]>>15)*this.mpl&this.um)<<15)&r.DM;for(e=t+this.m.t,r.data[e]+=this.m.am(0,n,r,t,0,this.m.t);r.data[e]>=r.DV;)r.data[e]-=r.DV,r.data[++e]++}r.clamp(),r.drShiftTo(this.m.t,r),r.compareTo(this.m)>=0&&r.subTo(this.m,r)}function T2(r,t){r.squareTo(t),this.reduce(t)}function C2(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Pn.prototype.convert=A2;Pn.prototype.revert=R2;Pn.prototype.reduce=I2;Pn.prototype.mulTo=C2;Pn.prototype.sqrTo=T2;function B2(){return(this.t>0?this.data[0]&1:this.s)==0}function D2(r,t){if(r>4294967295||r<1)return A.ONE;var e=it(),n=it(),i=t.convert(this),s=ea(r)-1;for(i.copyTo(e);--s>=0;)if(t.sqrTo(e,n),(r&1<<s)>0)t.mulTo(n,i,e);else{var o=e;e=n,n=o}return t.revert(e)}function L2(r,t){var e;return r<256||t.isEven()?e=new Ln(t):e=new Pn(t),this.exp(r,e)}A.prototype.copyTo=e2;A.prototype.fromInt=r2;A.prototype.fromString=n2;A.prototype.clamp=i2;A.prototype.dlShiftTo=u2;A.prototype.drShiftTo=f2;A.prototype.lShiftTo=h2;A.prototype.rShiftTo=d2;A.prototype.subTo=p2;A.prototype.multiplyTo=m2;A.prototype.squareTo=y2;A.prototype.divRemTo=g2;A.prototype.invDigit=S2;A.prototype.isEven=B2;A.prototype.exp=D2;A.prototype.toString=s2;A.prototype.negate=o2;A.prototype.abs=a2;A.prototype.compareTo=c2;A.prototype.bitLength=l2;A.prototype.mod=w2;A.prototype.modPowInt=L2;A.ZERO=Qr(0);A.ONE=Qr(1);function P2(){var r=it();return this.copyTo(r),r}function N2(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function k2(){return this.t==0?this.s:this.data[0]<<24>>24}function O2(){return this.t==0?this.s:this.data[0]<<16>>16}function M2(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function U2(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function F2(r){if(r==null&&(r=10),this.signum()==0||r<2||r>36)return"0";var t=this.chunkSize(r),e=Math.pow(r,t),n=Qr(e),i=it(),s=it(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(e+s.intValue()).toString(r).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(r)+o}function K2(r,t){this.fromInt(0),t==null&&(t=10);for(var e=this.chunkSize(t),n=Math.pow(t,e),i=!1,s=0,o=0,a=0;a<r.length;++a){var c=fm(r,a);if(c<0){r.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=e&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&A.ZERO.subTo(this,this)}function V2(r,t,e){if(typeof t=="number")if(r<2)this.fromInt(1);else for(this.fromNumber(r,e),this.testBit(r-1)||this.bitwiseTo(A.ONE.shiftLeft(r-1),pu,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>r&&this.subTo(A.ONE.shiftLeft(r-1),this);else{var n=new Array,i=r&7;n.length=(r>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function q2(){var r=this.t,t=new Array;t[0]=this.s;var e=this.DB-r*this.DB%8,n,i=0;if(r-- >0)for(e<this.DB&&(n=this.data[r]>>e)!=(this.s&this.DM)>>e&&(t[i++]=n|this.s<<this.DB-e);r>=0;)e<8?(n=(this.data[r]&(1<<e)-1)<<8-e,n|=this.data[--r]>>(e+=this.DB-8)):(n=this.data[r]>>(e-=8)&255,e<=0&&(e+=this.DB,--r)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function $2(r){return this.compareTo(r)==0}function z2(r){return this.compareTo(r)<0?this:r}function H2(r){return this.compareTo(r)>0?this:r}function G2(r,t,e){var n,i,s=Math.min(r.t,this.t);for(n=0;n<s;++n)e.data[n]=t(this.data[n],r.data[n]);if(r.t<this.t){for(i=r.s&this.DM,n=s;n<this.t;++n)e.data[n]=t(this.data[n],i);e.t=this.t}else{for(i=this.s&this.DM,n=s;n<r.t;++n)e.data[n]=t(i,r.data[n]);e.t=r.t}e.s=t(this.s,r.s),e.clamp()}function Y2(r,t){return r&t}function W2(r){var t=it();return this.bitwiseTo(r,Y2,t),t}function pu(r,t){return r|t}function Q2(r){var t=it();return this.bitwiseTo(r,pu,t),t}function hm(r,t){return r^t}function X2(r){var t=it();return this.bitwiseTo(r,hm,t),t}function dm(r,t){return r&~t}function Z2(r){var t=it();return this.bitwiseTo(r,dm,t),t}function J2(){for(var r=it(),t=0;t<this.t;++t)r.data[t]=this.DM&~this.data[t];return r.t=this.t,r.s=~this.s,r}function j2(r){var t=it();return r<0?this.rShiftTo(-r,t):this.lShiftTo(r,t),t}function tb(r){var t=it();return r<0?this.lShiftTo(-r,t):this.rShiftTo(r,t),t}function eb(r){if(r==0)return-1;var t=0;return r&65535||(r>>=16,t+=16),r&255||(r>>=8,t+=8),r&15||(r>>=4,t+=4),r&3||(r>>=2,t+=2),r&1||++t,t}function rb(){for(var r=0;r<this.t;++r)if(this.data[r]!=0)return r*this.DB+eb(this.data[r]);return this.s<0?this.t*this.DB:-1}function nb(r){for(var t=0;r!=0;)r&=r-1,++t;return t}function ib(){for(var r=0,t=this.s&this.DM,e=0;e<this.t;++e)r+=nb(this.data[e]^t);return r}function sb(r){var t=Math.floor(r/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<r%this.DB)!=0}function ob(r,t){var e=A.ONE.shiftLeft(r);return this.bitwiseTo(e,t,e),e}function ab(r){return this.changeBit(r,pu)}function cb(r){return this.changeBit(r,dm)}function lb(r){return this.changeBit(r,hm)}function ub(r,t){for(var e=0,n=0,i=Math.min(r.t,this.t);e<i;)n+=this.data[e]+r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;if(r.t<this.t){for(n+=r.s;e<this.t;)n+=this.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<r.t;)n+=r.data[e],t.data[e++]=n&this.DM,n>>=this.DB;n+=r.s}t.s=n<0?-1:0,n>0?t.data[e++]=n:n<-1&&(t.data[e++]=this.DV+n),t.t=e,t.clamp()}function fb(r){var t=it();return this.addTo(r,t),t}function hb(r){var t=it();return this.subTo(r,t),t}function db(r){var t=it();return this.multiplyTo(r,t),t}function pb(r){var t=it();return this.divRemTo(r,t,null),t}function mb(r){var t=it();return this.divRemTo(r,null,t),t}function yb(r){var t=it(),e=it();return this.divRemTo(r,t,e),new Array(t,e)}function gb(r){this.data[this.t]=this.am(0,r-1,this,0,0,this.t),++this.t,this.clamp()}function wb(r,t){if(r!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=r;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function ls(){}function pm(r){return r}function Eb(r,t,e){r.multiplyTo(t,e)}function xb(r,t){r.squareTo(t)}ls.prototype.convert=pm;ls.prototype.revert=pm;ls.prototype.mulTo=Eb;ls.prototype.sqrTo=xb;function vb(r){return this.exp(r,new ls)}function bb(r,t,e){var n=Math.min(this.t+r.t,t);for(e.s=0,e.t=n;n>0;)e.data[--n]=0;var i;for(i=e.t-this.t;n<i;++n)e.data[n+this.t]=this.am(0,r.data[n],e,n,0,this.t);for(i=Math.min(r.t,t);n<i;++n)this.am(0,r.data[n],e,n,0,t-n);e.clamp()}function _b(r,t,e){--t;var n=e.t=this.t+r.t-t;for(e.s=0;--n>=0;)e.data[n]=0;for(n=Math.max(t-this.t,0);n<r.t;++n)e.data[this.t+n-t]=this.am(t-n,r.data[n],e,0,0,this.t+n-t);e.clamp(),e.drShiftTo(1,e)}function Ri(r){this.r2=it(),this.q3=it(),A.ONE.dlShiftTo(2*r.t,this.r2),this.mu=this.r2.divide(r),this.m=r}function Sb(r){if(r.s<0||r.t>2*this.m.t)return r.mod(this.m);if(r.compareTo(this.m)<0)return r;var t=it();return r.copyTo(t),this.reduce(t),t}function Ab(r){return r}function Rb(r){for(r.drShiftTo(this.m.t-1,this.r2),r.t>this.m.t+1&&(r.t=this.m.t+1,r.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);r.compareTo(this.r2)<0;)r.dAddOffset(1,this.m.t+1);for(r.subTo(this.r2,r);r.compareTo(this.m)>=0;)r.subTo(this.m,r)}function Ib(r,t){r.squareTo(t),this.reduce(t)}function Tb(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Ri.prototype.convert=Sb;Ri.prototype.revert=Ab;Ri.prototype.reduce=Rb;Ri.prototype.mulTo=Tb;Ri.prototype.sqrTo=Ib;function Cb(r,t){var e=r.bitLength(),n,i=Qr(1),s;if(e<=0)return i;e<18?n=1:e<48?n=3:e<144?n=4:e<768?n=5:n=6,e<8?s=new Ln(t):t.isEven()?s=new Ri(t):s=new Pn(t);var o=new Array,a=3,c=n-1,l=(1<<n)-1;if(o[1]=s.convert(this),n>1){var u=it();for(s.sqrTo(o[1],u);a<=l;)o[a]=it(),s.mulTo(u,o[a-2],o[a]),a+=2}var f=r.t-1,h,d=!0,p=it(),m;for(e=ea(r.data[f])-1;f>=0;){for(e>=c?h=r.data[f]>>e-c&l:(h=(r.data[f]&(1<<e+1)-1)<<c-e,f>0&&(h|=r.data[f-1]>>this.DB+e-c)),a=n;!(h&1);)h>>=1,--a;if((e-=a)<0&&(e+=this.DB,--f),d)o[h].copyTo(i),d=!1;else{for(;a>1;)s.sqrTo(i,p),s.sqrTo(p,i),a-=2;a>0?s.sqrTo(i,p):(m=i,i=p,p=m),s.mulTo(p,o[h],i)}for(;f>=0&&!(r.data[f]&1<<e);)s.sqrTo(i,p),m=i,i=p,p=m,--e<0&&(e=this.DB-1,--f)}return s.revert(i)}function Bb(r){var t=this.s<0?this.negate():this.clone(),e=r.s<0?r.negate():r.clone();if(t.compareTo(e)<0){var n=t;t=e,e=n}var i=t.getLowestSetBit(),s=e.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),e.rShiftTo(s,e));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),t.compareTo(e)>=0?(t.subTo(e,t),t.rShiftTo(1,t)):(e.subTo(t,e),e.rShiftTo(1,e));return s>0&&e.lShiftTo(s,e),e}function Db(r){if(r<=0)return 0;var t=this.DV%r,e=this.s<0?r-1:0;if(this.t>0)if(t==0)e=this.data[0]%r;else for(var n=this.t-1;n>=0;--n)e=(t*e+this.data[n])%r;return e}function Lb(r){var t=r.isEven();if(this.isEven()&&t||r.signum()==0)return A.ZERO;for(var e=r.clone(),n=this.clone(),i=Qr(1),s=Qr(0),o=Qr(0),a=Qr(1);e.signum()!=0;){for(;e.isEven();)e.rShiftTo(1,e),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(r,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(r,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(r,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(r,a),a.rShiftTo(1,a);e.compareTo(n)>=0?(e.subTo(n,e),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(e,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(A.ONE)!=0)return A.ZERO;if(a.compareTo(r)>=0)return a.subtract(r);if(a.signum()<0)a.addTo(r,a);else return a;return a.signum()<0?a.add(r):a}var qe=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],Pb=(1<<26)/qe[qe.length-1];function Nb(r){var t,e=this.abs();if(e.t==1&&e.data[0]<=qe[qe.length-1]){for(t=0;t<qe.length;++t)if(e.data[0]==qe[t])return!0;return!1}if(e.isEven())return!1;for(t=1;t<qe.length;){for(var n=qe[t],i=t+1;i<qe.length&&n<Pb;)n*=qe[i++];for(n=e.modInt(n);t<i;)if(n%qe[t++]==0)return!1}return e.millerRabin(r)}function kb(r){var t=this.subtract(A.ONE),e=t.getLowestSetBit();if(e<=0)return!1;for(var n=t.shiftRight(e),i=Ob(),s,o=0;o<r;++o){do s=new A(this.bitLength(),i);while(s.compareTo(A.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(A.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<e&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(A.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Ob(){return{nextBytes:function(r){for(var t=0;t<r.length;++t)r[t]=Math.floor(Math.random()*256)}}}A.prototype.chunkSize=M2;A.prototype.toRadix=F2;A.prototype.fromRadix=K2;A.prototype.fromNumber=V2;A.prototype.bitwiseTo=G2;A.prototype.changeBit=ob;A.prototype.addTo=ub;A.prototype.dMultiply=gb;A.prototype.dAddOffset=wb;A.prototype.multiplyLowerTo=bb;A.prototype.multiplyUpperTo=_b;A.prototype.modInt=Db;A.prototype.millerRabin=kb;A.prototype.clone=P2;A.prototype.intValue=N2;A.prototype.byteValue=k2;A.prototype.shortValue=O2;A.prototype.signum=U2;A.prototype.toByteArray=q2;A.prototype.equals=$2;A.prototype.min=z2;A.prototype.max=H2;A.prototype.and=W2;A.prototype.or=Q2;A.prototype.xor=X2;A.prototype.andNot=Z2;A.prototype.not=J2;A.prototype.shiftLeft=j2;A.prototype.shiftRight=tb;A.prototype.getLowestSetBit=rb;A.prototype.bitCount=ib;A.prototype.testBit=sb;A.prototype.setBit=ab;A.prototype.clearBit=cb;A.prototype.flipBit=lb;A.prototype.add=fb;A.prototype.subtract=hb;A.prototype.multiply=db;A.prototype.divide=pb;A.prototype.remainder=mb;A.prototype.divideAndRemainder=yb;A.prototype.modPow=Cb;A.prototype.modInverse=Lb;A.prototype.pow=vb;A.prototype.gcd=Bb;A.prototype.isProbablePrime=Nb});var xm=T((T4,Em)=>{var cr=ft();Dn();qt();var gm=Em.exports=cr.sha1=cr.sha1||{};cr.md.sha1=cr.md.algorithms.sha1=gm;gm.create=function(){wm||Mb();var r=null,t=cr.util.createBuffer(),e=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=cr.util.createBuffer(),r={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=cr.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return t.putBytes(i),ym(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=cr.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(mu.substr(0,n.blockLength-o));for(var a,c,l=n.fullMessageLength[0]*8,u=0;u<n.fullMessageLength.length-1;++u)a=n.fullMessageLength[u+1]*8,c=a/4294967296>>>0,l+=c,i.putInt32(l>>>0),l=a>>>0;i.putInt32(l);var f={h0:r.h0,h1:r.h1,h2:r.h2,h3:r.h3,h4:r.h4};ym(f,e,i);var h=cr.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h},n};var mu=null,wm=!1;function Mb(){mu=String.fromCharCode(128),mu+=cr.util.fillString(String.fromCharCode(0),64),wm=!0}function ym(r,t,e){for(var n,i,s,o,a,c,l,u,f=e.length();f>=64;){for(i=r.h0,s=r.h1,o=r.h2,a=r.h3,c=r.h4,u=0;u<16;++u)n=e.getInt32(),t[u]=n,l=a^s&(o^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<20;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=a^s&(o^a),n=(i<<5|i>>>27)+l+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<32;++u)n=t[u-3]^t[u-8]^t[u-14]^t[u-16],n=n<<1|n>>>31,t[u]=n,l=s^o^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<40;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=s^o^a,n=(i<<5|i>>>27)+l+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<60;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=s&o|a&(s^o),n=(i<<5|i>>>27)+l+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;u<80;++u)n=t[u-6]^t[u-16]^t[u-28]^t[u-32],n=n<<2|n>>>30,t[u]=n,l=s^o^a,n=(i<<5|i>>>27)+l+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;r.h0=r.h0+i|0,r.h1=r.h1+s|0,r.h2=r.h2+o|0,r.h3=r.h3+a|0,r.h4=r.h4+c|0,f-=64}}});var _m=T((C4,bm)=>{var lr=ft();qt();cs();xm();var vm=bm.exports=lr.pkcs1=lr.pkcs1||{};vm.encode_rsa_oaep=function(r,t,e){var n,i,s,o;typeof e=="string"?(n=e,i=arguments[3]||void 0,s=arguments[4]||void 0):e&&(n=e.label||void 0,i=e.seed||void 0,s=e.md||void 0,e.mgf1&&e.mgf1.md&&(o=e.mgf1.md)),s?s.start():s=lr.md.sha1.create(),o||(o=s);var a=Math.ceil(r.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var l=new Error("RSAES-OAEP input message length is too long.");throw l.length=t.length,l.maxLength=c,l}n||(n=""),s.update(n,"raw");for(var u=s.digest(),f="",h=c-t.length,d=0;d<h;d++)f+="\0";var p=u.getBytes()+f+""+t;if(!i)i=lr.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var l=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw l.seedLength=i.length,l.digestLength=s.digestLength,l}var m=na(i,a-s.digestLength-1,o),y=lr.util.xorBytes(p,m,p.length),g=na(y,s.digestLength,o),x=lr.util.xorBytes(i,g,i.length);return"\0"+x+y};vm.decode_rsa_oaep=function(r,t,e){var n,i,s;typeof e=="string"?(n=e,i=arguments[3]||void 0):e&&(n=e.label||void 0,i=e.md||void 0,e.mgf1&&e.mgf1.md&&(s=e.mgf1.md));var o=Math.ceil(r.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=lr.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),l=t.substring(1,i.digestLength+1),u=t.substring(1+i.digestLength),f=na(u,i.digestLength,s),h=lr.util.xorBytes(l,f,l.length),d=na(h,o-i.digestLength-1,s),p=lr.util.xorBytes(u,d,u.length),m=p.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,_=i.digestLength,O=i.digestLength;O<p.length;O++){var C=p.charCodeAt(O),B=C&1^1,X=x?65534:0;y|=C&X,x=x&B,_+=x}if(y||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function na(r,t,e){e||(e=lr.md.sha1.create());for(var n="",i=Math.ceil(t/e.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);e.start(),e.update(r+o),n+=e.digest().getBytes()}return n.substring(0,t)}});var Sm=T((B4,yu)=>{var Xr=ft();qt();ra();cs();(function(){if(Xr.prime){yu.exports=Xr.prime;return}var r=yu.exports=Xr.prime=Xr.prime||{},t=Xr.jsbn.BigInteger,e=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,h){return f|h};r.generateProbablePrime=function(f,h,d){typeof h=="function"&&(d=h,h={}),h=h||{};var p=h.algorithm||"PRIMEINC";typeof p=="string"&&(p={name:p}),p.options=p.options||{};var m=h.prng||Xr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),_=0;_<g.length;++_)g[_]=x.charCodeAt(_)}};if(p.name==="PRIMEINC")return s(f,y,p.options,d);throw new Error("Invalid prime generation algorithm: "+p.name)};function s(f,h,d,p){return"workers"in d?c(f,h,d,p):o(f,h,d,p)}function o(f,h,d,p){var m=l(f,h),y=0,g=u(m.bitLength());"millerRabinTests"in d&&(g=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(m,f,h,y,g,x,p)}function a(f,h,d,p,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=l(h,d)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(e[p++%8],0)}while(y<0||+new Date-x<y);Xr.util.setImmediate(function(){a(f,h,d,p,m,y,g)})}function c(f,h,d,p){if(typeof Worker>"u")return o(f,h,d,p);var m=l(f,h),y=d.workers,g=d.workLoad||100,x=g*30/8,_=d.workerScript||"forge/prime.worker.js";if(y===-1)return Xr.util.estimateCores(function(C,B){C&&(B=2),y=B-1,O()});O();function O(){y=Math.max(1,y);for(var C=[],B=0;B<y;++B)C[B]=new Worker(_);for(var X=y,B=0;B<y;++B)C[B].addEventListener("message",Xt);var J=!1;function Xt(Me){if(!J){--X;var ge=Me.data;if(ge.found){for(var ae=0;ae<C.length;++ae)C[ae].terminate();return J=!0,p(null,new t(ge.prime,16))}m.bitLength()>f&&(m=l(f,h));var Zn=m.toString(16);Me.target.postMessage({hex:Zn,workLoad:g}),m.dAddOffset(x,0)}}}}function l(f,h){var d=new t(f,h),p=f-1;return d.testBit(p)||d.bitwiseTo(t.ONE.shiftLeft(p),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function u(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var sa=T((D4,Dm)=>{var K=ft();as();ra();$o();_m();Sm();cs();qt();typeof tt>"u"&&(tt=K.jsbn.BigInteger);var tt,gu=K.util.isNodejs?Rn():null,v=K.asn1,Pe=K.util;K.pki=K.pki||{};Dm.exports=K.pki.rsa=K.rsa=K.rsa||{};var q=K.pki,Ub=[6,4,2,4,2,4,6,2],Fb={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Kb={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Vb={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},qb=K.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},$b={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},zb=function(r){var t;if(r.algorithm in q.oids)t=q.oids[r.algorithm];else{var e=new Error("Unknown message digest algorithm.");throw e.algorithm=r.algorithm,e}var n=v.oidToDer(t).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,r.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},Cm=function(r,t,e){if(e)return r.modPow(t.e,t.n);if(!t.p||!t.q)return r.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(tt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(tt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new tt(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(tt.ONE));r=r.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=r.mod(t.p).modPow(t.dP,t.p),s=r.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};q.rsa.encrypt=function(r,t,e){var n=e,i,s=Math.ceil(t.n.bitLength()/8);e!==!1&&e!==!0?(n=e===2,i=Bm(r,t,e)):(i=K.util.createBuffer(),i.putBytes(r));for(var o=new tt(i.toHex(),16),a=Cm(o,t,n),c=a.toString(16),l=K.util.createBuffer(),u=s-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(K.util.hexToBytes(c)),l.getBytes()};q.rsa.decrypt=function(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8);if(r.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=r.length,s.expected=i,s}var o=new tt(K.util.createBuffer(r).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Cm(o,t,e),c=a.toString(16),l=K.util.createBuffer(),u=i-Math.ceil(c.length/2);u>0;)l.putByte(0),--u;return l.putBytes(K.util.hexToBytes(c)),n!==!1?ia(l.getBytes(),t,e):l.getBytes()};q.rsa.createKeyPairGenerationState=function(r,t,e){typeof r=="string"&&(r=parseInt(r,10)),r=r||2048,e=e||{};var n=e.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),l=0;l<a.length;++l)a[l]=c.charCodeAt(l)}},s=e.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:r,rng:i,eInt:t||65537,e:new tt(null),p:null,q:null,qBits:r>>1,pBits:r-(r>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};q.rsa.stepKeyPairGenerationState=function(r,t){"algorithm"in r||(r.algorithm="PRIMEINC");var e=new tt(null);e.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;r.keys===null&&(t<=0||a<t);){if(r.state===0){var c=r.p===null?r.pBits:r.qBits,l=c-1;r.pqState===0?(r.num=new tt(c,r.rng),r.num.testBit(l)||r.num.bitwiseTo(tt.ONE.shiftLeft(l),i,r.num),r.num.dAddOffset(31-r.num.mod(e).byteValue(),0),n=0,++r.pqState):r.pqState===1?r.num.bitLength()>c?r.pqState=0:r.num.isProbablePrime(Gb(r.num.bitLength()))?++r.pqState:r.num.dAddOffset(Ub[n++%8],0):r.pqState===2?r.pqState=r.num.subtract(tt.ONE).gcd(r.e).compareTo(tt.ONE)===0?3:0:r.pqState===3&&(r.pqState=0,r.p===null?r.p=r.num:r.q=r.num,r.p!==null&&r.q!==null&&++r.state,r.num=null)}else if(r.state===1)r.p.compareTo(r.q)<0&&(r.num=r.p,r.p=r.q,r.q=r.num),++r.state;else if(r.state===2)r.p1=r.p.subtract(tt.ONE),r.q1=r.q.subtract(tt.ONE),r.phi=r.p1.multiply(r.q1),++r.state;else if(r.state===3)r.phi.gcd(r.e).compareTo(tt.ONE)===0?++r.state:(r.p=null,r.q=null,r.state=0);else if(r.state===4)r.n=r.p.multiply(r.q),r.n.bitLength()===r.bits?++r.state:(r.q=null,r.state=0);else if(r.state===5){var u=r.e.modInverse(r.phi);r.keys={privateKey:q.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:q.rsa.setPublicKey(r.n,r.e)}}o=+new Date,a+=o-s,s=o}return r.keys!==null};q.rsa.generateKeyPair=function(r,t,e,n){if(arguments.length===1?typeof r=="object"?(e=r,r=void 0):typeof r=="function"&&(n=r,r=void 0):arguments.length===2?typeof r=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(e=t,t=void 0):(e=r,n=t,r=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof e=="function"&&(n=e,e=void 0):(n=e,e=t,t=void 0)),e=e||{},r===void 0&&(r=e.bits||2048),t===void 0&&(t=e.e||65537),!K.options.usePureJavaScript&&!e.prng&&r>=256&&r<=16384&&(t===65537||t===3)){if(n){if(Am("generateKeyPair"))return gu.generateKeyPair("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,l){if(a)return n(a);n(null,{privateKey:q.privateKeyFromPem(l),publicKey:q.publicKeyFromPem(c)})});if(Rm("generateKey")&&Rm("exportKey"))return Pe.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Tm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Pe.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=q.privateKeyFromAsn1(v.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:q.setRsaPublicKey(c.n,c.e)})}});if(Im("generateKey")&&Im("exportKey")){var i=Pe.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Tm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,l=Pe.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);l.oncomplete=function(u){var f=u.target.result,h=q.privateKeyFromAsn1(v.fromDer(K.util.createBuffer(f)));n(null,{privateKey:h,publicKey:q.setRsaPublicKey(h.n,h.e)})},l.onerror=function(u){n(u)}},i.onerror=function(a){n(a)};return}}else if(Am("generateKeyPairSync")){var s=gu.generateKeyPairSync("rsa",{modulusLength:r,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:q.privateKeyFromPem(s.privateKey),publicKey:q.publicKeyFromPem(s.publicKey)}}}var o=q.rsa.createKeyPairGenerationState(r,t,e);if(!n)return q.rsa.stepKeyPairGenerationState(o,0),o.keys;Hb(o,e,n)};q.setRsaPublicKey=q.rsa.setPublicKey=function(r,t){var e={n:r,e:t};return e.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,l){return Bm(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,e,!0);return q.rsa.encrypt(o,e,!0)},e.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,l){l=ia(l,e,!0);var u=v.fromDer(l,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(u,$b,f,h)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=h,d}var p=v.derToOid(f.algorithmIdentifier);if(!(p===K.oids.md2||p===K.oids.md5||p===K.oids.sha1||p===K.oids.sha224||p===K.oids.sha256||p===K.oids.sha384||p===K.oids.sha512||p===K.oids["sha512-224"]||p===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=p,d}if((p===K.oids.md2||p===K.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,l){return l=ia(l,e,!0),c===l}});var a=q.rsa.decrypt(i,e,!0,!1);return s.verify(n,a,e.n.bitLength())},e};q.setRsaPrivateKey=q.rsa.setPrivateKey=function(r,t,e,n,i,s,o,a){var c={n:r,e:t,d:e,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(l,u,f){typeof u=="string"?u=u.toUpperCase():u===void 0&&(u="RSAES-PKCS1-V1_5");var h=q.rsa.decrypt(l,c,!1,!1);if(u==="RSAES-PKCS1-V1_5")u={decode:ia};else if(u==="RSA-OAEP"||u==="RSAES-OAEP")u={decode:function(d,p){return K.pkcs1.decode_rsa_oaep(p,d,f)}};else if(["RAW","NONE","NULL",null].indexOf(u)!==-1)u={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+u+'".');return u.decode(h,c,!1)},c.sign=function(l,u){var f=!1;typeof u=="string"&&(u=u.toUpperCase()),u===void 0||u==="RSASSA-PKCS1-V1_5"?(u={encode:zb},f=1):(u==="NONE"||u==="NULL"||u===null)&&(u={encode:function(){return l}},f=1);var h=u.encode(l,c.n.bitLength());return q.rsa.encrypt(h,c,f)},c};q.wrapRsaPrivateKey=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(r).getBytes())])};q.privateKeyFromAsn1=function(r){var t={},e=[];if(v.validate(r,Fb,t,e)&&(r=v.fromDer(K.util.createBuffer(t.privateKey))),t={},e=[],!v.validate(r,Kb,t,e)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=e,n}var i,s,o,a,c,l,u,f;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),s=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),l=K.util.createBuffer(t.privateKeyExponent1).toHex(),u=K.util.createBuffer(t.privateKeyExponent2).toHex(),f=K.util.createBuffer(t.privateKeyCoefficient).toHex(),q.setRsaPrivateKey(new tt(i,16),new tt(s,16),new tt(o,16),new tt(a,16),new tt(c,16),new tt(l,16),new tt(u,16),new tt(f,16))};q.privateKeyToAsn1=q.privateKeyToRSAPrivateKey=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.qInv))])};q.publicKeyFromAsn1=function(r){var t={},e=[];if(v.validate(r,qb,t,e)){var n=v.derToOid(t.publicKeyOid);if(n!==q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}r=t.rsaPublicKey}if(e=[],!v.validate(r,Vb,t,e)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=e,i}var s=K.util.createBuffer(t.publicKeyModulus).toHex(),o=K.util.createBuffer(t.publicKeyExponent).toHex();return q.setRsaPublicKey(new tt(s,16),new tt(o,16))};q.publicKeyToAsn1=q.publicKeyToSubjectPublicKeyInfo=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[q.publicKeyToRSAPublicKey(r)])])};q.publicKeyToRSAPublicKey=function(r){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.e))])};function Bm(r,t,e){var n=K.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(r.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=r.length,s.max=i-11,s}n.putByte(0),n.putByte(e);var o=i-3-r.length,a;if(e===0||e===1){a=e===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var l=0,u=K.random.getBytes(o),c=0;c<o;++c)a=u.charCodeAt(c),a===0?++l:n.putByte(a);o=l}return n.putByte(0),n.putBytes(r),n}function ia(r,t,e,n){var i=Math.ceil(t.n.bitLength()/8),s=K.util.createBuffer(r),o=s.getByte(),a=s.getByte();if(o!==0||e&&a!==0&&a!==1||!e&&a!=2||e&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var l=0;l<c;++l)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var u=s.getByte();if(u!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function Hb(r,t,e){typeof t=="function"&&(e=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(r.pBits,function(a,c){if(a)return e(a);if(r.p=c,r.q!==null)return o(a,r.q);s(r.qBits,o)})}function s(a,c){K.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return e(a);if(r.q=c,r.p.compareTo(r.q)<0){var l=r.p;r.p=r.q,r.q=l}if(r.p.subtract(tt.ONE).gcd(r.e).compareTo(tt.ONE)!==0){r.p=null,i();return}if(r.q.subtract(tt.ONE).gcd(r.e).compareTo(tt.ONE)!==0){r.q=null,s(r.qBits,o);return}if(r.p1=r.p.subtract(tt.ONE),r.q1=r.q.subtract(tt.ONE),r.phi=r.p1.multiply(r.q1),r.phi.gcd(r.e).compareTo(tt.ONE)!==0){r.p=r.q=null,i();return}if(r.n=r.p.multiply(r.q),r.n.bitLength()!==r.bits){r.q=null,s(r.qBits,o);return}var u=r.e.modInverse(r.phi);r.keys={privateKey:q.rsa.setPrivateKey(r.n,r.e,u,r.p,r.q,u.mod(r.p1),u.mod(r.q1),r.q.modInverse(r.p)),publicKey:q.rsa.setPublicKey(r.n,r.e)},e(null,r.keys)}}function ur(r){var t=r.toString(16);t[0]>="8"&&(t="00"+t);var e=K.util.hexToBytes(t);return e.length>1&&(e.charCodeAt(0)===0&&!(e.charCodeAt(1)&128)||e.charCodeAt(0)===255&&(e.charCodeAt(1)&128)===128)?e.substr(1):e}function Gb(r){return r<=100?27:r<=150?18:r<=200?15:r<=250?12:r<=300?9:r<=350?8:r<=400?7:r<=500?6:r<=600?5:r<=800?4:r<=1250?3:2}function Am(r){return K.util.isNodejs&&typeof gu[r]=="function"}function Rm(r){return typeof Pe.globalScope<"u"&&typeof Pe.globalScope.crypto=="object"&&typeof Pe.globalScope.crypto.subtle=="object"&&typeof Pe.globalScope.crypto.subtle[r]=="function"}function Im(r){return typeof Pe.globalScope<"u"&&typeof Pe.globalScope.msCrypto=="object"&&typeof Pe.globalScope.msCrypto.subtle=="object"&&typeof Pe.globalScope.msCrypto.subtle[r]=="function"}function Tm(r){for(var t=K.util.hexToBytes(r.toString(16)),e=new Uint8Array(t.length),n=0;n<t.length;++n)e[n]=t.charCodeAt(n);return e}});var Mm=T((L4,Om)=>{var L=ft();Wo();as();qp();Dn();$o();cu();Qp();cs();am();sa();qt();typeof Lm>"u"&&(Lm=L.jsbn.BigInteger);var Lm,b=L.asn1,H=L.pki=L.pki||{};Om.exports=H.pbe=L.pbe=L.pbe||{};var Nn=H.oids,Yb={name:"EncryptedPrivateKeyInfo",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},Wb={name:"PBES2Algorithms",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:b.Class.UNIVERSAL,type:b.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},Qb={name:"pkcs-12PbeParams",tagClass:b.Class.UNIVERSAL,type:b.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:b.Class.UNIVERSAL,type:b.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:b.Class.UNIVERSAL,type:b.Type.INTEGER,constructed:!1,capture:"iterations"}]};H.encryptPrivateKeyInfo=function(r,t,e){e=e||{},e.saltSize=e.saltSize||8,e.count=e.count||2048,e.algorithm=e.algorithm||"aes128",e.prfAlgorithm=e.prfAlgorithm||"sha1";var n=L.random.getBytesSync(e.saltSize),i=e.count,s=b.integerToDer(i),o,a,c;if(e.algorithm.indexOf("aes")===0||e.algorithm==="des"){var l,u,f;switch(e.algorithm){case"aes128":o=16,l=16,u=Nn["aes128-CBC"],f=L.aes.createEncryptionCipher;break;case"aes192":o=24,l=16,u=Nn["aes192-CBC"],f=L.aes.createEncryptionCipher;break;case"aes256":o=32,l=16,u=Nn["aes256-CBC"],f=L.aes.createEncryptionCipher;break;case"des":o=8,l=8,u=Nn.desCBC,f=L.des.createEncryptionCipher;break;default:var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=e.algorithm,h}var d="hmacWith"+e.prfAlgorithm.toUpperCase(),p=km(d),m=L.pkcs5.pbkdf2(t,n,i,o,p),y=L.random.getBytesSync(l),g=f(m);g.start(y),g.update(b.toDer(r)),g.finish(),c=g.output.getBytes();var x=Xb(n,s,o,d);a=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Nn.pkcs5PBES2).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Nn.pkcs5PBKDF2).getBytes()),x]),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(u).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,y)])])])}else if(e.algorithm==="3des"){o=24;var _=new L.util.ByteBuffer(n),m=H.pbe.generatePkcs12Key(t,_,1,i,o),y=H.pbe.generatePkcs12Key(t,_,2,i,o),g=L.des.createEncryptionCipher(m);g.start(y),g.update(b.toDer(r)),g.finish(),c=g.output.getBytes(),a=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(Nn["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,n),b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,s.getBytes())])])}else{var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=e.algorithm,h}var O=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[a,b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,c)]);return O};H.decryptPrivateKeyInfo=function(r,t){var e=null,n={},i=[];if(!b.validate(r,Yb,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=b.derToOid(n.encryptionOid),a=H.pbe.getCipher(o,n.encryptionParams,t),c=L.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(e=b.fromDer(a.output)),e};H.encryptedPrivateKeyToPem=function(r,t){var e={type:"ENCRYPTED PRIVATE KEY",body:b.toDer(r).getBytes()};return L.pem.encode(e,{maxline:t})};H.encryptedPrivateKeyFromPem=function(r){var t=L.pem.decode(r)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var e=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw e.headerType=t.type,e}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return b.fromDer(t.body)};H.encryptRsaPrivateKey=function(r,t,e){if(e=e||{},!e.legacy){var n=H.wrapRsaPrivateKey(H.privateKeyToAsn1(r));return n=H.encryptPrivateKeyInfo(n,t,e),H.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(e.algorithm){case"aes128":i="AES-128-CBC",o=16,s=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=L.random.getBytesSync(16),a=L.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=L.random.getBytesSync(8),a=L.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+e.algorithm+'".');throw c.algorithm=e.algorithm,c}var l=L.pbe.opensslDeriveBytes(t,s.substr(0,8),o),u=a(l);u.start(s),u.update(b.toDer(H.privateKeyToAsn1(r))),u.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:L.util.bytesToHex(s).toUpperCase()},body:u.output.getBytes()};return L.pem.encode(f)};H.decryptRsaPrivateKey=function(r,t){var e=null,n=L.pem.decode(r)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=L.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=L.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=L.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=L.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=L.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return L.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return L.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return L.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=L.util.hexToBytes(n.dekInfo.parameters),c=L.pbe.opensslDeriveBytes(t,a.substr(0,8),s),l=o(c);if(l.start(a),l.update(L.util.createBuffer(n.body)),l.finish())e=l.output.getBytes();else return e}else e=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?e=H.decryptPrivateKeyInfo(b.fromDer(e),t):e=b.fromDer(e),e!==null&&(e=H.privateKeyFromAsn1(e)),e};H.pbe.generatePkcs12Key=function(r,t,e,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in L.md))throw new Error('"sha1" hash algorithm unavailable.');s=L.md.sha1.create()}var c=s.digestLength,l=s.blockLength,u=new L.util.ByteBuffer,f=new L.util.ByteBuffer;if(r!=null){for(a=0;a<r.length;a++)f.putInt16(r.charCodeAt(a));f.putInt16(0)}var h=f.length(),d=t.length(),p=new L.util.ByteBuffer;p.fillWithByte(e,l);var m=l*Math.ceil(d/l),y=new L.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%d));var g=l*Math.ceil(h/l),x=new L.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var _=y;_.putBuffer(x);for(var O=Math.ceil(i/c),C=1;C<=O;C++){var B=new L.util.ByteBuffer;B.putBytes(p.bytes()),B.putBytes(_.bytes());for(var X=0;X<n;X++)s.start(),s.update(B.getBytes()),B=s.digest();var J=new L.util.ByteBuffer;for(a=0;a<l;a++)J.putByte(B.at(a%c));var Xt=Math.ceil(d/l)+Math.ceil(h/l),Me=new L.util.ByteBuffer;for(o=0;o<Xt;o++){var ge=new L.util.ByteBuffer(_.getBytes(l)),ae=511;for(a=J.length()-1;a>=0;a--)ae=ae>>8,ae+=J.at(a)+ge.at(a),ge.setAt(a,ae&255);Me.putBuffer(ge)}_=Me,u.putBuffer(B)}return u.truncate(u.length()-i),u};H.pbe.getCipher=function(r,t,e){switch(r){case H.oids.pkcs5PBES2:return H.pbe.getCipherForPBES2(r,t,e);case H.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case H.oids["pbewithSHAAnd40BitRC2-CBC"]:return H.pbe.getCipherForPKCS12PBE(r,t,e);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=r,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};H.pbe.getCipherForPBES2=function(r,t,e){var n={},i=[];if(!b.validate(t,Wb,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(r=b.derToOid(n.kdfOid),r!==H.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=r,s.supportedOids=["pkcs5PBKDF2"],s}if(r=b.derToOid(n.encOid),r!==H.oids["aes128-CBC"]&&r!==H.oids["aes192-CBC"]&&r!==H.oids["aes256-CBC"]&&r!==H.oids["des-EDE3-CBC"]&&r!==H.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=r,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=L.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,l;switch(H.oids[r]){case"aes128-CBC":c=16,l=L.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,l=L.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,l=L.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,l=L.des.createDecryptionCipher;break;case"desCBC":c=8,l=L.des.createDecryptionCipher;break}var u=Nm(n.prfOid),f=L.pkcs5.pbkdf2(e,o,a,c,u),h=n.encIv,d=l(f);return d.start(h),d};H.pbe.getCipherForPKCS12PBE=function(r,t,e){var n={},i=[];if(!b.validate(t,Qb,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=L.util.createBuffer(n.salt),a=L.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,l,u;switch(r){case H.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,l=8,u=L.des.startDecrypting;break;case H.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,l=8,u=function(m,y){var g=L.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=r,s}var f=Nm(n.prfOid),h=H.pbe.generatePkcs12Key(e,o,1,a,c,f);f.start();var d=H.pbe.generatePkcs12Key(e,o,2,a,l,f);return u(h,d)};H.pbe.opensslDeriveBytes=function(r,t,e,n){if(typeof n>"u"||n===null){if(!("md5"in L.md))throw new Error('"md5" hash algorithm unavailable.');n=L.md.md5.create()}t===null&&(t="");for(var i=[Pm(n,r+t)],s=16,o=1;s<e;++o,s+=16)i.push(Pm(n,i[o-1]+r+t));return i.join("").substr(0,e)};function Pm(r,t){return r.start().update(t).digest().getBytes()}function Nm(r){var t;if(!r)t="hmacWithSHA1";else if(t=H.oids[b.derToOid(r)],!t){var e=new Error("Unsupported PRF OID.");throw e.oid=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}return km(t)}function km(r){var t=L.md;switch(r){case"hmacWithSHA224":t=L.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":r=r.substr(8).toLowerCase();break;default:var e=new Error("Unsupported PRF algorithm.");throw e.algorithm=r,e.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],e}if(!t||!(r in t))throw new Error("Unknown hash algorithm: "+r);return t[r].create()}function Xb(r,t,e,n){var i=b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OCTETSTRING,!1,r),b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(b.create(b.Class.UNIVERSAL,b.Type.INTEGER,!1,L.util.hexToBytes(e.toString(16))),b.create(b.Class.UNIVERSAL,b.Type.SEQUENCE,!0,[b.create(b.Class.UNIVERSAL,b.Type.OID,!1,b.oidToDer(H.oids[n]).getBytes()),b.create(b.Class.UNIVERSAL,b.Type.NULL,!1,"")])),i}});var Ym=T((f8,Gm)=>{var St=ft();Dn();qt();var us=Gm.exports=St.sha512=St.sha512||{};St.md.sha512=St.md.algorithms.sha512=us;var zm=St.sha384=St.sha512.sha384=St.sha512.sha384||{};zm.create=function(){return us.create("SHA-384")};St.md.sha384=St.md.algorithms.sha384=zm;St.sha512.sha256=St.sha512.sha256||{create:function(){return us.create("SHA-512/256")}};St.md["sha512/256"]=St.md.algorithms["sha512/256"]=St.sha512.sha256;St.sha512.sha224=St.sha512.sha224||{create:function(){return us.create("SHA-512/224")}};St.md["sha512/224"]=St.md.algorithms["sha512/224"]=St.sha512.sha224;us.create=function(r){if(Hm||jb(),typeof r>"u"&&(r="SHA-512"),!(r in kn))throw new Error("Invalid SHA-512 algorithm: "+r);for(var t=kn[r],e=null,n=St.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(r){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:r.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,l=0;l<c;++l)a.fullMessageLength.push(0);n=St.util.createBuffer(),e=new Array(t.length);for(var l=0;l<t.length;++l)e[l]=t[l].slice(0);return a},a.start(),a.update=function(c,l){l==="utf8"&&(c=St.util.encodeUtf8(c));var u=c.length;a.messageLength+=u,u=[u/4294967296>>>0,u>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=u[1],u[1]=u[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,u[0]=u[1]/4294967296>>>0;return n.putBytes(c),$m(e,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=St.util.createBuffer();c.putBytes(n.bytes());var l=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,u=l&a.blockLength-1;c.putBytes(wu.substr(0,a.blockLength-u));for(var f,h,d=a.fullMessageLength[0]*8,p=0;p<a.fullMessageLength.length-1;++p)f=a.fullMessageLength[p+1]*8,h=f/4294967296>>>0,d+=h,c.putInt32(d>>>0),d=f>>>0;c.putInt32(d);for(var m=new Array(e.length),p=0;p<e.length;++p)m[p]=e[p].slice(0);$m(m,i,c);var y=St.util.createBuffer(),g;r==="SHA-512"?g=m.length:r==="SHA-384"?g=m.length-2:g=m.length-4;for(var p=0;p<g;++p)y.putInt32(m[p][0]),(p!==g-1||r!=="SHA-512/224")&&y.putInt32(m[p][1]);return y},a};var wu=null,Hm=!1,Eu=null,kn=null;function jb(){wu=String.fromCharCode(128),wu+=St.util.fillString(String.fromCharCode(0),128),Eu=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],kn={},kn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],kn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],kn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],kn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Hm=!0}function $m(r,t,e){for(var n,i,s,o,a,c,l,u,f,h,d,p,m,y,g,x,_,O,C,B,X,J,Xt,Me,ge,ae,Zn,Zs,zt,fe,V,Ec,xc,vc,bc,qf=e.length();qf>=128;){for(zt=0;zt<16;++zt)t[zt][0]=e.getInt32()>>>0,t[zt][1]=e.getInt32()>>>0;for(;zt<80;++zt)Ec=t[zt-2],fe=Ec[0],V=Ec[1],n=((fe>>>19|V<<13)^(V>>>29|fe<<3)^fe>>>6)>>>0,i=((fe<<13|V>>>19)^(V<<3|fe>>>29)^(fe<<26|V>>>6))>>>0,vc=t[zt-15],fe=vc[0],V=vc[1],s=((fe>>>1|V<<31)^(fe>>>8|V<<24)^fe>>>7)>>>0,o=((fe<<31|V>>>1)^(fe<<24|V>>>8)^(fe<<25|V>>>7))>>>0,xc=t[zt-7],bc=t[zt-16],V=i+xc[1]+o+bc[1],t[zt][0]=n+xc[0]+s+bc[0]+(V/4294967296>>>0)>>>0,t[zt][1]=V>>>0;for(m=r[0][0],y=r[0][1],g=r[1][0],x=r[1][1],_=r[2][0],O=r[2][1],C=r[3][0],B=r[3][1],X=r[4][0],J=r[4][1],Xt=r[5][0],Me=r[5][1],ge=r[6][0],ae=r[6][1],Zn=r[7][0],Zs=r[7][1],zt=0;zt<80;++zt)l=((X>>>14|J<<18)^(X>>>18|J<<14)^(J>>>9|X<<23))>>>0,u=((X<<18|J>>>14)^(X<<14|J>>>18)^(J<<23|X>>>9))>>>0,f=(ge^X&(Xt^ge))>>>0,h=(ae^J&(Me^ae))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,d=(m&g|_&(m^g))>>>0,p=(y&x|O&(y^x))>>>0,V=Zs+u+h+Eu[zt][1]+t[zt][1],n=Zn+l+f+Eu[zt][0]+t[zt][0]+(V/4294967296>>>0)>>>0,i=V>>>0,V=c+p,s=a+d+(V/4294967296>>>0)>>>0,o=V>>>0,Zn=ge,Zs=ae,ge=Xt,ae=Me,Xt=X,Me=J,V=B+i,X=C+n+(V/4294967296>>>0)>>>0,J=V>>>0,C=_,B=O,_=g,O=x,g=m,x=y,V=i+o,m=n+s+(V/4294967296>>>0)>>>0,y=V>>>0;V=r[0][1]+y,r[0][0]=r[0][0]+m+(V/4294967296>>>0)>>>0,r[0][1]=V>>>0,V=r[1][1]+x,r[1][0]=r[1][0]+g+(V/4294967296>>>0)>>>0,r[1][1]=V>>>0,V=r[2][1]+O,r[2][0]=r[2][0]+_+(V/4294967296>>>0)>>>0,r[2][1]=V>>>0,V=r[3][1]+B,r[3][0]=r[3][0]+C+(V/4294967296>>>0)>>>0,r[3][1]=V>>>0,V=r[4][1]+J,r[4][0]=r[4][0]+X+(V/4294967296>>>0)>>>0,r[4][1]=V>>>0,V=r[5][1]+Me,r[5][0]=r[5][0]+Xt+(V/4294967296>>>0)>>>0,r[5][1]=V>>>0,V=r[6][1]+ae,r[6][0]=r[6][0]+ge+(V/4294967296>>>0)>>>0,r[6][1]=V>>>0,V=r[7][1]+Zs,r[7][0]=r[7][0]+Zn+(V/4294967296>>>0)>>>0,r[7][1]=V>>>0,qf-=128}}});var Tg=T((P3,Ig)=>{function SS(){return!!(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&process.versions.electron||typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Electron")>=0)}Ig.exports=SS});var kg=T(Vs=>{(function(){var r,t,e,n,i,s,o,a;a=function(c){var l,u,f,h;return l=(c&255<<24)>>>24,u=(c&255<<16)>>>16,f=(c&255<<8)>>>8,h=c&255,[l,u,f,h].join(".")},o=function(c){var l,u,f,h,d,p;for(l=[],f=h=0;h<=3&&c.length!==0;f=++h){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=t(c),d=p[0],u=p[1],c=c.substring(u),l.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(l.length){case 1:if(l[0]>4294967295)throw new Error("Invalid IP");return l[0]>>>0;case 2:if(l[0]>255||l[1]>16777215)throw new Error("Invalid IP");return(l[0]<<24|l[1])>>>0;case 3:if(l[0]>255||l[1]>255||l[2]>65535)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2])>>>0;case 4:if(l[0]>255||l[1]>255||l[2]>255||l[3]>255)throw new Error("Invalid IP");return(l[0]<<24|l[1]<<16|l[2]<<8|l[3])>>>0;default:throw new Error("Invalid IP")}},e=function(c){return c.charCodeAt(0)},n=e("0"),s=e("a"),i=e("A"),t=function(c){var l,u,f,h,d;for(h=0,l=10,u="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,l=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,l=8,u="7")),d=f;f<c.length;){if("0"<=c[f]&&c[f]<=u)h=h*l+(e(c[f])-n)>>>0;else if(l===16)if("a"<=c[f]&&c[f]<="f")h=h*l+(10+e(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")h=h*l+(10+e(c[f])-i)>>>0;else break;else break;if(h>4294967295)throw new Error("too large");f++}if(f===d)throw new Error("empty octet");return[h,f]},r=function(){function c(l,u){var f,h,d,p;if(typeof l!="string")throw new Error("Missing `net' parameter");if(u||(p=l.split("/",2),l=p[0],u=p[1]),u||(u=32),typeof u=="string"&&u.indexOf(".")>-1){try{this.maskLong=o(u)}catch(m){throw f=m,new Error("Invalid mask: "+u)}for(h=d=32;d>=0;h=--d)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;break}}else if(u||u===0)this.bitmask=parseInt(u,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(l)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+l)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+u);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(l){return typeof l=="string"&&(l.indexOf("/")>0||l.split(".").length!==4)&&(l=new c(l)),l instanceof c?this.contains(l.base)&&this.contains(l.broadcast||l.last):(o(l)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(l){return l==null&&(l=1),new c(a(this.netLong+this.size*l),this.mask)},c.prototype.forEach=function(l){var u,f,h;for(h=o(this.first),f=o(this.last),u=0;h<=f;)l(a(h),h,u),u++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Vs.ip2long=o,Vs.long2ip=a,Vs.Netmask=r}).call(Vs)});var Fg=T((Ug,Oa)=>{(function(r){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",e={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(d,p){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let m=0,y=-1,g=(d.match(a.zoneIndex)||[])[0],x,_;for(g&&(g=g.substring(1),d=d.replace(/%.+$/,""));(y=d.indexOf(":",y+1))>=0;)m++;if(d.substr(0,2)==="::"&&m--,d.substr(-2,2)==="::"&&m--,m>p)return null;for(_=p-m,x=":";_--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),p=function(){let O=d.split(":"),C=[];for(let B=0;B<O.length;B++)C.push(parseInt(O[B],16));return C}(),{parts:p,zoneId:g}}function l(d,p,m,y){if(d.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),d[g]>>x!==p[g]>>x)return!1;y-=m,g+=1}return!0}function u(d){if(i.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(n.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function f(d,p){for(;d.length<p;)d=`0${d}`;return d}let h={};h.IPv4=function(){function d(p){if(p.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<p.length;m++)if(y=p[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=p}return d.prototype.SpecialRanges={unspecified:[[new d([0,0,0,0]),8]],broadcast:[[new d([255,255,255,255]),32]],multicast:[[new d([224,0,0,0]),4]],linkLocal:[[new d([169,254,0,0]),16]],loopback:[[new d([127,0,0,0]),8]],carrierGradeNat:[[new d([100,64,0,0]),10]],private:[[new d([10,0,0,0]),8],[new d([172,16,0,0]),12],[new d([192,168,0,0]),16]],reserved:[[new d([192,0,0,0]),24],[new d([192,0,2,0]),24],[new d([192,88,99,0]),24],[new d([198,51,100,0]),24],[new d([203,0,113,0]),24],[new d([240,0,0,0]),4]]},d.prototype.kind=function(){return"ipv4"},d.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return l(this.octets,p.octets,8,m)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,_;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(_=y[x],m&&_!==0)return null;_!==8&&(m=!0),p+=_}else return null;return 32-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),h.IPv4.broadcastAddressFromCIDR=function(d){try{let p=this.parseCIDR(d),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.isIPv4=function(d){return this.parser(d)!==null},h.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},h.IPv4.isValidFourPartDecimal=function(d){return!!(h.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.networkAddressFromCIDR=function(d){let p,m,y,g,x;try{for(p=this.parseCIDR(d),y=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.parse=function(d){let p=this.parser(d);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},h.IPv4.parseCIDR=function(d){let p;if(p=d.match(/^(.+)\/(\d+)$/)){let m=parseInt(p[2]);if(m>=0&&m<=32){let y=[this.parse(p[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(d){let p,m,y;if(p=d.match(e.fourOctet))return function(){let g=p.slice(1,6),x=[];for(let _=0;_<g.length;_++)m=g[_],x.push(u(m));return x}();if(p=d.match(e.longValue)){if(y=u(p[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(p=d.match(e.twoOctet))?function(){let g=p.slice(1,4),x=[];if(y=u(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(u(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(p=d.match(e.threeOctet))?function(){let g=p.slice(1,5),x=[];if(y=u(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(u(g[0])),x.push(u(g[1])),x.push(y>>8&255),x.push(y&255),x}():null},h.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],m=0,y=Math.floor(d/8);for(;m<y;)p[m]=255,m++;return y<4&&(p[y]=Math.pow(2,d%8)-1<<8-d%8),new this(p)},h.IPv6=function(){function d(p,m){let y,g;if(p.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(p[y]<<8|p[y+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(p,m){let y;if(m===void 0&&(y=p,p=y[0],m=y[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return l(this.parts,p.parts,16,m)},d.prototype.prefixLengthFromSubnetMask=function(){let p=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let _=7;_>=0;_-=1)if(g=this.parts[_],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!0),p+=x}else return null;return 128-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let p,m=[],y=this.parts;for(let g=0;g<y.length;g++)p=y[g],m.push(p>>8),m.push(p&255);return m},d.prototype.toFixedLengthString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let p=this.parts.slice(-2),m=p[0],y=p[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},d.prototype.toNormalizedString=function(){let p=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),p+m},d.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=p.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},d.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},d}(),h.IPv6.broadcastAddressFromCIDR=function(d){try{let p=this.parseCIDR(d),m=p[0].toByteArray(),y=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},h.IPv6.isIPv6=function(d){return this.parser(d)!==null},h.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let p=this.parser(d);return new this(p.parts,p.zoneId),!0}catch{return!1}},h.IPv6.networkAddressFromCIDR=function(d){let p,m,y,g,x;try{for(p=this.parseCIDR(d),y=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(_){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${_})`)}},h.IPv6.parse=function(d){let p=this.parser(d);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},h.IPv6.parseCIDR=function(d){let p,m,y;if((m=d.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return y=[this.parse(m[1]),p],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(d){let p,m,y,g,x,_;if(y=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(d))return c(d,8);if((y=d.match(a.transitional))&&(_=y[6]||"",p=c(y[1].slice(0,-1)+_,6),p.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return p.parts.push(x[0]<<8|x[1]),p.parts.push(x[2]<<8|x[3]),{parts:p.parts,zoneId:p.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(d/8);for(;m<y;)p[m]=255,m++;return y<16&&(p[y]=Math.pow(2,d%8)-1<<8-d%8),new this(p)},h.fromByteArray=function(d){let p=d.length;if(p===4)return new h.IPv4(d);if(p===16)return new h.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},h.isValid=function(d){return h.IPv6.isValid(d)||h.IPv4.isValid(d)},h.parse=function(d){if(h.IPv6.isValid(d))return h.IPv6.parse(d);if(h.IPv4.isValid(d))return h.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},h.parseCIDR=function(d){try{return h.IPv6.parseCIDR(d)}catch{try{return h.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},h.process=function(d){let p=this.parse(d);return p.kind()==="ipv6"&&p.isIPv4MappedAddress()?p.toIPv4Address():p},h.subnetMatch=function(d,p,m){let y,g,x,_;m==null&&(m="unicast");for(g in p)if(Object.prototype.hasOwnProperty.call(p,g)){for(x=p[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(_=x[y],d.kind()===_[0].kind()&&d.match.apply(d,_))return g}return m},typeof Oa<"u"&&Oa.exports?Oa.exports=h:r.ipaddr=h})(Ug)});var Wg=T((FP,of)=>{"use strict";var OS=Object.prototype.hasOwnProperty,ue="~";function $s(){}Object.create&&($s.prototype=Object.create(null),new $s().__proto__||(ue=!1));function MS(r,t,e){this.fn=r,this.context=t,this.once=e||!1}function Yg(r,t,e,n,i){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new MS(e,n||r,i),o=ue?ue+t:t;return r._events[o]?r._events[o].fn?r._events[o]=[r._events[o],s]:r._events[o].push(s):(r._events[o]=s,r._eventsCount++),r}function Qa(r,t){--r._eventsCount===0?r._events=new $s:delete r._events[t]}function oe(){this._events=new $s,this._eventsCount=0}oe.prototype.eventNames=function(){var t=[],e,n;if(this._eventsCount===0)return t;for(n in e=this._events)OS.call(e,n)&&t.push(ue?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};oe.prototype.listeners=function(t){var e=ue?ue+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};oe.prototype.listenerCount=function(t){var e=ue?ue+t:t,n=this._events[e];return n?n.fn?1:n.length:0};oe.prototype.emit=function(t,e,n,i,s,o){var a=ue?ue+t:t;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,s),!0;case 6:return c.fn.call(c.context,e,n,i,s,o),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var h=c.length,d;for(f=0;f<h;f++)switch(c[f].once&&this.removeListener(t,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,e);break;case 3:c[f].fn.call(c[f].context,e,n);break;case 4:c[f].fn.call(c[f].context,e,n,i);break;default:if(!u)for(d=1,u=new Array(l-1);d<l;d++)u[d-1]=arguments[d];c[f].fn.apply(c[f].context,u)}}return!0};oe.prototype.on=function(t,e,n){return Yg(this,t,e,n,!1)};oe.prototype.once=function(t,e,n){return Yg(this,t,e,n,!0)};oe.prototype.removeListener=function(t,e,n,i){var s=ue?ue+t:t;if(!this._events[s])return this;if(!e)return Qa(this,s),this;var o=this._events[s];if(o.fn)o.fn===e&&(!i||o.once)&&(!n||o.context===n)&&Qa(this,s);else{for(var a=0,c=[],l=o.length;a<l;a++)(o[a].fn!==e||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:Qa(this,s)}return this};oe.prototype.removeAllListeners=function(t){var e;return t?(e=ue?ue+t:t,this._events[e]&&Qa(this,e)):(this._events=new $s,this._eventsCount=0),this};oe.prototype.off=oe.prototype.removeListener;oe.prototype.addListener=oe.prototype.on;oe.prefixed=ue;oe.EventEmitter=oe;typeof of<"u"&&(of.exports=oe)});var dw=T((ik,hw)=>{"use strict";hw.exports=fw;var zS=_c(),pn=fw.prototype,HS=new Date%1e9;function GS(){return(Math.random()*1e9>>>0)+HS++}function fw(r){r=r||{},this.id=r.id||GS(),this.max=r.max||1/0,this.items=r.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(r.lastModified||new Date);for(var t,e,n=this.items.length;n--;)t=this.items[n],e=new Date(t.expires)-new Date,this._lookup[t.key]=t,e>0?this.expire(t.key,e):e<=0&&this.delete(t.key)}pn.has=function(r){return r in this._lookup};pn.get=function(r){if(!this.has(r))return null;var t=this._lookup[r];return t.refresh&&this.expire(r,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};pn.meta=function(r){if(!this.has(r))return null;var t=this._lookup[r];return"meta"in t?t.meta:null};pn.set=function(r,t,e){var n=this._lookup[r],i=this._lookup[r]={key:r,value:t};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),e&&("ttl"in e&&this.expire(r,e.ttl),"meta"in e&&(i.meta=e.meta),e.refresh&&(i.refresh=e.ttl)),this};pn.delete=function(r){var t=this._lookup[r];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[r],this.size--,this):!1};pn.expire=function(r,t){var e=t||0,n=this._lookup[r];if(!n)return this;if(typeof e=="string"&&(e=zS(t)),typeof e!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),e),n.expires=Number(new Date)+e,this};pn.clear=function(){for(var r=this.items.length;r--;)this.delete(this.items[r].key);return this};pn.toJSON=function(){for(var r=new Array(this.items.length),t,e=r.length;e--;)t=this.items[e],r[e]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:r}}});var Uf=T((Uk,Mf)=>{function bw(r){let t=new globalThis.AbortController;function e(){t.abort();for(let n of r)!n||!n.removeEventListener||n.removeEventListener("abort",e)}for(let n of r)if(!(!n||!n.addEventListener)){if(n.aborted){e();break}n.addEventListener("abort",e)}return t.signal}Mf.exports=bw;Mf.exports.anySignal=bw});var Sw=T((Kk,_w)=>{_w.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Iw=T((qk,Rw)=>{var Aw=Sw();Rw.exports=class{constructor(t){this.hwm=t||16,this.head=new Aw(this.hwm),this.tail=this.head}push(t){if(!this.head.push(t)){let e=this.head;this.head=e.next=new Aw(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next){let e=this.tail.next;return this.tail.next=null,this.tail=e,this.tail.shift()}return t}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var Cw=T(($k,Tw)=>{"use strict";var JS=()=>{let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r};Tw.exports=JS});var Pw=T((Hk,Lw)=>{var Bw=Iw(),Dw=Cw();Lw.exports=class{constructor(){this._buffer=new Bw,this._waitingConsumers=new Bw}push(t){let{promise:e,resolve:n}=Dw();return this._buffer.push({chunk:t,resolve:n}),this._consume(),e}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let t=this._waitingConsumers.shift(),e=this._buffer.shift();t.resolve(e.chunk),e.resolve()}}shift(){let{promise:t,resolve:e}=Dw();return this._waitingConsumers.push({resolve:e}),this._consume(),t}isEmpty(){return this._buffer.isEmpty()}}});var rA={};ne(rA,{createLibp2p:()=>eA});var Xe=N(Sc(),1);var Cc={};ne(Cc,{base58btc:()=>Mt,base58flickr:()=>u1});function s1(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var i=0;i<r.length;i++){var s=r.charAt(i),o=s.charCodeAt(0);if(e[o]!==255)throw new TypeError(s+" is ambiguous");e[o]=i}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,y=0,g=0,x=p.length;g!==x&&p[g]===0;)g++,m++;for(var _=(x-g)*u+1>>>0,O=new Uint8Array(_);g!==x;){for(var C=p[g],B=0,X=_-1;(C!==0||B<y)&&X!==-1;X--,B++)C+=256*O[X]>>>0,O[X]=C%a>>>0,C=C/a>>>0;if(C!==0)throw new Error("Non-zero carry");y=B,g++}for(var J=_-y;J!==_&&O[J]===0;)J++;for(var Xt=c.repeat(m);J<_;++J)Xt+=r.charAt(O[J]);return Xt}function h(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var y=0,g=0;p[m]===c;)y++,m++;for(var x=(p.length-m)*l+1>>>0,_=new Uint8Array(x);p[m];){var O=e[p.charCodeAt(m)];if(O===255)return;for(var C=0,B=x-1;(O!==0||C<g)&&B!==-1;B--,C++)O+=a*_[B]>>>0,_[B]=O%256>>>0,O=O/256>>>0;if(O!==0)throw new Error("Non-zero carry");g=C,m++}if(p[m]!==" "){for(var X=x-g;X!==x&&_[X]===0;)X++;for(var J=new Uint8Array(y+(x-X)),Xt=y;X!==x;)J[Xt++]=_[X++];return J}}}function d(p){var m=h(p);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:h,decode:d}}var o1=s1,a1=o1,Yf=a1;var aA=new Uint8Array(0);var Wf=(r,t)=>{if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0},gr=r=>{if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")};var Qf=r=>new TextEncoder().encode(r),Xf=r=>new TextDecoder().decode(r);var Ac=class{constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Rc=class{constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Jf(this,t)}},Ic=class{constructor(t){this.decoders=t}or(t){return Jf(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Jf=(r,t)=>new Ic({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),Tc=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ac(t,e,n),this.decoder=new Rc(t,e,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},ei=({name:r,prefix:t,encode:e,decode:n})=>new Tc(r,t,e,n),Fr=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=Yf(e,t);return ei({prefix:r,name:t,encode:n,decode:s=>gr(i(s))})},c1=(r,t,e,n)=>{let i={};for(let u=0;u<t.length;++u)i[t[u]]=u;let s=r.length;for(;r[s-1]==="=";)--s;let o=new Uint8Array(s*e/8|0),a=0,c=0,l=0;for(let u=0;u<s;++u){let f=i[r[u]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|f,a+=e,a>=8&&(a-=8,o[l++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},l1=(r,t,e)=>{let n=t[t.length-1]==="=",i=(1<<e)-1,s="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>e;)o-=e,s+=t[i&a>>o];if(o&&(s+=t[i&a<<e-o]),n)for(;s.length*e&7;)s+="=";return s},Lt=({name:r,prefix:t,bitsPerChar:e,alphabet:n})=>ei({prefix:t,name:r,encode(i){return l1(i,n,e)},decode(i){return c1(i,n,e,r)}});var Mt=Fr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),u1=Fr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bc={};ne(Bc,{base32:()=>Ee,base32hex:()=>p1,base32hexpad:()=>y1,base32hexpadupper:()=>g1,base32hexupper:()=>m1,base32pad:()=>h1,base32padupper:()=>d1,base32upper:()=>f1,base32z:()=>w1});var Ee=Lt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),f1=Lt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),h1=Lt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),d1=Lt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),p1=Lt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),m1=Lt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),y1=Lt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),g1=Lt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),w1=Lt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Dc={};ne(Dc,{base64:()=>yn,base64pad:()=>E1,base64url:()=>x1,base64urlpad:()=>v1});var yn=Lt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),E1=Lt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),x1=Lt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),v1=Lt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});Xe.default.formatters.b=r=>r==null?"undefined":Mt.baseEncode(r);Xe.default.formatters.t=r=>r==null?"undefined":Ee.baseEncode(r);Xe.default.formatters.m=r=>r==null?"undefined":yn.baseEncode(r);Xe.default.formatters.p=r=>r==null?"undefined":r.toString();Xe.default.formatters.c=r=>r==null?"undefined":r.toString();Xe.default.formatters.k=r=>r==null?"undefined":r.toString();function U(r){return Object.assign((0,Xe.default)(r),{error:(0,Xe.default)(`${r}:error`),trace:(0,Xe.default)(`${r}:trace`)})}var gn=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},wr,Pt=class extends EventTarget{constructor(){super(...arguments),wr.set(this,new Map)}listenerCount(t){let e=gn(this,wr,"f").get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let i=gn(this,wr,"f").get(t);i==null&&(i=[],gn(this,wr,"f").set(t,i)),i.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let i=gn(this,wr,"f").get(t);i!=null&&(i=i.filter(({callback:s})=>s!==e),gn(this,wr,"f").set(t,i))}dispatchEvent(t){let e=super.dispatchEvent(t),n=gn(this,wr,"f").get(t.type);return n==null||(n=n.filter(({once:i})=>!i),gn(this,wr,"f").set(t.type,n)),e}safeDispatchEvent(t,e){return this.dispatchEvent(new $(t,e))}};wr=new WeakMap;var Lc=class extends Event{constructor(t,e){super(t,e),this.detail=e?.detail}},$=globalThis.CustomEvent??Lc;function Er(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}var eo=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*i)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let h=Number.parseInt(f,t);if(!Number.isNaN(h))return h});if(u===void 0)break;if(s*=t,s+=u,s>l||(o+=1,e!==void 0&&o>e))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let i=n*2;if(n<e.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return e[i]=o[0],e[i+1]=o[1],e[i+2]=o[2],e[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];e[i]=s>>8,e[i+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,i]=t(e);if(n===16)return e;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=t(s.subarray(0,o));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var jf=45,b1=15,ri=new eo;function th(r){if(!(r.length>b1))return ri.new(r).parseWith(()=>ri.readIPv4Addr())}function eh(r){if(!(r.length>jf))return ri.new(r).parseWith(()=>ri.readIPv6Addr())}function rh(r){if(!(r.length>jf))return ri.new(r).parseWith(()=>ri.readIPAddr())}function nh(r){return!!th(r)}function ih(r){return!!eh(r)}function ni(r){return!!rh(r)}var Pc={};ne(Pc,{identity:()=>_1});var _1=ei({prefix:"\0",name:"identity",encode:r=>Xf(r),decode:r=>Qf(r)});var Nc={};ne(Nc,{base2:()=>S1});var S1=Lt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var kc={};ne(kc,{base8:()=>A1});var A1=Lt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Oc={};ne(Oc,{base10:()=>R1});var R1=Fr({prefix:"9",name:"base10",alphabet:"0123456789"});var Mc={};ne(Mc,{base16:()=>I1,base16upper:()=>T1});var I1=Lt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),T1=Lt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Uc={};ne(Uc,{base36:()=>C1,base36upper:()=>B1});var C1=Fr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),B1=Fr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Fc={};ne(Fc,{base256emoji:()=>k1});var sh=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),D1=sh.reduce((r,t,e)=>(r[e]=t,r),[]),L1=sh.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function P1(r){return r.reduce((t,e)=>(t+=D1[e],t),"")}function N1(r){let t=[];for(let e of r){let n=L1[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var k1=ei({prefix:"\u{1F680}",name:"base256emoji",encode:P1,decode:N1});var $c={};ne($c,{sha256:()=>ie,sha512:()=>tE});var O1=ch,oh=128,M1=127,U1=~M1,F1=Math.pow(2,31);function ch(r,t,e){t=t||[],e=e||0;for(var n=e;r>=F1;)t[e++]=r&255|oh,r/=128;for(;r&U1;)t[e++]=r&255|oh,r>>>=7;return t[e]=r|0,ch.bytes=e-n+1,t}var K1=Kc,V1=128,ah=127;function Kc(r,n){var e=0,n=n||0,i=0,s=n,o,a=r.length;do{if(s>=a)throw Kc.bytes=0,new RangeError("Could not decode varint");o=r[s++],e+=i<28?(o&ah)<<i:(o&ah)*Math.pow(2,i),i+=7}while(o>=V1);return Kc.bytes=s-n,e}var q1=Math.pow(2,7),$1=Math.pow(2,14),z1=Math.pow(2,21),H1=Math.pow(2,28),G1=Math.pow(2,35),Y1=Math.pow(2,42),W1=Math.pow(2,49),Q1=Math.pow(2,56),X1=Math.pow(2,63),Z1=function(r){return r<q1?1:r<$1?2:r<z1?3:r<H1?4:r<G1?5:r<Y1?6:r<W1?7:r<Q1?8:r<X1?9:10},J1={encode:O1,decode:K1,encodingLength:Z1},j1=J1,qi=j1;var $i=(r,t=0)=>[qi.decode(r,t),qi.decode.bytes],ii=(r,t,e=0)=>(qi.encode(r,t,e),t),si=r=>qi.encodingLength(r);var Ze=(r,t)=>{let e=t.byteLength,n=si(r),i=n+si(e),s=new Uint8Array(i+e);return ii(r,s,0),ii(e,s,n),s.set(t,i),new oi(r,e,t,s)},wn=r=>{let t=gr(r),[e,n]=$i(t),[i,s]=$i(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new oi(e,i,o,t)},lh=(r,t)=>{if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Wf(r.bytes,e.bytes)}},oi=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var qc=({name:r,code:t,encode:e})=>new Vc(r,t,e),Vc=class{constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?Ze(this.code,e):e.then(n=>Ze(this.code,n))}else throw Error("Unknown type, must be binary type")}};var fh=r=>async t=>new Uint8Array(await crypto.subtle.digest(r,t)),ie=qc({name:"sha2-256",code:18,encode:fh("SHA-256")}),tE=qc({name:"sha2-512",code:19,encode:fh("SHA-512")});var zc={};ne(zc,{identity:()=>Kr});var hh=0,eE="identity",dh=gr,rE=r=>Ze(hh,dh(r)),Kr={code:hh,name:eE,encode:dh,digest:rE};var FA=new TextEncoder,KA=new TextDecoder;var ph=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return oE(e,Hc(r),t||Mt.encoder);default:return aE(e,Hc(r),t||Ee.encoder)}};var mh=new WeakMap,Hc=r=>{let t=mh.get(r);if(t==null){let e=new Map;return mh.set(r,e),e}return t},Et=class{constructor(t,e,n,i){this.code=e,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==zi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==cE)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return Et.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=Ze(t,e);return Et.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return Et.equals(this,t)}static equals(t,e){let n=e;return n&&t.code===n.code&&t.version===n.version&&lh(t.multihash,n.multihash)}toString(t){return ph(this,t)}toJSON(){return{"/":ph(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof Et)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:i,multihash:s,bytes:o}=e;return new Et(n,i,s,o||yh(n,i,s.bytes))}else if(e[lE]===!0){let{version:n,multihash:i,code:s}=e,o=wn(i);return Et.create(n,s,o)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==zi)throw new Error(`Version 0 CID must use dag-pb (code: ${zi}) block encoding`);return new Et(t,e,n,n.bytes)}case 1:{let i=yh(t,e,n.bytes);return new Et(t,e,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return Et.create(0,zi,t)}static createV1(t,e){return Et.create(1,t,e)}static decode(t){let[e,n]=Et.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=Et.inspectBytes(t),n=e.size-e.multihashSize,i=gr(t.subarray(n,n+e.multihashSize));if(i.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=i.subarray(e.multihashSize-e.digestSize),o=new oi(e.multihashCode,e.digestSize,s,i);return[e.version===0?Et.createV0(o):Et.createV1(e.codec,o),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[f,h]=$i(t.subarray(e));return e+=h,f},i=n(),s=zi;if(i===18?(i=0,e=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=e,a=n(),c=n(),l=e+c,u=l-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(t,e){let[n,i]=sE(t,e),s=Et.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Hc(s).set(n,t),s}},sE=(r,t)=>{switch(r[0]){case"Q":{let e=t||Mt;return[Mt.prefix,e.decode(`${Mt.prefix}${r}`)]}case Mt.prefix:{let e=t||Mt;return[Mt.prefix,e.decode(r)]}case Ee.prefix:{let e=t||Ee;return[Ee.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}},oE=(r,t,e)=>{let{prefix:n}=e;if(n!==Mt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let i=t.get(n);if(i==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return i},aE=(r,t,e)=>{let{prefix:n}=e,i=t.get(n);if(i==null){let s=e.encode(r);return t.set(n,s),s}else return i},zi=112,cE=18,yh=(r,t,e)=>{let n=si(r),i=n+si(t),s=new Uint8Array(i+e.byteLength);return ii(r,s,0),ii(t,s,n),s.set(e,i),s},lE=Symbol.for("@ipld/js-cid/CID");var Vr={...Pc,...Nc,...kc,...Oc,...Mc,...Bc,...Uc,...Cc,...Dc,...Fc},XA={...$c,...zc};function xn(r){return globalThis.Buffer!=null?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r}function xr(r=0){return globalThis.Buffer?.alloc!=null?xn(globalThis.Buffer.alloc(r)):new Uint8Array(r)}function vr(r=0){return globalThis.Buffer?.allocUnsafe!=null?xn(globalThis.Buffer.allocUnsafe(r)):new Uint8Array(r)}function wh(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var gh=wh("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Gc=wh("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=vr(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),uE={utf8:gh,"utf-8":gh,hex:Vr.base16,latin1:Gc,ascii:Gc,binary:Gc,...Vr},no=uE;function z(r,t="utf8"){let e=no[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):e.encoder.encode(r).substring(1)}var Eh=nh,fE=ih,Yc=function(r){let t=0;if(r=r.toString().trim(),Eh(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(fE(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Eh(e[n]),o;s&&(o=Yc(e[n]),e[n]=z(o.slice(0,2),"base16")),o!=null&&++n<8&&e.splice(n,0,z(o.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let i=new Uint8Array(t+16);for(n=0;n<e.length;n++){let s=parseInt(e[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},xh=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let i=[];for(let s=0;s<e;s++)i.push(r[t+s]);return i.join(".")}if(e===16){let i=[];for(let s=0;s<e;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Hi={},Wc={},dE=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];dE.forEach(r=>{let t=pE(...r);Wc[t.code]=t,Hi[t.name]=t});function pE(r,t,e,n,i){return{code:r,size:t,name:e,resolvable:!!n,path:!!i}}function ot(r){if(typeof r=="number"){if(Wc[r]!=null)return Wc[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Hi[r]!=null)return Hi[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var Je=N(io(),1);function F(r,t="utf8"){let e=no[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?xn(globalThis.Buffer.from(r,"utf-8")):e.decoder.decode(`${e.prefix}${r}`)}function Ut(r,t){t==null&&(t=r.reduce((i,s)=>i+s.length,0));let e=vr(t),n=0;for(let i of r)e.set(i,n),n+=i.length;return xn(e)}function Nh(r,t){switch(ot(r).code){case 4:case 41:return CE(t);case 42:return Lh(t);case 6:case 273:case 33:case 132:return Oh(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Lh(t);case 421:return PE(t);case 444:return Ph(t);case 445:return Ph(t);case 466:return LE(t);default:return z(t,"base16")}}function kh(r,t){switch(ot(r).code){case 4:return Bh(t);case 41:return Bh(t);case 42:return Dh(t);case 6:case 273:case 33:case 132:return Jc(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Dh(t);case 421:return BE(t);case 444:return NE(t);case 445:return kE(t);case 466:return DE(t);default:return F(t,"base16")}}var Zc=Object.values(Vr).map(r=>r.decoder),TE=function(){let r=Zc[0].or(Zc[1]);return Zc.slice(2).forEach(t=>r=r.or(t)),r}();function Bh(r){if(!ni(r))throw new Error("invalid ip address");return Yc(r)}function CE(r){let t=xh(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!ni(t))throw new Error("invalid ip address");return t}function Jc(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Oh(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Dh(r){let t=F(r),e=Uint8Array.from(Je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function Lh(r){let t=Je.default.decode(r);if(r=r.slice(Je.default.decode.bytes),r.length!==t)throw new Error("inconsistent lengths");return z(r)}function BE(r){let t;r[0]==="Q"||r[0]==="1"?t=wn(Mt.decode(`z${r}`)).bytes:t=Et.parse(r).multihash.bytes;let e=Uint8Array.from(Je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function DE(r){let t=TE.decode(r),e=Uint8Array.from(Je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function LE(r){let t=Je.default.decode(r),e=r.slice(Je.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return"u"+z(e,"base64url")}function PE(r){let t=Je.default.decode(r),e=r.slice(Je.default.decode.bytes);if(e.length!==t)throw new Error("inconsistent lengths");return z(e,"base58btc")}function NE(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=Ee.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Jc(n);return Ut([e,i],e.length+i.length)}function kE(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Ee.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Jc(n);return Ut([e,i],e.length+i.length)}function Ph(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=z(t,"base32"),i=Oh(e);return`${n}:${i}`}var ai=N(io(),1);function OE(r){let t=[],e=r.split("/").slice(1);if(e.length===1&&e[0]==="")return[];for(let n=0;n<e.length;n++){let i=e[n],s=ot(i);if(s.size===0){t.push([i]);continue}if(n++,n>=e.length)throw Uh("invalid address: "+r);if(s.path===!0){t.push([i,nl(e.slice(n).join("/"))]);break}t.push([i,e[n]])}return t}function ME(r){let t=[];return r.map(e=>{let n=ao(e);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),nl(t.join("/"))}function UE(r){return r.map(t=>{Array.isArray(t)||(t=[t]);let e=ao(t);return t.length>1?[e.code,kh(e.code,t[1])]:[e.code]})}function jc(r){return r.map(t=>{let e=ao(t);return t[1]!=null?[e.code,Nh(e.code,t[1])]:[e.code]})}function tl(r){return oo(Ut(r.map(t=>{let e=ao(t),n=Uint8Array.from(ai.default.encode(e.code));return t.length>1&&t[1]!=null&&(n=Ut([n,t[1]])),n})))}function el(r,t){return r.size>0?r.size/8:r.size===0?0:ai.default.decode(t)+(ai.default.decode.bytes??0)}function so(r){let t=[],e=0;for(;e<r.length;){let n=ai.default.decode(r,e),i=ai.default.decode.bytes??0,s=ot(n),o=el(s,r.slice(e+i));if(o===0){t.push([n]),e+=i;continue}let a=r.slice(e+i,e+i+o);if(e+=o+i,e>r.length)throw Uh("Invalid address Uint8Array: "+z(r,"base16"));t.push([n,a])}return t}function rl(r){let t=so(r),e=jc(t);return ME(e)}function FE(r){r=nl(r);let t=OE(r),e=UE(t);return tl(e)}function Mh(r){return FE(r)}function oo(r){let t=KE(r);if(t!=null)throw t;return Uint8Array.from(r)}function KE(r){try{so(r)}catch(t){return t}}function nl(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Uh(r){return new Error("Error parsing address: "+r)}function ao(r){return ot(r[0])}var sl=N(io(),1);var qh=N(ci(),1);function xt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var li=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},il=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},Gi,Yi,Wi,Vh,$E=Symbol.for("nodejs.util.inspect.custom"),zE=[ot("dns").code,ot("dns4").code,ot("dns6").code,ot("dnsaddr").code],ol=new Map,$h=Symbol.for("@multiformats/js-multiaddr/multiaddr");function zh(r,t){if(r==null)throw new Error("requires node address object");if(t==null)throw new Error("requires transport protocol");let e,n=r.address;switch(r.family){case 4:e="ip4";break;case 6:if(e="ip6",n.includes("%")){let i=n.split("%");if(i.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=i[0],e=`/ip6zone/${i[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new je("/"+[e,n,t,r.port].join("/"))}function xe(r){return!!r?.[$h]}var je=class{constructor(t){if(Gi.set(this,void 0),Yi.set(this,void 0),Wi.set(this,void 0),this[Vh]=!0,t==null&&(t=""),t instanceof Uint8Array)this.bytes=oo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);this.bytes=Mh(t)}else if(xe(t))this.bytes=oo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return li(this,Gi,"f")==null&&il(this,Gi,rl(this.bytes),"f"),li(this,Gi,"f")}toJSON(){return this.toString()}toOptions(){let t,e,n,i,s="",o=ot("tcp"),a=ot("udp"),c=ot("ip4"),l=ot("ip6"),u=ot("dns6"),f=ot("ip6zone");for(let[d,p]of this.stringTuples())d===f.code&&(s=`%${p??""}`),zE.includes(d)&&(e=o.name,i=443,n=`${p??""}${s}`,t=d===u.code?6:4),(d===o.code||d===a.code)&&(e=ot(d).name,i=parseInt(p??"")),(d===c.code||d===l.code)&&(e=ot(d).name,n=`${p??""}${s}`,t=d===l.code?6:4);if(t==null||e==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:i}}protos(){return this.protoCodes().map(t=>Object.assign({},ot(t)))}protoCodes(){let t=[],e=this.bytes,n=0;for(;n<e.length;){let i=sl.default.decode(e,n),s=sl.default.decode.bytes??0,o=ot(i),a=el(o,e.slice(n+s));n+=a+s,t.push(i)}return t}protoNames(){return this.protos().map(t=>t.name)}tuples(){return li(this,Yi,"f")==null&&il(this,Yi,so(this.bytes),"f"),li(this,Yi,"f")}stringTuples(){return li(this,Wi,"f")==null&&il(this,Wi,jc(this.tuples()),"f"),li(this,Wi,"f")}encapsulate(t){return t=new je(t),new je(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),i=n.lastIndexOf(e);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new je(n.slice(0,i))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new je(tl(e.slice(0,n)));return this}getPeerId(){try{let e=this.stringTuples().filter(n=>n[0]===Hi.ipfs.code).pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?z(Mt.decode(`z${n}`),"base58btc"):z(Et.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let t=null;try{t=this.stringTuples().filter(e=>ot(e[0]).path===!0)[0][1],t==null&&(t=null)}catch{t=null}return t}equals(t){return xt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(s=>s.resolvable);if(e==null)return[this];let n=ol.get(e.name);if(n==null)throw(0,qh.default)(new Error(`no available resolver for ${e.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new je(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[(Gi=new WeakMap,Yi=new WeakMap,Wi=new WeakMap,Vh=$h,$E)](){return`Multiaddr(${rl(this.bytes)})`}};function It(r){return new je(r)}async function al(r){let t=[];for await(let e of r)t.push(e);return t}async function*co(r,t){yield*(await al(r)).sort(t)}async function Ue(r){for await(let t of r);}async function*Te(r,t){for await(let e of r)await t(e)&&(yield e)}async function*lo(r,t){let e=0;if(!(t<1)){for await(let n of r)if(yield n,e++,e===t)return}}var uo=class{async open(){}async close(){}async put(t,e,n){await Promise.reject(new Error(".put is not implemented"))}async get(t,e){return await Promise.reject(new Error(".get is not implemented"))}async has(t,e){return await Promise.reject(new Error(".has is not implemented"))}async delete(t,e){await Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,e={}){for await(let{key:n,value:i}of t)await this.put(n,i,e),yield{key:n,value:i}}async*getMany(t,e={}){for await(let n of t)yield this.get(n,e)}async*deleteMany(t,e={}){for await(let n of t)await this.delete(n,e),yield n}batch(){let t=[],e=[];return{put(n,i){t.push({key:n,value:i})},delete(n){e.push(n)},commit:async n=>{await Ue(this.putMany(t,n)),t=[],await Ue(this.deleteMany(e,n)),e=[]}}}async*_all(t,e){throw new Error("._all is not implemented")}async*_allKeys(t,e){throw new Error("._allKeys is not implemented")}query(t,e){let n=this._all(t,e);if(t.prefix!=null){let i=t.prefix;n=Te(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Te(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>co(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=Te(n,()=>i++>=s)}return t.limit!=null&&(n=lo(n,t.limit)),n}queryKeys(t,e){let n=this._allKeys(t,e);if(t.prefix!=null){let i=t.prefix;n=Te(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Te(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>co(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=Te(n,()=>s++>=i)}return t.limit!=null&&(n=lo(n,t.limit)),n}};var fo=(r=21)=>crypto.getRandomValues(new Uint8Array(r)).reduce((t,e)=>(e&=63,e<36?t+=e.toString(36):e<62?t+=(e-26).toString(36).toUpperCase():e>62?t+="-":t+="_",t),"");var br="/",Hh=new TextEncoder().encode(br),ho=Hh[0],Nt=class{constructor(t,e){if(typeof t=="string")this._buf=F(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==ho)throw new Error("Invalid key")}toString(t="utf8"){return z(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new Nt(t.join(br))}static random(){return new Nt(fo().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new Nt(t):typeof t.uint8Array=="function"?new Nt(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Hh),this._buf[0]!==ho){let t=new Uint8Array(this._buf.byteLength+1);t.fill(ho,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ho;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let i=0;i<e.length;i++){if(n.length<i+1)return!1;let s=e[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return e.length<n.length}reverse(){return Nt.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(br).slice(1)}type(){return HE(this.baseNamespace())}name(){return GE(this.baseNamespace())}instance(t){return new Nt(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(br)||(t+=br),t+=this.type(),new Nt(t)}parent(){let t=this.list();return t.length===1?new Nt(br):new Nt(t.slice(0,-1).join(br))}child(t){return this.toString()===br?t:t.toString()===br?this:new Nt(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return Nt.withNamespaces([...this.namespaces(),...YE(t.map(e=>e.namespaces()))])}};function HE(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function GE(r){let t=r.split(":");return t[t.length-1]}function YE(r){return[].concat(...r)}var Gh=N(ci(),1);function Yh(r){return r=r??new Error("Not Found"),(0,Gh.default)(r,"ERR_NOT_FOUND")}var po=class extends uo{constructor(){super(),this.data=new Map}async put(t,e){this.data.set(t.toString(),e)}async get(t){let e=this.data.get(t.toString());if(e==null)throw Yh();return e}async has(t){return this.data.has(t.toString())}async delete(t){this.data.delete(t.toString())}async*_all(){for(let[t,e]of this.data.entries())yield{key:new Nt(t),value:e}}async*_allKeys(){for(let t of this.data.keys())yield new Nt(t)}};var w=class extends Error{constructor(t,e,n){super(t),this.code=e,this.name=n?.name??"CodeError",this.props=n??{}}};var W;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.DHT_DISABLED="DHT is not available",r.PUBSUB_DISABLED="PubSub is not available",r.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",r.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",r.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",r.NOT_FOUND="Not found"})(W||(W={}));var S;(function(r){r.DHT_DISABLED="ERR_DHT_DISABLED",r.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",r.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",r.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",r.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",r.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",r.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",r.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",r.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",r.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",r.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",r.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",r.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",r.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",r.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",r.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",r.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",r.ERR_DIALED_SELF="ERR_DIALED_SELF",r.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",r.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",r.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",r.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",r.ERR_INVALID_KEY="ERR_INVALID_KEY",r.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_PEER="ERR_INVALID_PEER",r.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",r.ERR_NOT_FOUND="ERR_NOT_FOUND",r.ERR_TIMEOUT="ERR_TIMEOUT",r.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",r.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",r.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",r.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",r.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",r.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",r.ERR_FIND_SELF="ERR_FIND_SELF",r.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",r.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",r.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",r.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",r.ERR_INVALID_CMS="ERR_INVALID_CMS",r.ERR_MISSING_KEYS="ERR_MISSING_KEYS",r.ERR_NO_KEY="ERR_NO_KEY",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",r.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",r.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",r.ERR_INVALID_RECORD="ERR_INVALID_RECORD",r.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",r.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",r.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",r.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",r.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",r.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(S||(S={}));async function*Qi(r,t){for await(let e of r)yield t(e)}async function*Xi(r,t){yield*Qi(r,async e=>(await t.addressBook.add(e.id,e.multiaddrs),e))}function mo(r){let t=new Set;return Te(r,e=>t.has(e.id.toString())?!1:(t.add(e.id.toString()),!0))}async function*yo(r,t=1){let e=0;for await(let n of r)e++,yield n;if(e<t)throw new w("not found","NOT_FOUND")}var d0=N(_r(),1);var wo=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},ui=class{constructor(t={}){this.hwm=t.splitLimit??16,this.head=new wo(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new wo(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};function vn(r={}){return ZE(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function ZE(r,t){t=t??{};let e=t.onEnd,n=new ui,i,s,o,a=async()=>n.isEmpty()?o?{done:!0}:await new Promise((m,y)=>{s=g=>{s=null,n.push(g);try{m(r(n))}catch(x){y(x)}return i}}):r(n),c=m=>s!=null?s(m):(n.push(m),i),l=m=>(n=new ui,s!=null?s({error:m}):(n.push({error:m}),i)),u=m=>{if(o)return i;if(t?.objectMode!==!0&&m?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:m})},f=m=>o?i:(o=!0,m!=null?l(m):c({done:!0})),h=()=>(n=new ui,f(),{done:!0}),d=m=>(f(m),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:h,throw:d,push:u,end:f,get readableLength(){return n.size}},e==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(m){return p.throw(m),e!=null&&(e(m),e=void 0),{done:!0}},return(){return p.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(m){return p.end(m),e!=null&&(e(m),e=void 0),i},get readableLength(){return p.readableLength}},i}async function*Sr(...r){let t=vn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async e=>{for await(let n of e)t.push(n)})),t.end()}catch(e){t.end(e)}}),yield*t}var JE=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},jh=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),ul=r=>r!=null&&typeof r.sink=="function"&&jh(r.source),jE=r=>t=>{let e=r.sink(t);if(e.then!=null){let n=vn({objectMode:!0});return e.then(()=>{n.end()},s=>{n.end(s)}),Sr(n,async function*(){yield*r.source,n.end()}())}return r.source};function Ft(r,...t){if(ul(r)){let n=r;r=()=>n.source}else if(jh(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&ul(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n<e.length-1;n++)ul(e[n])&&(e[n]=jE(e[n]));return JE(...e)}async function se(r){for await(let t of r)return t}var bo=N(e0(),1),p0=N(tr(),1),h0=U("libp2p:peer-routing"),vo=class{constructor(t,e){this.components=t,this.routers=e.routers??[],this.refreshManagerInit=e.refreshManager??{},this.started=!1,this._findClosestPeersTask=this._findClosestPeersTask.bind(this)}isStarted(){return this.started}async start(){this.started||this.routers.length===0||this.timeoutId!=null||this.refreshManagerInit.enabled===!1||(this.timeoutId=(0,bo.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new d0.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,p0.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await Ue(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(t){h0.error(t)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,bo.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(t,e){if(this.routers.length===0)throw new w("No peer routers available",S.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",S.ERR_FIND_SELF);let n=await Ft(Sr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,e)}catch(s){h0.error(s)}}())),i=>Te(i,Boolean),i=>Xi(i,this.components.peerStore),async i=>await se(i));if(n!=null)return n;throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getClosestPeers(t,e){if(this.routers.length===0)throw new w("No peer routers available",S.ERR_NO_ROUTERS_AVAILABLE);yield*Ft(Sr(...this.routers.map(n=>n.getClosestPeers(t,e))),n=>Xi(n,this.components.peerStore),n=>mo(n),n=>yo(n))}};var _o=class{constructor(t,e){this.routers=e.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,e={}){if(this.routers.length===0)throw new w("No content this.routers available",S.ERR_NO_ROUTERS_AVAILABLE);yield*Ft(Sr(...this.routers.map(n=>n.findProviders(t,e))),n=>Xi(n,this.components.peerStore),n=>mo(n),n=>yo(n))}async provide(t,e={}){if(this.routers.length===0)throw new w("No content routers available",S.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,e)}))}async put(t,e,n){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await Ue(i.put(t,e,n))}async get(t,e){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(t,e))if(i.name==="VALUE")return i.value}throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getMany(t,e,n){if(!this.isStarted())throw new w(W.NOT_STARTED_YET,S.DHT_NOT_STARTED);if(e==null||e===0)return;let i=0,s=this.components.dht;if(s!=null){for await(let o of s.get(t,n))if(o.name==="VALUE"&&(yield{from:o.from,val:o.value},i++,i===e))break}if(i===0)throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}};var hl=Symbol.for("@libp2p/peer-id");function bn(r){return r!=null&&!!r[hl]}var ux=Symbol.for("nodejs.util.inspect.custom"),m0=Object.values(Vr).map(r=>r.decoder).reduce((r,t)=>r.or(t),Vr.identity.decoder),y0=114,dl=36,pl=37,Ji=class{constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[hl](){return!0}toString(){return this.string==null&&(this.string=Mt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Et.createV1(y0,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return xt(this.multihash.bytes,t);if(typeof t=="string")return at(t).equals(this);if(t?.multihash?.bytes!=null)return xt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[ux](){return`PeerId(${this.toString()})`}},_n=class extends Ji{constructor(t){super({...t,type:"RSA"}),this.type="RSA",this.publicKey=t.publicKey}},Sn=class extends Ji{constructor(t){super({...t,type:"Ed25519"}),this.type="Ed25519",this.publicKey=t.multihash.digest}},An=class extends Ji{constructor(t){super({...t,type:"secp256k1"}),this.type="secp256k1",this.publicKey=t.multihash.digest}};function Kt(r){if(r.type==="RSA")return new _n(r);if(r.type==="Ed25519")return new Sn(r);if(r.type==="secp256k1")return new An(r);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function at(r,t){if(t=t??m0,r.charAt(0)==="1"||r.charAt(0)==="Q"){let e=wn(Mt.decode(`z${r}`));return r.startsWith("12D")?new Sn({multihash:e}):r.startsWith("16U")?new An({multihash:e}):new _n({multihash:e})}return qr(m0.decode(r))}function qr(r){try{let t=wn(r);if(t.code===Kr.code){if(t.digest.length===dl)return new Sn({multihash:t});if(t.digest.length===pl)return new An({multihash:t})}if(t.code===ie.code)return new _n({multihash:t})}catch{return fx(Et.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function fx(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==y0)throw new Error("Supplied PeerID CID is invalid");let t=r.multihash;if(t.code===ie.code)return new _n({multihash:r.multihash});if(t.code===Kr.code){if(t.digest.length===dl)return new Sn({multihash:r.multihash});if(t.digest.length===pl)return new An({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function $r(r,t){return r.length===dl?new Sn({multihash:Ze(Kr.code,r),privateKey:t}):r.length===pl?new An({multihash:Ze(Kr.code,r),privateKey:t}):new _n({multihash:await ie.digest(r),publicKey:r,privateKey:t})}var hx=r=>r;function ml(r,t){let e=r.getPeerId();return e!=null&&at(e).equals(t)&&(r=r.decapsulate(It(`/p2p/${t.toString()}`))),r}var So=class extends Pt{constructor(t,e){super();let{listen:n=[],announce:i=[]}=e;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=e.announceFilter??hx}getListenAddrs(){return Array.from(this.listen).map(t=>It(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>It(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>It(t))}addObservedAddr(t){t=ml(t,this.components.peerId);let e=t.toString();this.observed.has(e)||this.observed.set(e,{confident:!1})}confirmObservedAddr(t){t=ml(t,this.components.peerId);let e=t.toString(),i=(this.observed.get(e)??{confident:!1}).confident;this.observed.set(e,{confident:!0}),i||this.dispatchEvent(new $("change:addresses"))}removeObservedAddr(t){t=ml(t,this.components.peerId);let e=t.toString();this.observed.delete(e)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let e=new Set(t);return this.announceFilter(Array.from(e).map(n=>It(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var A0=N(S0(),1),Ce=A0.default;var R0=U("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),Io=class extends Pt{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let t="hidden",e="visibilitychange";typeof globalThis.document.hidden<"u"?(t="hidden",e="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(t="mozHidden",e="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(t="msHidden",e="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(t="webkitHidden",e="webkitvisibilitychange"),this.hidden=t,this.visibilityChange=e}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?R0("Checking page visibility requires a browser that supports the Page Visibility API."):globalThis.document.addEventListener(this.visibilityChange,this._handleVisibilityChange.bind(this),!1)}isVisible(){if(!(this.hidden===void 0||document[this.hidden]===void 0))return document[this.hidden]==null}_handleVisibilityChange(){let t=globalThis.document[this.hidden]===!1;R0(t?"Page Visible":"Page Hidden"),this.dispatchEvent(new $("visibilityChange",{detail:t}))}};var Ar=U("libp2p:connection-manager:latency-monitor"),To=class extends Pt{constructor(t={}){super();let{latencyCheckIntervalMs:e,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:s}=t;this.latencyCheckIntervalMs=e??500,this.latencyRandomPercentage=s??10,this.latencyCheckMultiply=2*(this.latencyRandomPercentage/100)*this.latencyCheckIntervalMs,this.latencyCheckSubtract=this.latencyCheckMultiply/2,this.dataEmitIntervalMs=n===null||n===0?void 0:n??5*1e3,Ar("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?Ar("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):Ar("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(Ar("Using process.hrtime for timing"),this.now=globalThis.process.hrtime,this.getDeltaMS=o=>{let a=this.now(o);return a[0]*1e3+a[1]/1e6}):typeof window<"u"&&window.performance?.now!=null?(Ar("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=o=>Math.round(this.now()-o)):(Ar("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=o=>this.now()-o),this.latencyData=this.initLatencyData()}start(){wx()&&(this.visibilityChangeEmitter=new Io,this.visibilityChangeEmitter.addEventListener("visibilityChange",t=>{let{detail:e}=t;e?this._startTimers():(this._emitSummary(),this._stopTimers())})),this.visibilityChangeEmitter?.isVisible()===!0&&this._startTimers()}stop(){this._stopTimers()}_startTimers(){this.checkLatencyID==null&&(this.checkLatency(),this.dataEmitIntervalMs!=null&&(this.emitIntervalID=setInterval(()=>{this._emitSummary()},this.dataEmitIntervalMs),typeof this.emitIntervalID.unref=="function"&&this.emitIntervalID.unref()))}_stopTimers(){this.checkLatencyID!=null&&(clearTimeout(this.checkLatencyID),this.checkLatencyID=void 0),this.emitIntervalID!=null&&(clearInterval(this.emitIntervalID),this.emitIntervalID=void 0)}_emitSummary(){let t=this.getSummary();t.events>0&&this.dispatchEvent(new $("data",{detail:t}))}getSummary(){let t={events:this.latencyData.events,minMs:this.latencyData.minMs,maxMs:this.latencyData.maxMs,avgMs:this.latencyData.events>0?this.latencyData.totalMs/this.latencyData.events:Number.POSITIVE_INFINITY,lengthMs:this.getDeltaMS(this.latencyData.startTime)};return this.latencyData=this.initLatencyData(),Ar.trace("Summary: %O",t),t}checkLatency(){let t=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,e={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+t),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(e.startTime)-e.deltaOffset;this.checkLatency(),this.latencyData.events++,this.latencyData.minMs=Math.min(this.latencyData.minMs,i),this.latencyData.maxMs=Math.max(this.latencyData.maxMs,i),this.latencyData.totalMs+=i,Ar.trace("MS: %s Data: %O",i,this.latencyData)};Ar.trace("localData: %O",e),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(e.deltaOffset=0,e.startTime=this.now(),this.asyncTestFn(n)):(e.deltaOffset-=1,n())},e.deltaOffset),typeof this.checkLatencyID.unref=="function"&&this.checkLatencyID.unref()}initLatencyData(){return{startTime:this.now(),minMs:Number.POSITIVE_INFINITY,maxMs:Number.NEGATIVE_INFINITY,events:0,totalMs:0}}};function wx(){return typeof globalThis.window<"u"}var Po=N(tr(),1);var Co="OPEN",gl="CLOSING",Bo="CLOSED";function Rr(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return e}var ji=class{constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Rr(this.map.entries(),t=>[at(t[0]),t[1]])}forEach(t){this.map.forEach((e,n)=>{t(e,at(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),e)}keys(){return Rr(this.map.keys(),t=>at(t))}values(){return this.map.values()}get size(){return this.map.size}};var Ir=class{constructor(t){if(this.set=new Set,t!=null)for(let e of t)this.set.add(e.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Rr(this.set.entries(),t=>{let e=at(t[0]);return[e,e]})}forEach(t){this.set.forEach(e=>{let n=at(e);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Rr(this.set.values(),t=>at(t))}intersection(t){let e=new Ir;for(let n of t)this.has(n)&&e.add(n);return e}difference(t){let e=new Ir;for(let n of this)t.has(n)||e.add(n);return e}union(t){let e=new Ir;for(let n of t)e.add(n);for(let n of this)e.add(n);return e}};var mi=class{constructor(t){if(this.list=[],t!=null)for(let e of t)this.list.push(e.toString())}[Symbol.iterator](){return Rr(this.list.entries(),t=>at(t[1]))}concat(t){let e=new mi(this);for(let n of t)e.push(n);return e}entries(){return Rr(this.list.entries(),t=>[t[0],at(t[1])])}every(t){return this.list.every((e,n)=>t(at(e),n,this))}filter(t){let e=new mi;return this.list.forEach((n,i)=>{let s=at(n);t(s,i,this)&&e.push(s)}),e}find(t){let e=this.list.find((n,i)=>t(at(n),i,this));if(e!=null)return at(e)}findIndex(t){return this.list.findIndex((e,n)=>t(at(e),n,this))}forEach(t){this.list.forEach((e,n)=>{t(at(e),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return at(t)}push(...t){for(let e of t)this.list.push(e.toString())}shift(){let t=this.list.shift();if(t!=null)return at(t)}unshift(...t){let e=this.list.length;for(let n=t.length-1;n>-1;n--)e=this.list.unshift(t[n].toString());return e}get length(){return this.list.length}};var Dl=N(_r(),1);var I0="keep-alive";var _d=N(bd(),1);function Lo(r){if(bn(r))return{peerId:r};if(xe(r)){let t=r.getPeerId();return{multiaddr:r,peerId:t==null?void 0:at(t)}}throw new w(`${r} is not a PeerId or a Multiaddr`,S.ERR_INVALID_MULTIADDR)}var Ht=U("libp2p:connection-manager"),ev={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},rv=6e4,No=class extends Pt{constructor(t,e){if(super(),this.opts=Ce.call({ignoreUndefined:!0},ev,e),this.opts.maxConnections<this.opts.minConnections)throw new w("Connection Manager maxConnections must be greater than minConnections",S.ERR_INVALID_PARAMETERS);Ht("options: %o",this.opts),this.components=t,this.connections=new Map,this.started=!1,e.maxEventLoopDelay!=null&&e.maxEventLoopDelay>0&&e.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new To({latencyCheckIntervalMs:e.pollInterval,dataEmitIntervalMs:e.pollInterval}));try{(0,Po.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=e.startupReconnectTimeout??rv,this.dialTimeout=e.dialTimeout??3e4,this.allow=(e.allow??[]).map(n=>It(n)),this.deny=(e.deny??[]).map(n=>It(n)),this.inboundConnectionRateLimiter=new _d.RateLimiterMemory({points:this.opts.inboundConnectionThreshold,duration:1}),this.incomingPendingConnections=0}isStarted(){return this.started}async start(){this.components.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let e of this.connections.values())for(let n of e)n.stat.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let e of this.connections.values())for(let n of e)for(let i of n.streams){let s=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;t[s]=(t[s]??0)+1}return t}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.stat.direction} ${o.stat.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))t[o]=t[o]??[],t[o].push(a)}let e={};for(let[n,i]of Object.entries(t)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);e[n]=i[s]}return e}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,Ht("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let t=[];for(let e of await this.components.peerStore.all())(await this.components.peerStore.getTags(e.id)).filter(s=>s.name===I0).length>0&&t.push(e.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new Dl.TimeoutController(this.startupReconnectTimeout);try{(0,Po.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(t.map(async e=>{await this.openConnection(e,{signal:this.connectOnStartupController?.signal}).catch(n=>{Ht.error(n)})}))}).catch(t=>{Ht.error(t)}).finally(()=>{this.connectOnStartupController?.clear()})}async beforeStop(){this.connectOnStartupController?.abort(),this.components.upgrader.removeEventListener("connection",this.onConnect),this.components.upgrader.removeEventListener("connectionEnd",this.onDisconnect)}async stop(){this.latencyMonitor?.removeEventListener("data",this._onLatencyMeasure),this.latencyMonitor?.stop(),this.started=!1,await this._close(),Ht("stopped")}async _close(){let t=[];for(let e of this.connections.values())for(let n of e)t.push((async()=>{try{await n.close()}catch(i){Ht.error(i)}})());Ht("closing %d connections",t.length),await Promise.all(t),this.connections.clear()}onConnect(t){this._onConnect(t).catch(e=>{Ht.error(e)})}async _onConnect(t){let{detail:e}=t;if(!this.started){await e.close();return}let n=e.remotePeer,i=n.toString(),s=this.connections.get(i);s!=null?s.push(e):this.connections.set(i,[e]),n.publicKey!=null&&await this.components.peerStore.keyBook.set(n,n.publicKey);let o=this.getConnections().length,a=o-this.opts.maxConnections;await this._checkMaxLimit("maxConnections",o,a),this.dispatchEvent(new $("peer:connect",{detail:e}))}onDisconnect(t){let{detail:e}=t;if(!this.started)return;let n=e.remotePeer.toString(),i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==e.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new $("peer:disconnect",{detail:e})))}getConnections(t){if(t!=null)return this.connections.get(t.toString())??[];let e=[];for(let n of this.connections.values())e=e.concat(n);return e}getConnectionsMap(){return this.connections}async openConnection(t,e={}){let{peerId:n,multiaddr:i}=Lo(t);if(n==null&&i==null)throw new w("Can only open connections to PeerIds or Multiaddrs",S.ERR_INVALID_PARAMETERS);if(n!=null){Ht("dial to",n);let o=this.getConnections(n);if(o.length>0)return Ht("had an existing connection to %p",n),o[0]}let s;if(e?.signal==null){s=new Dl.TimeoutController(this.dialTimeout),e.signal=s.signal;try{(0,Po.setMaxListeners)?.(1/0,s.signal)}catch{}}try{let o=await this.components.dialer.dial(t,e),a=this.connections.get(o.remotePeer.toString());a==null&&(a=[],this.connections.set(o.remotePeer.toString(),a));let c=!1;for(let l of a)l.id===o.id&&(c=!0);return c||a.push(o),o}finally{s?.clear()}}async closeConnections(t){let e=this.connections.get(t.toString())??[];await Promise.all(e.map(async n=>{await n.close()}))}getAll(t){if(!bn(t))throw new w("peerId must be an instance of peer-id",S.ERR_INVALID_PARAMETERS);let e=t.toString(),n=this.connections.get(e);return n!=null?n.filter(i=>i.stat.status===Co):[]}_onLatencyMeasure(t){let{detail:e}=t;this._checkMaxLimit("maxEventLoopDelay",e.avgMs,1).catch(n=>{Ht.error(n)})}async _checkMaxLimit(t,e,n=1){let i=this.opts[t];if(i==null){Ht.trace("limit %s was not set so it cannot be applied",t);return}Ht.trace("checking limit of %s. current value: %d of %d",t,e,i),e>i&&(Ht("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,t,e,i,n),await this._pruneConnections(n))}async _pruneConnections(t){let e=this.getConnections(),n=new ji;for(let o of e){let a=o.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((l,u)=>l+u.value,0))}let i=e.sort((o,a)=>{let c=n.get(o.remotePeer)??0,l=n.get(a.remotePeer)??0;if(c>l)return 1;if(c<l)return-1;let u=o.stat.timeline.open,f=a.stat.timeline.open;return u<f?1:u>f?-1:0}),s=[];for(let o of i)if(Ht("too many connections open - closing a connection to %p",o.remotePeer),s.push(o),s.length===t)break;await Promise.all(s.map(async o=>{try{await o.close()}catch(a){Ht.error(a)}this.onDisconnect(new $("connectionEnd",{detail:o}))}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Ht("connection from %s refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return Ht("connection from %s refused - incomingPendingConnections exceeded by peer %s",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Ht("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,t.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(Ht("connection from %s refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var Ll=N(ll(),1),xi=U("libp2p:connection-manager:auto-dialler"),nv={minConnections:0,autoDialInterval:1e4},ko=class{constructor(t,e){this.components=t,this.options=Ce.call({ignoreUndefined:!0},nv,e),this.running=!1,this._autoDial=this._autoDial.bind(this),xi("options: %j",this.options)}isStarted(){return this.running}async start(){this.running=!0,this._autoDial().catch(t=>{xi.error("could start autodial",t)}),xi("started")}async stop(){this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),xi("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let t=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=t){this.autoDialTimeout=(0,Ll.default)(this._autoDial,this.options.autoDialInterval);return}let e=await this.components.peerStore.all();e=e.filter(n=>!(n.id.equals(this.components.peerId)||n.addresses.length===0)),e=e.sort(()=>Math.random()>.5?1:-1),e=e.sort((n,i)=>i.protocols.length>n.protocols.length||i.id.publicKey!=null&&n.id.publicKey==null?1:-1);for(let n=0;this.running&&n<e.length&&this.components.connectionManager.getConnections().length<t;n++){if(!this.running)return;let i=e[n];if(this.components.connectionManager.getConnections(i.id).length===0){xi("connecting to a peerStore stored peer %p",i.id);try{await this.components.connectionManager.openConnection(i.id)}catch(s){xi.error("could not connect to peerStore stored peer",s)}}}this.running&&(this.autoDialTimeout=(0,Ll.default)(this._autoDial,this.options.autoDialInterval))}};var zy=N(Ld(),1);var j;(function(r){r.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",r.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",r.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",r.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",r.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",r.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",r.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",r.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",r.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",r.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",r.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",r.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",r.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",r.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",r.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(j||(j={}));var Hl=N(Ml(),1),Ep=N(fp(),1),xp=N(Tn(),1),Gl=N(zl(),1),vp=N(wp(),1);function Sv(){xp.default._configure(),Hl.default._configure(Ep.default),Gl.default._configure(vp.default)}Sv();var bp=["uint64","int64","sint64","fixed64","sfixed64"];function Av(r){for(let t of bp){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function Yl(r){return Av(new Hl.default(r))}function Rv(r){for(let t of bp){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function Wl(){return Rv(Gl.default.create())}function dt(r,t){let e=Yl(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function pt(r,t){let e=Wl();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var bi;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(bi||(bi={}));function Ko(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Gr(r){function t(i){if(r[i.toString()]==null)throw new Error("Invalid enum value");return r[i]}let e=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return Ko("enum",bi.VARINT,e,n)}function mt(r,t){return Ko("message",bi.LENGTH_DELIMITED,r,t)}var Tt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(Tt||(Tt={}));var Ql;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Ql||(Ql={}));(function(r){r.codec=()=>Gr(Ql)})(Tt||(Tt={}));var nr;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Tt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.Type=Tt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(nr||(nr={}));var ir;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),Tt.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.Type=Tt.codec().decode(e);break;case 2:i.Data=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(ir||(ir={}));var tB=N(as(),1),eB=N(Mm(),1),Ea=N(ft(),1);var de={get(r=globalThis){let t=r.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var $4=N(qt(),1),z4=N(ra(),1),Fm=N(ft(),1);function $e(r,t){let e=Uint8Array.from(r.abs().toByteArray());if(e=e[0]===0?e.subarray(1):e,t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=Ut([new Uint8Array(t-e.length),e])}return z(e,"base64url")}function be(r){let t=Km(r);return new Fm.default.jsbn.BigInteger(z(t,"base16"),16)}function Km(r,t){let e=F(r,"base64urlpad");if(t!=null){if(e.length>t)throw new Error("byte array longer than desired length");e=Ut([new Uint8Array(t-e.length),e])}return e}var Zb={"P-256":256,"P-384":384,"P-521":521},Jb=Object.keys(Zb),e8=Jb.join(" / ");function oa(r){let t=r?.algorithm??"AES-GCM",e=r?.keyLength??16,n=r?.nonceLength??12,i=r?.digest??"SHA-256",s=r?.saltLength??16,o=r?.iterations??32767,a=de.get();e*=8;async function c(f,h){let d=a.getRandomValues(new Uint8Array(s)),p=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:p};typeof h=="string"&&(h=F(h));let y={name:"PBKDF2",salt:d,iterations:o,hash:{name:i}},g=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),x=await a.subtle.deriveKey(y,g,{name:t,length:e},!0,["encrypt"]),_=await a.subtle.encrypt(m,x,f);return Ut([d,m.iv,new Uint8Array(_)])}async function l(f,h){let d=f.subarray(0,s),p=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:p};typeof h=="string"&&(h=F(h));let g={name:"PBKDF2",salt:d,iterations:o,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),_=await a.subtle.deriveKey(g,x,{name:t,length:e},!0,["decrypt"]),O=await a.subtle.decrypt(y,_,m);return new Uint8Array(O)}return{encrypt:c,decrypt:l}}async function qm(r,t){let e=yn.decode(r);return await oa().decrypt(e,t)}var Tu={};ne(Tu,{RsaPrivateKey:()=>Ni,RsaPublicKey:()=>ys,fromJwk:()=>__,generateKeyPair:()=>S_,unmarshalRsaPrivateKey:()=>v_,unmarshalRsaPublicKey:()=>b_});var O8=N(Ym(),1),ms=N(ft(),1);var t_=N(Rn(),1);var et=BigInt(0),At=BigInt(1),Jr=BigInt(2),hs=BigInt(3),Wm=BigInt(8),kt=Object.freeze({a:et,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:At,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Qm=(r,t)=>(r+t/Jr)/t,aa={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(r){let{n:t}=kt,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-At*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=e,o=BigInt("0x100000000000000000000000000000000"),a=Qm(s*r,t),c=Qm(-n*r,t),l=P(r-a*e-c*i,t),u=P(-a*n-c*s,t),f=l>o,h=u>o;if(f&&(l=t-l),h&&(u=t-u),l>o||u>o)throw new Error("splitScalarEndo: Endomorphism failed, k="+r);return{k1neg:f,k1:l,k2neg:h,k2:u}}},ze=32,Ci=32,e_=32,Xm=ze+1,Zm=2*ze+1;function Jm(r){let{a:t,b:e}=kt,n=P(r*r),i=P(n*r);return P(i+t*r+e)}var ca=kt.a===et,fa=class extends Error{constructor(t){super(t)}};function jm(r){if(!(r instanceof st))throw new TypeError("JacobianPoint expected")}var st=class{constructor(t,e,n){this.x=t,this.y=e,this.z=n}static fromAffine(t){if(!(t instanceof ct))throw new TypeError("JacobianPoint#fromAffine: expected Point");return t.equals(ct.ZERO)?st.ZERO:new st(t.x,t.y,At)}static toAffineBatch(t){let e=o_(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return st.toAffineBatch(t).map(st.fromAffine)}equals(t){jm(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t,c=P(i*i),l=P(a*a),u=P(e*l),f=P(s*c),h=P(P(n*a)*l),d=P(P(o*i)*c);return u===f&&h===d}negate(){return new st(this.x,P(-this.y),this.z)}double(){let{x:t,y:e,z:n}=this,i=P(t*t),s=P(e*e),o=P(s*s),a=t+s,c=P(Jr*(P(a*a)-i-o)),l=P(hs*i),u=P(l*l),f=P(u-Jr*c),h=P(l*(c-f)-Wm*o),d=P(Jr*e*n);return new st(f,h,d)}add(t){jm(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t;if(s===et||o===et)return this;if(e===et||n===et)return t;let c=P(i*i),l=P(a*a),u=P(e*l),f=P(s*c),h=P(P(n*a)*l),d=P(P(o*i)*c),p=P(f-u),m=P(d-h);if(p===et)return m===et?this.double():st.ZERO;let y=P(p*p),g=P(p*y),x=P(u*y),_=P(m*m-g-Jr*x),O=P(m*(x-_)-h*g),C=P(i*a*p);return new st(_,O,C)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let e=st.ZERO;if(typeof t=="bigint"&&t===et)return e;let n=ry(t);if(n===At)return this;if(!ca){let f=e,h=this;for(;n>et;)n&At&&(f=f.add(h)),h=h.double(),n>>=At;return f}let{k1neg:i,k1:s,k2neg:o,k2:a}=aa.splitScalar(n),c=e,l=e,u=this;for(;s>et||a>et;)s&At&&(c=c.add(u)),a&At&&(l=l.add(u)),u=u.double(),s>>=At,a>>=At;return i&&(c=c.negate()),o&&(l=l.negate()),l=new st(P(l.x*aa.beta),l.y,l.z),c.add(l)}precomputeWindow(t){let e=ca?128/t+1:256/t+1,n=[],i=this,s=i;for(let o=0;o<e;o++){s=i,n.push(s);for(let a=1;a<2**(t-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(t,e){!e&&this.equals(st.BASE)&&(e=ct.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&vu.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=st.normalizeZ(i),vu.set(e,i)));let s=st.ZERO,o=st.BASE,a=1+(ca?128/n:256/n),c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=At);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?o=o.add(la(g,i[m])):s=s.add(la(x,i[y]))}return{p:s,f:o}}multiply(t,e){let n=ry(t),i,s;if(ca){let{k1neg:o,k1:a,k2neg:c,k2:l}=aa.splitScalar(n),{p:u,f}=this.wNAF(a,e),{p:h,f:d}=this.wNAF(l,e);u=la(o,u),h=la(c,h),h=new st(P(h.x*aa.beta),h.y,h.z),i=u.add(h),s=f.add(d)}else{let{p:o,f:a}=this.wNAF(n,e);i=o,s=a}return st.normalizeZ([i,s])[0]}toAffine(t){let{x:e,y:n,z:i}=this,s=this.equals(st.ZERO);t==null&&(t=s?Wm:Li(i));let o=t,a=P(o*o),c=P(a*o),l=P(e*a),u=P(n*c),f=P(i*o);if(s)return ct.ZERO;if(f!==At)throw new Error("invZ was invalid");return new ct(l,u)}};st.BASE=new st(kt.Gx,kt.Gy,At);st.ZERO=new st(et,At,et);function la(r,t){let e=t.negate();return r?e:t}var vu=new WeakMap,ct=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,vu.delete(this)}hasEvenY(){return this.y%Jr===et}static fromCompressedHex(t){let e=t.length===32,n=jr(e?t:t.subarray(1));if(!xu(n))throw new Error("Point is not on curve");let i=Jm(n),s=s_(i),o=(s&At)===At;e?o&&(s=P(-s)):(t[0]&1)===1!==o&&(s=P(-s));let a=new ct(n,s);return a.assertValidity(),a}static fromUncompressedHex(t){let e=jr(t.subarray(1,ze+1)),n=jr(t.subarray(ze+1,ze*2+1)),i=new ct(e,n);return i.assertValidity(),i}static fromHex(t){let e=Di(t),n=e.length,i=e[0];if(n===ze)return this.fromCompressedHex(e);if(n===Xm&&(i===2||i===3))return this.fromCompressedHex(e);if(n===Zm&&i===4)return this.fromUncompressedHex(e);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Xm} compressed bytes or ${Zm} uncompressed bytes, not ${n}`)}static fromPrivateKey(t){return ct.BASE.multiply(da(t))}static fromSignature(t,e,n){let{r:i,s}=ny(e);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let o=Su(Di(t)),{n:a}=kt,c=n===2||n===3?i+a:i,l=Li(c,a),u=P(-o*l,a),f=P(s*l,a),h=n&1?"03":"02",d=ct.fromHex(h+Ii(c)),p=ct.BASE.multiplyAndAddUnsafe(d,u,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(t=!1){return On(this.toHex(t))}toHex(t=!1){let e=Ii(this.x);return t?`${this.hasEvenY()?"02":"03"}${e}`:`04${e}${Ii(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let t="Point is not on elliptic curve",{x:e,y:n}=this;if(!xu(e)||!xu(n))throw new Error(t);let i=P(n*n),s=Jm(e);if(P(i-s)!==et)throw new Error(t)}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new ct(this.x,P(-this.y))}double(){return st.fromAffine(this).double().toAffine()}add(t){return st.fromAffine(this).add(st.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return st.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,e,n){let i=st.fromAffine(this),s=e===et||e===At||this!==ct.BASE?i.multiplyUnsafe(e):i.multiply(e),o=st.fromAffine(t).multiplyUnsafe(n),a=s.add(o);return a.equals(st.ZERO)?void 0:a.toAffine()}};ct.BASE=new ct(kt.Gx,kt.Gy);ct.ZERO=new ct(et,et);function ty(r){return Number.parseInt(r[0],16)>=8?"00"+r:r}function ey(r){if(r.length<2||r[0]!==2)throw new Error(`Invalid signature integer tag: ${Bi(r)}`);let t=r[1],e=r.subarray(2,t+2);if(!t||e.length!==t)throw new Error("Invalid signature integer: wrong length");if(e[0]===0&&e[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:jr(e),left:r.subarray(t+2)}}function r_(r){if(r.length<2||r[0]!=48)throw new Error(`Invalid signature tag: ${Bi(r)}`);if(r[1]!==r.length-2)throw new Error("Invalid signature: incorrect length");let{data:t,left:e}=ey(r.subarray(2)),{data:n,left:i}=ey(e);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${Bi(i)}`);return{r:t,s:n}}var fr=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromCompact(t){let e=t instanceof Uint8Array,n="Signature.fromCompact";if(typeof t!="string"&&!e)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=e?Bi(t):t;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new fr(ha(i.slice(0,64)),ha(i.slice(64,128)))}static fromDER(t){let e=t instanceof Uint8Array;if(typeof t!="string"&&!e)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=r_(e?t:On(t));return new fr(n,i)}static fromHex(t){return this.fromDER(t)}assertValidity(){let{r:t,s:e}=this;if(!ps(t))throw new Error("Invalid Signature: r must be 0 < r < n");if(!ps(e))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let t=kt.n>>At;return this.s>t}normalizeS(){return this.hasHighS()?new fr(this.r,P(-this.s,kt.n)):this}toDERRawBytes(){return On(this.toDERHex())}toDERHex(){let t=ty(fs(this.s)),e=ty(fs(this.r)),n=t.length/2,i=e.length/2,s=fs(n),o=fs(i);return`30${fs(i+n+4)}02${o}${e}02${s}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return On(this.toCompactHex())}toCompactHex(){return Ii(this.r)+Ii(this.s)}};function Zr(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let s=r[n];e.set(s,i),i+=s.length}return e}var n_=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Bi(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let e=0;e<r.length;e++)t+=n_[r[e]];return t}var i_=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Ii(r){if(typeof r!="bigint")throw new Error("Expected bigint");if(!(et<=r&&r<i_))throw new Error("Expected number 0 <= n < 2^256");return r.toString(16).padStart(64,"0")}function bu(r){let t=On(Ii(r));if(t.length!==32)throw new Error("Error: expected 32 bytes");return t}function fs(r){let t=r.toString(16);return t.length&1?`0${t}`:t}function ha(r){if(typeof r!="string")throw new TypeError("hexToNumber: expected string, got "+typeof r);return BigInt(`0x${r}`)}function On(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+r.length);let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");t[e]=s}return t}function jr(r){return ha(Bi(r))}function Di(r){return r instanceof Uint8Array?Uint8Array.from(r):On(r)}function ry(r){if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)return BigInt(r);if(typeof r=="bigint"&&ps(r))return r;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function P(r,t=kt.P){let e=r%t;return e>=et?e:t+e}function Ne(r,t){let{P:e}=kt,n=r;for(;t-- >et;)n*=n,n%=e;return n}function s_(r){let{P:t}=kt,e=BigInt(6),n=BigInt(11),i=BigInt(22),s=BigInt(23),o=BigInt(44),a=BigInt(88),c=r*r*r%t,l=c*c*r%t,u=Ne(l,hs)*l%t,f=Ne(u,hs)*l%t,h=Ne(f,Jr)*c%t,d=Ne(h,n)*h%t,p=Ne(d,i)*d%t,m=Ne(p,o)*p%t,y=Ne(m,a)*m%t,g=Ne(y,o)*p%t,x=Ne(g,hs)*l%t,_=Ne(x,s)*d%t,O=Ne(_,e)*c%t,C=Ne(O,Jr);if(C*C%t!==r)throw new Error("Cannot find square root");return C}function Li(r,t=kt.P){if(r===et||t<=et)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=P(r,t),n=t,i=et,s=At,o=At,a=et;for(;e!==et;){let l=n/e,u=n%e,f=i-o*l,h=s-a*l;n=e,e=u,i=o,s=a,o=f,a=h}if(n!==At)throw new Error("invert: does not exist");return P(i,t)}function o_(r,t=kt.P){let e=new Array(r.length),n=r.reduce((s,o,a)=>o===et?s:(e[a]=s,P(s*o,t)),At),i=Li(n,t);return r.reduceRight((s,o,a)=>o===et?s:(e[a]=P(s*e[a],t),P(s*o,t)),i),e}function a_(r){let t=r.length*8-Ci*8,e=jr(r);return t>0?e>>BigInt(t):e}function Su(r,t=!1){let e=a_(r);if(t)return e;let{n}=kt;return e>=n?e-n:e}var Ti,ds,_u=class{constructor(t,e){if(this.hashLen=t,this.qByteLen=e,typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(t).fill(1),this.k=new Uint8Array(t).fill(0),this.counter=0}hmac(...t){return He.hmacSha256(this.k,...t)}hmacSync(...t){return ds(this.k,...t)}checkSync(){if(typeof ds!="function")throw new fa("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(t=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),t),this.v=await this.hmac(this.v),t.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),t),this.v=await this.hmac(this.v))}reseedSync(t=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),t),this.v=this.hmacSync(this.v),t.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),t),this.v=this.hmacSync(this.v))}async generate(){this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return Zr(...e)}generateSync(){this.checkSync(),this.incr();let t=0,e=[];for(;t<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();e.push(n),t+=this.v.length}return Zr(...e)}};function ps(r){return et<r&&r<kt.n}function xu(r){return et<r&&r<kt.P}function c_(r,t,e,n=!0){let{n:i}=kt,s=Su(r,!0);if(!ps(s))return;let o=Li(s,i),a=ct.BASE.multiply(s),c=P(a.x,i);if(c===et)return;let l=P(o*P(t+e*c,i),i);if(l===et)return;let u=new fr(c,l),f=(a.x===u.r?0:2)|Number(a.y&At);return n&&u.hasHighS()&&(u=u.normalizeS(),f^=1),{sig:u,recovery:f}}function da(r){let t;if(typeof r=="bigint")t=r;else if(typeof r=="number"&&Number.isSafeInteger(r)&&r>0)t=BigInt(r);else if(typeof r=="string"){if(r.length!==2*Ci)throw new Error("Expected 32 bytes of private key");t=ha(r)}else if(r instanceof Uint8Array){if(r.length!==Ci)throw new Error("Expected 32 bytes of private key");t=jr(r)}else throw new TypeError("Expected valid private key");if(!ps(t))throw new Error("Expected private key: 0 < key < n");return t}function l_(r){return r instanceof ct?(r.assertValidity(),r):ct.fromHex(r)}function ny(r){if(r instanceof fr)return r.assertValidity(),r;try{return fr.fromDER(r)}catch{return fr.fromCompact(r)}}function Au(r,t=!1){return ct.fromPrivateKey(r).toRawBytes(t)}function iy(r){let t=r.length>ze?r.slice(0,ze):r;return jr(t)}function u_(r){let t=iy(r),e=P(t,kt.n);return sy(e<et?t:e)}function sy(r){return bu(r)}function f_(r,t,e){if(r==null)throw new Error(`sign: expected valid message hash, not "${r}"`);let n=Di(r),i=da(t),s=[sy(i),u_(n)];if(e!=null){e===!0&&(e=He.randomBytes(ze));let c=Di(e);if(c.length!==ze)throw new Error(`sign: Expected ${ze} bytes of extra data`);s.push(c)}let o=Zr(...s),a=iy(n);return{seed:o,m:a,d:i}}function h_(r,t){let{sig:e,recovery:n}=r,{der:i,recovered:s}=Object.assign({canonical:!0,der:!0},t),o=i?e.toDERRawBytes():e.toCompactRawBytes();return s?[o,n]:o}async function oy(r,t,e={}){let{seed:n,m:i,d:s}=f_(r,t,e.extraEntropy),o=new _u(e_,Ci);await o.reseed(n);let a;for(;!(a=c_(await o.generate(),i,s,e.canonical));)await o.reseed();return h_(a,e)}var d_={strict:!0};function ay(r,t,e,n=d_){let i;try{i=ny(r),t=Di(t)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=Su(t),c;try{c=l_(e)}catch{return!1}let{n:l}=kt,u=Li(o,l),f=P(a*u,l),h=P(s*u,l),d=ct.BASE.multiplyAndAddUnsafe(c,f,h);return d?P(d.x,l)===s:!1}ct.BASE._setWindowSize(8);var _e={node:t_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var ua={},He={bytesToHex:Bi,hexToBytes:On,concatBytes:Zr,mod:P,invert:Li,isValidPrivateKey(r){try{return da(r),!0}catch{return!1}},_bigintTo32Bytes:bu,_normalizePrivateKey:da,hashToPrivateKey:r=>{r=Di(r);let t=Ci+8;if(r.length<t||r.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let e=P(jr(r),kt.n-At)+At;return bu(e)},randomBytes:(r=32)=>{if(_e.web)return _e.web.getRandomValues(new Uint8Array(r));if(_e.node){let{randomBytes:t}=_e.node;return Uint8Array.from(t(r))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>He.hashToPrivateKey(He.randomBytes(Ci+8)),precompute(r=8,t=ct.BASE){let e=t===ct.BASE?t:new ct(t.x,t.y);return e._setWindowSize(r),e.multiply(hs),e},sha256:async(...r)=>{if(_e.web){let t=await _e.web.subtle.digest("SHA-256",Zr(...r));return new Uint8Array(t)}else if(_e.node){let{createHash:t}=_e.node,e=t("sha256");return r.forEach(n=>e.update(n)),Uint8Array.from(e.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(r,...t)=>{if(_e.web){let e=await _e.web.subtle.importKey("raw",r,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Zr(...t),i=await _e.web.subtle.sign("HMAC",e,n);return new Uint8Array(i)}else if(_e.node){let{createHmac:e}=_e.node,n=e("sha256",r);return t.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(r,...t)=>{let e=ua[r];if(e===void 0){let n=await He.sha256(Uint8Array.from(r,i=>i.charCodeAt(0)));e=Zr(n,n),ua[r]=e}return He.sha256(e,...t)},taggedHashSync:(r,...t)=>{if(typeof Ti!="function")throw new fa("sha256Sync is undefined, you need to set it");let e=ua[r];if(e===void 0){let n=Ti(Uint8Array.from(r,i=>i.charCodeAt(0)));e=Zr(n,n),ua[r]=e}return Ti(e,...t)},_JacobianPoint:st};Object.defineProperties(He,{sha256Sync:{configurable:!1,get(){return Ti},set(r){Ti||(Ti=r)}},hmacSha256Sync:{configurable:!1,get(){return ds},set(r){ds||(ds=r)}}});function Dr(r){if(isNaN(r)||r<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return He.randomBytes(r)}var Mn={};ne(Mn,{jwkToPkcs1:()=>y_,jwkToPkix:()=>w_,pkcs1ToJwk:()=>m_,pkixToJwk:()=>g_});var m8=N(as(),1),y8=N(sa(),1),Lr=N(ft(),1);function m_(r){let t=Lr.default.asn1.fromDer(z(r,"ascii")),e=Lr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:$e(e.n),e:$e(e.e),d:$e(e.d),p:$e(e.p),q:$e(e.q),dp:$e(e.dP),dq:$e(e.dQ),qi:$e(e.qInv),alg:"RS256"}}function y_(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=Lr.default.pki.privateKeyToAsn1({n:be(r.n),e:be(r.e),d:be(r.d),p:be(r.p),q:be(r.q),dP:be(r.dp),dQ:be(r.dq),qInv:be(r.qi)});return F(Lr.default.asn1.toDer(t).getBytes(),"ascii")}function g_(r){let t=Lr.default.asn1.fromDer(z(r,"ascii")),e=Lr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:$e(e.n),e:$e(e.e)}}function w_(r){if(r.n==null||r.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=Lr.default.pki.publicKeyToAsn1({n:be(r.n),e:be(r.e)});return F(Lr.default.asn1.toDer(t).getBytes(),"ascii")}var v8=N(sa(),1),Ru=N(ft(),1);function cy(r,t){return t.map(e=>be(r[e]))}function ly(r){return Ru.default.pki.setRsaPrivateKey(...cy(r,["n","e","d","p","q","dp","dq","qi"]))}function uy(r){return Ru.default.pki.setRsaPublicKey(...cy(r,["n","e"]))}async function fy(r){let t=await de.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await py(t);return{privateKey:e[0],publicKey:e[1]}}async function Iu(r){let e=[await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await E_(r)],n=await py({privateKey:e[0],publicKey:e[1]});return{privateKey:n[0],publicKey:n[1]}}async function hy(r,t){let e=await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await de.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function dy(r,t,e){let n=await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await de.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e)}async function py(r){if(r.privateKey==null||r.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return await Promise.all([de.get().subtle.exportKey("jwk",r.privateKey),de.get().subtle.exportKey("jwk",r.publicKey)])}async function E_(r){return await de.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function my(r,t,e,n){let i=t?uy(r):ly(r),s=z(Uint8Array.from(e),"ascii"),o=n(s,i);return F(o,"ascii")}function yy(r,t){return my(r,!0,t,(e,n)=>n.encrypt(e))}function gy(r,t){return my(r,!1,t,(e,n)=>n.decrypt(e))}async function Pi(r,t){let n=await oa().encrypt(r,t);return yn.encode(n)}var ys=class{constructor(t){this._key=t}async verify(t,e){return await dy(this._key,e,t)}marshal(){return Mn.jwkToPkix(this._key)}get bytes(){return nr.encode({Type:Tt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return yy(this._key,t)}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}},Ni=class{constructor(t,e){this._key=t,this._publicKey=e}genSecret(){return Dr(16)}async sign(t){return await hy(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ys(this._publicKey)}decrypt(t){return gy(this._key,t)}marshal(){return Mn.jwkToPkcs1(this._key)}get bytes(){return ir.encode({Type:Tt.RSA,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,e="pkcs-8"){if(e==="pkcs-8"){let n=new ms.default.util.ByteBuffer(this.marshal()),i=ms.default.asn1.fromDer(n),s=ms.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return ms.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(e==="libp2p-key")return await Pi(this.bytes,t);throw new w(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function v_(r){let t=Mn.pkcs1ToJwk(r),e=await Iu(t);return new Ni(e.privateKey,e.publicKey)}function b_(r){let t=Mn.pkixToJwk(r);return new ys(t)}async function __(r){let t=await Iu(r);return new Ni(t.privateKey,t.publicKey)}async function S_(r){let t=await fy(r);return new Ni(t.privateKey,t.publicKey)}var Mu={};ne(Mu,{Ed25519PrivateKey:()=>Fn,Ed25519PublicKey:()=>vs,generateKeyPair:()=>H_,generateKeyPairFromSeed:()=>Ly,unmarshalEd25519PrivateKey:()=>$_,unmarshalEd25519PublicKey:()=>z_});var A_=N(Rn(),1);var re=BigInt(0),rt=BigInt(1),rn=BigInt(2),R_=BigInt(8),wy=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Rt=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:wy,n:wy,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var _y=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),gs=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),U8=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),I_=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),T_=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),C_=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),B_=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Z=class{constructor(t,e,n,i){this.x=t,this.y=e,this.z=n,this.t=i}static fromAffine(t){if(!(t instanceof Bt))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return t.equals(Bt.ZERO)?Z.ZERO:new Z(t.x,t.y,rt,R(t.x*t.y))}static toAffineBatch(t){let e=P_(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return this.toAffineBatch(t).map(this.fromAffine)}equals(t){xy(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t,c=R(e*a),l=R(s*i),u=R(n*a),f=R(o*i);return c===l&&u===f}negate(){return new Z(R(-this.x),this.y,this.z,R(-this.t))}double(){let{x:t,y:e,z:n}=this,{a:i}=Rt,s=R(t*t),o=R(e*e),a=R(rn*R(n*n)),c=R(i*s),l=t+e,u=R(R(l*l)-s-o),f=c+o,h=f-a,d=c-o,p=R(u*h),m=R(f*d),y=R(u*d),g=R(h*f);return new Z(p,m,g,y)}add(t){xy(t);let{x:e,y:n,z:i,t:s}=this,{x:o,y:a,z:c,t:l}=t,u=R((n-e)*(a+o)),f=R((n+e)*(a-o)),h=R(f-u);if(h===re)return this.double();let d=R(i*rn*l),p=R(s*rn*c),m=p+d,y=f+u,g=p-d,x=R(m*h),_=R(y*g),O=R(m*g),C=R(h*y);return new Z(x,_,C,O)}subtract(t){return this.add(t.negate())}precomputeWindow(t){let e=1+256/t,n=[],i=this,s=i;for(let o=0;o<e;o++){s=i,n.push(s);for(let a=1;a<2**(t-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(t,e){!e&&this.equals(Z.BASE)&&(e=Bt.BASE);let n=e&&e._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=e&&Pu.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=Z.normalizeZ(i),Pu.set(e,i)));let s=Z.ZERO,o=Z.BASE,a=1+256/n,c=2**(n-1),l=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let h=0;h<a;h++){let d=h*c,p=Number(t&l);t>>=f,p>c&&(p-=u,t+=rt);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?o=o.add(Ey(g,i[m])):s=s.add(Ey(x,i[y]))}return Z.normalizeZ([s,o])[0]}multiply(t,e){return this.wNAF(ma(t,Rt.l),e)}multiplyUnsafe(t){let e=ma(t,Rt.l,!1),n=Z.BASE,i=Z.ZERO;if(e===re)return i;if(this.equals(i)||e===rt)return this;if(this.equals(n))return this.wNAF(e);let s=i,o=this;for(;e>re;)e&rt&&(s=s.add(o)),o=o.double(),e>>=rt;return s}isSmallOrder(){return this.multiplyUnsafe(Rt.h).equals(Z.ZERO)}isTorsionFree(){let t=this.multiplyUnsafe(Rt.l/rn).double();return Rt.l%rn&&(t=t.add(this)),t.equals(Z.ZERO)}toAffine(t){let{x:e,y:n,z:i}=this,s=this.equals(Z.ZERO);t==null&&(t=s?R_:ya(i));let o=R(e*t),a=R(n*t),c=R(i*t);if(s)return Bt.ZERO;if(c!==rt)throw new Error("invZ was invalid");return new Bt(o,a)}fromRistrettoBytes(){Bu()}toRistrettoBytes(){Bu()}fromRistrettoHash(){Bu()}};Z.BASE=new Z(Rt.Gx,Rt.Gy,rt,R(Rt.Gx*Rt.Gy));Z.ZERO=new Z(re,rt,rt,re);function Ey(r,t){let e=t.negate();return r?e:t}function xy(r){if(!(r instanceof Z))throw new TypeError("ExtendedPoint expected")}function Cu(r){if(!(r instanceof pe))throw new TypeError("RistrettoPoint expected")}function Bu(){throw new Error("Legacy method: switch to RistrettoPoint")}var pe=class{constructor(t){this.ep=t}static calcElligatorRistrettoMap(t){let{d:e}=Rt,n=R(gs*t*t),i=R((n+rt)*C_),s=BigInt(-1),o=R((s-e*n)*R(n+e)),{isValid:a,value:c}=ku(i,o),l=R(c*t);en(l)||(l=R(-l)),a||(c=l),a||(s=n);let u=R(s*(n-rt)*B_-o),f=c*c,h=R((c+c)*o),d=R(u*I_),p=R(rt-f),m=R(rt+f);return new Z(R(h*m),R(p*d),R(d*m),R(h*p))}static hashToCurve(t){t=nn(t,64);let e=Du(t.slice(0,32)),n=this.calcElligatorRistrettoMap(e),i=Du(t.slice(32,64)),s=this.calcElligatorRistrettoMap(i);return new pe(n.add(s))}static fromHex(t){t=nn(t,32);let{a:e,d:n}=Rt,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=Du(t);if(!k_(ws(s),t)||en(s))throw new Error(i);let o=R(s*s),a=R(rt+e*o),c=R(rt-e*o),l=R(a*a),u=R(c*c),f=R(e*n*l-u),{isValid:h,value:d}=by(R(f*u)),p=R(d*c),m=R(d*p*f),y=R((s+s)*p);en(y)&&(y=R(-y));let g=R(a*m),x=R(y*g);if(!h||en(x)||g===re)throw new Error(i);return new pe(new Z(y,g,rt,x))}toRawBytes(){let{x:t,y:e,z:n,t:i}=this.ep,s=R(R(n+e)*R(n-e)),o=R(t*e),a=R(o*o),{value:c}=by(R(s*a)),l=R(c*s),u=R(c*o),f=R(l*u*i),h;if(en(i*f)){let p=R(e*gs),m=R(t*gs);t=p,e=m,h=R(l*T_)}else h=u;en(t*f)&&(e=R(-e));let d=R((n-e)*h);return en(d)&&(d=R(-d)),ws(d)}toHex(){return Es(this.toRawBytes())}toString(){return this.toHex()}equals(t){Cu(t);let e=this.ep,n=t.ep,i=R(e.x*n.y)===R(e.y*n.x),s=R(e.y*n.y)===R(e.x*n.x);return i||s}add(t){return Cu(t),new pe(this.ep.add(t.ep))}subtract(t){return Cu(t),new pe(this.ep.subtract(t.ep))}multiply(t){return new pe(this.ep.multiply(t))}multiplyUnsafe(t){return new pe(this.ep.multiplyUnsafe(t))}};pe.BASE=new pe(Z.BASE);pe.ZERO=new pe(Z.ZERO);var Pu=new WeakMap,Bt=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Pu.delete(this)}static fromHex(t,e=!0){let{d:n,P:i}=Rt;t=nn(t,32);let s=t.slice();s[31]=t[31]&-129;let o=xs(s);if(e&&o>=i)throw new Error("Expected 0 < hex < P");if(!e&&o>=_y)throw new Error("Expected 0 < hex < 2**256");let a=R(o*o),c=R(a-rt),l=R(n*a+rt),{isValid:u,value:f}=ku(c,l);if(!u)throw new Error("Point.fromHex: invalid y coordinate");let h=(f&rt)===rt;return(t[31]&128)!==0!==h&&(f=R(-f)),new Bt(f,o)}static async fromPrivateKey(t){return(await ga(t)).point}toRawBytes(){let t=ws(this.y);return t[31]|=this.x&rt?128:0,t}toHex(){return Es(this.toRawBytes())}toX25519(){let{y:t}=this,e=R((rt+t)*ya(rt-t));return ws(e)}isTorsionFree(){return Z.fromAffine(this).isTorsionFree()}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new Bt(R(-this.x),this.y)}add(t){return Z.fromAffine(this).add(Z.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return Z.fromAffine(this).multiply(t,this).toAffine()}};Bt.BASE=new Bt(Rt.Gx,Rt.Gy);Bt.ZERO=new Bt(re,rt);var Un=class{constructor(t,e){this.r=t,this.s=e,this.assertValidity()}static fromHex(t){let e=nn(t,64),n=Bt.fromHex(e.slice(0,32),!1),i=xs(e.slice(32,64));return new Un(n,i)}assertValidity(){let{r:t,s:e}=this;if(!(t instanceof Bt))throw new Error("Expected Point instance");return ma(e,Rt.l,!1),this}toRawBytes(){let t=new Uint8Array(64);return t.set(this.r.toRawBytes()),t.set(ws(this.s),32),t}toHex(){return Es(this.toRawBytes())}};function vy(...r){if(!r.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(r.length===1)return r[0];let t=r.reduce((n,i)=>n+i.length,0),e=new Uint8Array(t);for(let n=0,i=0;n<r.length;n++){let s=r[n];e.set(s,i),i+=s.length}return e}var D_=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Es(r){if(!(r instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let e=0;e<r.length;e++)t+=D_[r[e]];return t}function Nu(r){if(typeof r!="string")throw new TypeError("hexToBytes: expected string, got "+typeof r);if(r.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let t=new Uint8Array(r.length/2);for(let e=0;e<t.length;e++){let n=e*2,i=r.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");t[e]=s}return t}function Sy(r){let e=r.toString(16).padStart(64,"0");return Nu(e)}function ws(r){return Sy(r).reverse()}function en(r){return(R(r)&rt)===rt}function xs(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Es(Uint8Array.from(r).reverse()))}var L_=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Du(r){return R(xs(r)&L_)}function R(r,t=Rt.P){let e=r%t;return e>=re?e:t+e}function ya(r,t=Rt.P){if(r===re||t<=re)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=R(r,t),n=t,i=re,s=rt,o=rt,a=re;for(;e!==re;){let l=n/e,u=n%e,f=i-o*l,h=s-a*l;n=e,e=u,i=o,s=a,o=f,a=h}if(n!==rt)throw new Error("invert: does not exist");return R(i,t)}function P_(r,t=Rt.P){let e=new Array(r.length),n=r.reduce((s,o,a)=>o===re?s:(e[a]=s,R(s*o,t)),rt),i=ya(n,t);return r.reduceRight((s,o,a)=>o===re?s:(e[a]=R(s*e[a],t),R(s*o,t)),i),e}function hr(r,t){let{P:e}=Rt,n=r;for(;t-- >re;)n*=n,n%=e;return n}function N_(r){let{P:t}=Rt,e=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=r*r%t*r%t,l=hr(c,rn)*c%t,u=hr(l,rt)*r%t,f=hr(u,e)*u%t,h=hr(f,n)*f%t,d=hr(h,i)*h%t,p=hr(d,s)*d%t,m=hr(p,o)*p%t,y=hr(m,o)*p%t,g=hr(y,n)*f%t;return{pow_p_5_8:hr(g,rn)*r%t,b2:c}}function ku(r,t){let e=R(t*t*t),n=R(e*e*t),i=N_(r*n).pow_p_5_8,s=R(r*e*i),o=R(t*s*s),a=s,c=R(s*gs),l=o===r,u=o===R(-r),f=o===R(-r*gs);return l&&(s=a),(u||f)&&(s=c),en(s)&&(s=R(-s)),{isValid:l||u,value:s}}function by(r){return ku(rt,r)}function pa(r){return R(xs(r),Rt.l)}function k_(r,t){if(r.length!==t.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==t[e])return!1;return!0}function nn(r,t){let e=r instanceof Uint8Array?Uint8Array.from(r):Nu(r);if(typeof t=="number"&&e.length!==t)throw new Error(`Expected ${t} bytes`);return e}function ma(r,t,e=!0){if(!t)throw new TypeError("Specify max value");if(typeof r=="number"&&Number.isSafeInteger(r)&&(r=BigInt(r)),typeof r=="bigint"&&r<t){if(e){if(re<r)return r}else if(re<=r)return r}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function O_(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function M_(r){if(r=typeof r=="bigint"||typeof r=="number"?Sy(ma(r,_y)):nn(r),r.length!==32)throw new Error("Expected 32 bytes");return r}function U_(r){let t=O_(r.slice(0,32)),e=r.slice(32,64),n=pa(t),i=Bt.BASE.multiply(n),s=i.toRawBytes();return{head:t,prefix:e,scalar:n,point:i,pointBytes:s}}var Lu;async function ga(r){return U_(await sn.sha512(M_(r)))}async function Ou(r){return(await ga(r)).pointBytes}async function Ay(r,t){r=nn(r);let{prefix:e,scalar:n,pointBytes:i}=await ga(t),s=pa(await sn.sha512(e,r)),o=Bt.BASE.multiply(s),a=pa(await sn.sha512(o.toRawBytes(),i,r)),c=R(s+a*n,Rt.l);return new Un(o,c).toRawBytes()}function F_(r,t,e){t=nn(t),e instanceof Bt||(e=Bt.fromHex(e,!1));let{r:n,s:i}=r instanceof Un?r.assertValidity():Un.fromHex(r),s=Z.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:s,pub:e,msg:t}}function K_(r,t,e,n){let i=pa(n),s=Z.fromAffine(r).multiplyUnsafe(i);return Z.fromAffine(t).add(s).subtract(e).multiplyUnsafe(Rt.h).equals(Z.ZERO)}async function Ry(r,t,e){let{r:n,SB:i,msg:s,pub:o}=F_(r,t,e),a=await sn.sha512(n.toRawBytes(),o.toRawBytes(),s);return K_(o,n,i,a)}Bt.BASE._setWindowSize(8);var tn={node:A_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},sn={bytesToHex:Es,hexToBytes:Nu,concatBytes:vy,getExtendedPublicKey:ga,mod:R,invert:ya,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:r=>{if(r=nn(r),r.length<40||r.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return R(xs(r),Rt.l-rt)+rt},randomBytes:(r=32)=>{if(tn.web)return tn.web.getRandomValues(new Uint8Array(r));if(tn.node){let{randomBytes:t}=tn.node;return new Uint8Array(t(r).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>sn.randomBytes(32),sha512:async(...r)=>{let t=vy(...r);if(tn.web){let e=await tn.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(e)}else{if(tn.node)return Uint8Array.from(tn.node.createHash("sha512").update(t).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(r=8,t=Bt.BASE){let e=t.equals(Bt.BASE)?t:new Bt(t.x,t.y);return e._setWindowSize(r),e.multiply(rn),e},sha512Sync:void 0};Object.defineProperties(sn,{sha512Sync:{configurable:!1,get(){return Lu},set(r){Lu||(Lu=r)}}});var ki=32,Pr=64,wa=32;async function Iy(){let r=sn.randomPrivateKey(),t=await Ou(r);return{privateKey:Dy(r,t),publicKey:t}}async function Ty(r){if(r.length!==wa)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=r,e=await Ou(t);return{privateKey:Dy(t,e),publicKey:e}}async function Cy(r,t){let e=r.subarray(0,wa);return await Ay(t,e)}async function By(r,t,e){return await Ry(t,e,r)}function Dy(r,t){let e=new Uint8Array(Pr);for(let n=0;n<wa;n++)e[n]=r[n],e[wa+n]=t[n];return e}var vs=class{constructor(t){this._key=Oi(t,ki)}async verify(t,e){return await By(this._key,e,t)}marshal(){return this._key}get bytes(){return nr.encode({Type:Tt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}},Fn=class{constructor(t,e){this._key=Oi(t,Pr),this._publicKey=Oi(e,ki)}async sign(t){return await Cy(this._key,t)}get public(){return new vs(this._publicKey)}marshal(){return this._key}get bytes(){return ir.encode({Type:Tt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}async id(){let t=Kr.digest(this.public.bytes);return Mt.encode(t.bytes).substring(1)}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Pi(this.bytes,t);throw new w(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function $_(r){if(r.length>Pr){r=Oi(r,Pr+ki);let n=r.subarray(0,Pr),i=r.subarray(Pr,r.length);return new Fn(n,i)}r=Oi(r,Pr);let t=r.subarray(0,Pr),e=r.subarray(ki);return new Fn(t,e)}function z_(r){return r=Oi(r,ki),new vs(r)}async function H_(){let{privateKey:r,publicKey:t}=await Iy();return new Fn(r,t)}async function Ly(r){let{privateKey:t,publicKey:e}=await Ty(r);return new Fn(t,e)}function Oi(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Fu={};ne(Fu,{Secp256k1PrivateKey:()=>_s,Secp256k1PublicKey:()=>bs,generateKeyPair:()=>Q_,unmarshalSecp256k1PrivateKey:()=>Y_,unmarshalSecp256k1PublicKey:()=>W_});function Py(){return He.randomPrivateKey()}async function Ny(r,t){let{digest:e}=await ie.digest(t);try{return await oy(e,r)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function ky(r,t,e){try{let{digest:n}=await ie.digest(e);return ay(t,n,r)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function Oy(r){return ct.fromHex(r).toRawBytes(!0)}function My(r){try{Au(r,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Uu(r){try{ct.fromHex(r)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function Uy(r){try{return Au(r,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var bs=class{constructor(t){Uu(t),this._key=t}async verify(t,e){return await ky(this._key,e,t)}marshal(){return Oy(this._key)}get bytes(){return nr.encode({Type:Tt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}},_s=class{constructor(t,e){this._key=t,this._publicKey=e??Uy(t),My(this._key),Uu(this._publicKey)}async sign(t){return await Ny(this._key,t)}get public(){return new bs(this._publicKey)}marshal(){return this._key}get bytes(){return ir.encode({Type:Tt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return xt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ie.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,e="libp2p-key"){if(e==="libp2p-key")return await Pi(this.bytes,t);throw new w(`export format '${e}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Y_(r){return new _s(r)}function W_(r){return new bs(r)}async function Q_(){let r=Py();return new _s(r)}var Nr={rsa:Tu,ed25519:Mu,secp256k1:Fu};function Ku(r){let t=Object.keys(Nr).join(" / ");return new w(`invalid or unsupported key type ${r}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Vu(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return Nr[r];throw Ku(r)}async function xa(r,t){return await Vu(r).generateKeyPair(t??2048)}function Ss(r){let t=nr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Tt.RSA:return Nr.rsa.unmarshalRsaPublicKey(e);case Tt.Ed25519:return Nr.ed25519.unmarshalEd25519PublicKey(e);case Tt.Secp256k1:return Nr.secp256k1.unmarshalSecp256k1PublicKey(e);default:throw Ku(t.Type??"RSA")}}function Fy(r,t){return t=(t??"rsa").toLowerCase(),Vu(t),r.bytes}async function Mi(r){let t=ir.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case Tt.RSA:return await Nr.rsa.unmarshalRsaPrivateKey(e);case Tt.Ed25519:return Nr.ed25519.unmarshalEd25519PrivateKey(e);case Tt.Secp256k1:return Nr.secp256k1.unmarshalSecp256k1PrivateKey(e);default:throw Ku(t.Type??"RSA")}}function Ky(r,t){return t=(t??"rsa").toLowerCase(),Vu(t),r.bytes}async function As(r,t){try{let i=await qm(r,t);return await Mi(i)}catch{}let e=Ea.default.pki.decryptRsaPrivateKey(r,t);if(e===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=Ea.default.asn1.toDer(Ea.default.pki.privateKeyToAsn1(e));return n=F(n.getBytes(),"ascii"),await Nr.rsa.unmarshalRsaPrivateKey(n)}var aB=N(Wo(),1),Z_=N(ft(),1);var qy=N(cu(),1),$y=N(qt(),1);var Vy={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function Rs(r,t,e,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(Vy).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=Vy[i],o=(0,qy.default)(r,t,e,n,s);return $y.default.encode64(o,null)}var va=U("libp2p:keychain"),tS="/pkcs8/",Hy="/info/",Kn=new WeakMap,Vn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},qu={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function kr(r){return r==null||typeof r!="string"?!1:r===(0,zy.default)(r.trim())&&r.length>0}async function yt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function dr(r){return new Nt(tS+r)}function on(r){return new Nt(Hy+r)}var qn=class{constructor(t,e){if(this.components=t,this.init=Ce(qu,e),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Vn.minKeyLength)throw new Error(`dek.keyLength must be least ${Vn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Vn.minSaltLength)throw new Error(`dek.saltLength must be least ${Vn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Vn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Vn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?Rs(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Kn.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},qu),e=Math.ceil(Vn.minSaltLength/3)*3;return t.dek.salt=z(Dr(e),"base64"),t}static get options(){return qu}async createKey(t,e,n=2048){if(!kr(t)||t==="self")throw await yt(),new w("Invalid key name",j.ERR_INVALID_KEY_NAME);if(typeof e!="string")throw await yt(),new w("Invalid key type",j.ERR_INVALID_KEY_TYPE);let i=dr(t);if(await this.components.datastore.has(i))throw await yt(),new w("Key name already exists",j.ERR_KEY_ALREADY_EXISTS);switch(e.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await yt(),new w("Invalid RSA key size",j.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await xa(e,n),c=await a.id(),l=Kn.get(this);if(l==null)throw new w("dek missing",j.ERR_INVALID_PARAMETERS);let u=l.dek,f=await a.export(u);o={name:t,id:c};let h=this.components.datastore.batch();h.put(i,F(f)),h.put(on(t),F(JSON.stringify(o))),await h.commit()}catch(a){throw await yt(),a}return o}async listKeys(){let t={prefix:Hy},e=[];for await(let n of this.components.datastore.query(t))e.push(JSON.parse(z(n.value)));return e}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,j.ERR_KEY_NOT_FOUND);return n}catch(e){throw await yt(),e}}async findKeyByName(t){if(!kr(t))throw await yt(),new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);let e=on(t);try{let n=await this.components.datastore.get(e);return JSON.parse(z(n))}catch(n){throw await yt(),va.error(n),new w(`Key '${t}' does not exist.`,j.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);let e=dr(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(e),i.delete(on(t)),await i.commit(),n}async renameKey(t,e){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid old key name '${t}'`,j.ERR_OLD_KEY_NAME_INVALID);if(!kr(e)||e==="self")throw await yt(),new w(`Invalid new key name '${e}'`,j.ERR_NEW_KEY_NAME_INVALID);let n=dr(t),i=dr(e),s=on(t),o=on(e);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${e}' already exists`,j.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),l=await this.components.datastore.get(s),u=JSON.parse(z(l));u.name=e;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,F(JSON.stringify(u))),f.delete(n),f.delete(s),await f.commit(),u}catch(c){throw await yt(),c}}async exportKey(t,e){if(!kr(t))throw await yt(),new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);if(e==null)throw await yt(),new w("Password is required",j.ERR_PASSWORD_REQUIRED);let n=dr(t);try{let i=await this.components.datastore.get(n),s=z(i),o=Kn.get(this);if(o==null)throw new w("dek missing",j.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await As(s,a)).export(e)}catch(i){throw await yt(),i}}async exportPeerId(t){let e="temporary-password",n=await this.exportKey(t,e),i=await As(n,e);return await $r(i.public.bytes,i.bytes)}async importKey(t,e,n){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);if(e==null)throw await yt(),new w("PEM encoded key is required",j.ERR_PEM_REQUIRED);let i=dr(t);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${t}' already exists`,j.ERR_KEY_ALREADY_EXISTS);let o;try{o=await As(e,n)}catch{throw await yt(),new w("Cannot read the key, most likely the password is wrong",j.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let u=Kn.get(this);if(u==null)throw new w("dek missing",j.ERR_INVALID_PARAMETERS);let f=u.dek;e=await o.export(f)}catch(u){throw await yt(),u}let c={name:t,id:a},l=this.components.datastore.batch();return l.put(i,F(e)),l.put(on(t),F(JSON.stringify(c))),await l.commit(),c}async importPeer(t,e){try{if(!kr(t))throw new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);if(e==null)throw new w("PeerId is required",j.ERR_MISSING_PRIVATE_KEY);if(e.privateKey==null)throw new w("PeerId.privKey is required",j.ERR_MISSING_PRIVATE_KEY);let n=await Mi(e.privateKey),i=dr(t);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${t}' already exists`,j.ERR_KEY_ALREADY_EXISTS);let o=Kn.get(this);if(o==null)throw new w("dek missing",j.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),l={name:t,id:e.toString()},u=this.components.datastore.batch();return u.put(i,F(c)),u.put(on(t),F(JSON.stringify(l))),await u.commit(),l}catch(n){throw await yt(),n}}async getPrivateKey(t){if(!kr(t))throw await yt(),new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);try{let e=dr(t),n=await this.components.datastore.get(e);return z(n)}catch(e){throw await yt(),va.error(e),new w(`Key '${t}' does not exist.`,j.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await yt(),new w(`Invalid old pass type '${typeof t}'`,j.ERR_INVALID_OLD_PASS_TYPE);if(typeof e!="string")throw await yt(),new w(`Invalid new pass type '${typeof e}'`,j.ERR_INVALID_NEW_PASS_TYPE);if(e.length<20)throw await yt(),new w(`Invalid pass length ${e.length}`,j.ERR_INVALID_PASS_LENGTH);va("recreating keychain");let n=Kn.get(this);if(n==null)throw new w("dek missing",j.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=e;let s=e!=null&&this.init.dek?.salt!=null?Rs(e,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Kn.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(dr(a.name)),l=z(c),u=await As(l,i),f=s.toString(),h=await u.export(f),d=this.components.datastore.batch(),p={name:a.name,id:a.id};d.put(dr(a.name),F(h)),d.put(on(a.name),F(JSON.stringify(p))),await d.commit()}va("keychain reconstructed")}};var LB=Symbol.for("@libp2p/transport");var an;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(an||(an={}));var $u=class extends Map{constructor(t){super();let{name:e,metrics:n}=t;this.metric=n.registerMetric(e),this.updateComponentMetric()}set(t,e){return super.set(t,e),this.updateComponentMetric(),this}delete(t){let e=super.delete(t);return this.updateComponentMetric(),e}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Is(r){let{name:t,metrics:e}=r,n;return e!=null?n=new $u({name:t,metrics:e}):n=new Map,n}var $n=U("libp2p:transports"),ba=class extends Pt{constructor(t,e={}){super(),this.components=t,this.started=!1,this.transports=new Map,this.listeners=Is({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=e.faultTolerance??an.FATAL_ALL}add(t){let e=t[Symbol.toStringTag];if(e==null)throw new w("Transport must have a valid tag",S.ERR_INVALID_KEY);if(this.transports.has(e))throw new w(`There is already a transport with the tag ${e}`,S.ERR_DUPLICATE_TRANSPORT);$n("adding transport %s",e),this.transports.set(e,t),this.listeners.has(e)||this.listeners.set(e,[])}isStarted(){return this.started}async start(){let t=this.components.addressManager.getListenAddrs();await this.listen(t),this.started=!0}async stop(){let t=[];for(let[e,n]of this.listeners)for($n("closing listeners for %s",e);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),$n("all listeners closed");for(let e of this.listeners.keys())this.listeners.set(e,[]);this.started=!1}async dial(t,e){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,S.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...e,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=S.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let e of this.listeners.values())for(let n of e)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(t){for(let e of this.transports.values())if(e.filter([t]).length>0)return e}async listen(t){if(t==null||t.length===0){$n("no addresses were provided for listening, this node is dial only");return}let e=[];for(let[n,i]of this.transports.entries()){let s=i.filter(t),o=[];for(let l of s){$n("creating listener for %s on %s",n,l);let u=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n);f==null&&(f=[],this.listeners.set(n,f)),f.push(u),u.addEventListener("listening",()=>{this.dispatchEvent(new $("listener:listening",{detail:u}))}),u.addEventListener("close",()=>{this.dispatchEvent(new $("listener:close",{detail:u}))}),o.push(u.listen(l))}if(o.length===0){e.push(n);continue}if((await Promise.allSettled(o)).find(l=>l.status==="fulfilled")==null&&this.faultTolerance!==an.NO_FATAL)throw new w(`Transport (${n}) could not listen on any available address`,S.ERR_NO_VALID_ADDRESSES)}if(e.length===this.transports.size){let n=`no valid addresses were provided for transports [${e.join(", ")}]`;if(this.faultTolerance===an.FATAL_ALL)throw new w(n,S.ERR_NO_VALID_ADDRESSES);$n(`libp2p in dial mode only: ${n}`)}}async remove(t){$n("removing %s",t);for(let e of this.listeners.get(t)??[])await e.close();this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let e of this.transports.keys())t.push(this.remove(e));await Promise.all(t)}};var Or="/multistream/1.0.0";var tg=N(ci(),1);var Yy=Symbol.for("@achingbrain/uint8arraylist");function Gy(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let i=e+n.byteLength;if(t<i)return{buf:n,index:t-e};e=i}throw new RangeError("index is out of bounds")}function _a(r){return!!r?.[Yy]}var Ot=class{constructor(...t){Object.defineProperty(this,Yy,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(_a(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(_a(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Gy(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Gy(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(_a(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:i}=this._subList(t,e);return Ut(n,i)}subarray(t,e){let{bufs:n,length:i}=this._subList(t,e);return n.length===1?n[0]:Ut(n,i)}sublist(t,e){let{bufs:n,length:i}=this._subList(t,e),s=new Ot;return s.length=i,s.bufs=n,s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,t>=c)continue;let l=t>=a&&t<c,u=e>a&&e<=c;if(l&&u){if(t===a&&e===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(e-t)));break}if(l){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(u){if(e===c){n.push(o);break}n.push(o.subarray(0,e-a));break}n.push(o)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!_a(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=e;f<=c;f+=u){u=0;for(let h=l;h>=0;h--){let d=this.get(f+h);if(n[h]!==d){u=Math.max(1,h-a[d]);break}}if(u===0)return f}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=vr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let i=xr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,e,n),this.write(i,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let i=xr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,e,n),this.write(i,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let i=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,e,n),this.write(i,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=vr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let i=xr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,e,n),this.write(i,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let i=xr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,e,n),this.write(i,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let i=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,e,n),this.write(i,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let i=xr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,e,n),this.write(i,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let i=xr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,e,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof Ot)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!xt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new Ot;return n.bufs=t,e==null&&(e=t.reduce((i,s)=>i+s.byteLength,0)),n.length=e,n}};function Sa(r){return r instanceof Uint8Array?{get(t){return r[t]},set(t,e){r[t]=e}}:{get(t){return r.get(t)},set(t,e){r.set(t,e)}}}var Wy=4294967296,Se=class{constructor(t=0,e=0){this.hi=t,this.lo=e}toBigInt(t){if(t===!0)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toNumber(t){return Number(this.toBigInt(t))}zzDecode(){let t=-(this.lo&1),e=((this.lo>>>1|this.hi<<31)^t)>>>0,n=(this.hi>>>1^t)>>>0;return new Se(n,e)}zzEncode(){let t=this.hi>>31,e=((this.hi<<1|this.lo>>>31)^t)>>>0,n=(this.lo<<1^t)>>>0;return new Se(e,n)}toBytes(t,e=0){let n=Sa(t);for(;this.hi>0;)n.set(e++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(e++,this.lo&127|128),this.lo=this.lo>>>7;n.set(e++,this.lo)}static fromBigInt(t){if(t===0n)return new Se;let e=t<0;e&&(t=-t);let n=Number(t>>32n)|0,i=Number(t-(BigInt(n)<<32n))|0;return e&&(n=~n>>>0,i=~i>>>0,++i>Wy&&(i=0,++n>Wy&&(n=0))),new Se(n,i)}static fromNumber(t){if(t===0)return new Se;let e=t<0;e&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return e&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Se(i,n)}static fromBytes(t,e=0){let n=Sa(t),i=new Se,s=0;if(t.length-e>4){for(;s<4;++s)if(i.lo=(i.lo|(n.get(e)&127)<<s*7)>>>0,n.get(e++)<128)return i;if(i.lo=(i.lo|(n.get(e)&127)<<28)>>>0,i.hi=(i.hi|(n.get(e)&127)>>4)>>>0,n.get(e++)<128)return i;s=0}else for(;s<4;++s){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.lo=(i.lo|(n.get(e)&127)<<s*7)>>>0,n.get(e++)<128)return i}if(t.length-e>4){for(;s<5;++s)if(i.hi=(i.hi|(n.get(e)&127)<<s*7+3)>>>0,n.get(e++)<128)return i}else if(e<t.byteLength)for(;s<5;++s){if(e>=t.length)throw RangeError(`index out of range: ${e} > ${t.length}`);if(i.hi=(i.hi|(n.get(e)&127)<<s*7+3)>>>0,n.get(e++)<128)return i}throw RangeError("invalid varint encoding")}};var eS=Math.pow(2,7),rS=Math.pow(2,14),nS=Math.pow(2,21),iS=Math.pow(2,28),sS=Math.pow(2,35),oS=Math.pow(2,42),aS=Math.pow(2,49),cS=Math.pow(2,56),lS=Math.pow(2,63),Ge={encodingLength(r){return r<eS?1:r<rS?2:r<nS?3:r<iS?4:r<sS?5:r<oS?6:r<aS?7:r<cS?8:r<lS?9:10},encode(r,t,e=0){if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return t==null&&(t=vr(Ge.encodingLength(r))),Se.fromNumber(r).toBytes(t,e),t},decode(r,t=0){return Se.fromBytes(r,t).toNumber(!0)}};function Qy(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var Aa=r=>{let t=Ge.encodingLength(r),e=Qy(t);return Ge.encode(r,e),Aa.bytes=t,e};Aa.bytes=0;function Ae(r){r=r??{};let t=r.lengthEncoder??Aa;return async function*(n){for await(let i of n){let s=t(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}}}Ae.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??Aa;return new Ot(e(r.byteLength),r)};var Ts=N(ci(),1),uS=8,fS=1024*1024*4,zn;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(zn||(zn={}));var zu=r=>{let t=Ge.decode(r);return zu.bytes=Ge.encodingLength(t),t};zu.bytes=0;function me(r){return async function*(e){let n=new Ot,i=zn.LENGTH,s=-1,o=r?.lengthDecoder??zu,a=r?.maxLengthLength??uS,c=r?.maxDataLength??fS;for await(let l of e)for(n.append(l);n.byteLength>0;){if(i===zn.LENGTH)try{if(s=o(n),s<0)throw(0,Ts.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(s>c)throw(0,Ts.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;n.consume(u),r?.onLength!=null&&r.onLength(s),i=zn.DATA}catch(u){if(u instanceof RangeError){if(n.byteLength>a)throw(0,Ts.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(i===zn.DATA){if(n.byteLength<s)break;let u=n.sublist(0,s);n.consume(s),r?.onData!=null&&r.onData(u),yield u,i=zn.LENGTH}}if(n.byteLength>0)throw(0,Ts.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}me.fromReader=(r,t)=>{let e=1,n=async function*(){for(;;)try{let{done:s,value:o}=await r.next(e);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{e=1}}();return me({...t??{},onLength:s=>{e=s}})(n)};var Hu=N(ci(),1);var Cs=class extends Error{constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function Xy(r){if(r!=null){if(typeof r[Symbol.iterator]=="function")return r[Symbol.iterator]();if(typeof r[Symbol.asyncIterator]=="function")return r[Symbol.asyncIterator]();if(typeof r.next=="function")return r}throw new Error("argument is not an iterator or iterable")}function Ia(r,t,e){let n=e??{},i=Xy(r);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:u,abortCode:f}=n;throw new Cs(u,f)}let l=new Promise((u,f)=>{o=()=>{let{abortMessage:h,abortCode:d}=n;f(new Cs(h,d))}});c=await Promise.race([l,i.next()]),o=null}catch(l){t.removeEventListener("abort",a);let u=l.type==="aborted"&&t.aborted;if(u&&n.onAbort!=null&&await n.onAbort(r),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(u&&n.returnOnAbort===!0)return;throw l}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function hS(r,t,e){return n=>r(Ia(n,t,e))}function ye(r,t,e){return{sink:hS(r.sink,t,{...e,onAbort:void 0}),source:Ia(r.source,t,e)}}var pS=U("libp2p:mss"),Zy=F(`
38
+ `);function Bs(r){let t=new Ot(r,Zy);return Ae.single(t)}function Hn(r,t,e={}){let n=Bs(t);e.writeBytes===!0?r.push(n.subarray()):r.push(n)}function Jy(r,t,e={}){let n=new Ot;for(let i of t)n.append(Bs(i));e.writeBytes===!0?r.push(n.subarray()):r.push(n)}async function mS(r,t){let e=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await r.next(e)},i=n;t?.signal!=null&&(i=Ia(n,t.signal));let o=await Ft(i,me({onLength:a=>{e=a},maxDataLength:1024}),async a=>await se(a));if(o==null||o.length===0)throw(0,Hu.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==Zy[0])throw pS.error("Invalid mss message - missing newline - %s",o.subarray()),(0,Hu.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Ui(r,t){let e=await mS(r,t);return z(e.subarray())}function Gu(r){let t=async function*(){let e=yield,n=new Ot;for await(let i of r){if(e==null){n.append(i),e=yield n,n=new Ot;continue}for(n.append(i);n.length>=e;){let s=n.sublist(0,e);if(n.consume(e),e=yield s,e==null){n.length>0&&(e=yield n,n=new Ot);break}}}if(e!=null)throw Object.assign(new Error(`stream ended before ${e} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function cn(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}function Ta(r){let t=vn(),e=Gu(r.source),n=cn(),i,s=r.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:e,writer:t,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await s),source:e},rest:()=>t.end(),write:t.push,read:async()=>{let a=await e.next();if(a.value!=null)return a.value}}}var Ds=U("libp2p:mss:select");async function Ls(r,t,e={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=Ta(r),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Ds('select: write ["%s", "%s"]',Or,a);let c=F(Or),l=F(a);Jy(i,[c,l],e);let u=await Ui(n,e);if(Ds('select: read "%s"',u),u===Or&&(u=await Ui(n,e),Ds('select: read "%s"',u)),u===a)return s(),{stream:o,protocol:a};for(let f of t){Ds('select: write "%s"',f),Hn(i,F(f),e);let h=await Ui(n,e);if(Ds('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),(0,tg.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Ps=U("libp2p:mss:handle");async function Ns(r,t,e){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=Ta(r);for(;;){let a=await Ui(i,e);if(Ps('read "%s"',a),a===Or){Ps('respond with "%s" for "%s"',Or,a),Hn(n,F(Or),e);continue}if(t.includes(a))return Hn(n,F(a),e),Ps('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Hn(n,new Ot(...t.map(c=>Bs(F(c)))),e),Ps('respond with "%s" for %s',t,a);continue}Hn(n,F("na"),e),Ps('respond with "na" for "%s"',a)}}var eg=Symbol.for("@libp2p/connection");var gS=U("libp2p:connection"),Yu=class{constructor(t){let{remoteAddr:e,remotePeer:n,newStream:i,close:s,getStreams:o,stat:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=e,this.remotePeer=n,this.stat={...a,status:Co},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[eg](){return!0}get streams(){return this._getStreams()}async newStream(t,e){if(this.stat.status===gl)throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Bo)throw new w("the connection is closed","ERR_CONNECTION_CLOSED");Array.isArray(t)||(t=[t]);let n=await this._newStream(t,e);return n.stat.direction="outbound",n}addStream(t){t.stat.direction="inbound"}removeStream(t){}async close(){if(!(this.stat.status===Bo||this._closing)){this.stat.status=gl;try{this.streams.forEach(t=>{t.close()})}catch(t){gS.error(t)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Bo}}};function rg(r){return new Yu(r)}var wS=Symbol.for("@libp2p/topology");function ng(r){return r!=null&&!!r[wS]}var Wu=U("libp2p:registrar"),Qu=32,Xu=64,Ca=class{constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onProtocolChange=this._onProtocolChange.bind(this),this._onConnect=this._onConnect.bind(this),this.components.connectionManager.addEventListener("peer:disconnect",this._onDisconnect),this.components.connectionManager.addEventListener("peer:connect",this._onConnect),this.components.peerStore.addEventListener("change:protocols",this._onProtocolChange)}getProtocols(){return Array.from(new Set([...this.topologies.keys(),...this.handlers.keys()])).sort()}getHandler(t){let e=this.handlers.get(t);if(e==null)throw new w(`No handler registered for protocol ${t}`,S.ERR_NO_HANDLER_FOR_PROTOCOL);return e}getTopologies(t){let e=this.topologies.get(t);return e==null?[]:[...e.values()]}async handle(t,e,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,S.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Ce.bind({ignoreUndefined:!0})({maxInboundStreams:Qu,maxOutboundStreams:Xu},n);this.handlers.set(t,{handler:e,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[t])}async unhandle(t){let e=Array.isArray(t)?t:[t];e.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,e)}async register(t,e){if(!ng(e))throw Wu.error("topology must be an instance of interfaces/topology"),new w("topology must be an instance of interfaces/topology",S.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,e),await e.setRegistrar(this),n}unregister(t){for(let[e,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(e))}_onDisconnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.remotePeer).then(n=>{for(let i of n){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect(e.remotePeer)}}).catch(n=>{Wu.error(n)})}_onConnect(t){let e=t.detail;this.components.peerStore.protoBook.get(e.remotePeer).then(n=>{for(let i of n){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onConnect(e.remotePeer,e)}}).catch(n=>{Wu.error(n)})}_onProtocolChange(t){let{peerId:e,protocols:n,oldProtocols:i}=t.detail,s=i.filter(a=>!n.includes(a)),o=n.filter(a=>!i.includes(a));for(let a of s){let c=this.topologies.get(a);if(c!=null)for(let l of c.values())l.onDisconnect(e)}for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let l of c.values()){let u=this.components.connectionManager.getConnections(e)[0];u!=null&&l.onConnect(e,u)}}}};var Zu=N(_r(),1);var Ju=N(tr(),1),bt=U("libp2p:upgrader");function ES(r,t){try{let{options:e}=t.getHandler(r);return e.maxInboundStreams}catch(e){if(e.code!==S.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return Qu}function xS(r,t){try{let{options:e}=t.getHandler(r);return e.maxOutboundStreams}catch(e){if(e.code!==S.ERR_NO_HANDLER_FOR_PROTOCOL)throw e}return Xu}function ig(r,t,e){let n=0;return e.streams.forEach(i=>{i.stat.direction===t&&i.stat.protocol===r&&n++}),n}var Ba=class extends Pt{constructor(t,e){super(),this.components=t,this.connectionEncryption=new Map,e.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,e.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=e.inboundUpgradeTimeout}async upgradeInbound(t,e){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",S.ERR_CONNECTION_DENIED);let i,s,o,a,c,l=new Zu.TimeoutController(this.inboundUpgradeTimeout);try{(0,Ju.setMaxListeners)?.(1/0,l.signal)}catch{}try{let u=ye(t,l.signal);if(t.source=u.source,t.sink=u.sink,await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",S.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),bt("starting the inbound connection upgrade");let f=t;if(e?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(bt("protecting the inbound connection"),f=await h.protect(t))}try{if(i=f,e?.skipEncryption!==!0){if({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection?.(s,{...f,...i})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED)}else{let h=t.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",S.ERR_INVALID_MULTIADDR);let d=at(h);c="native",s=d}if(o=i,e?.muxerFactory!=null)a=e.muxerFactory;else if(this.muxers.size>0){let h=await this._multiplexInbound({...f,...i},this.muxers);a=h.muxerFactory,o=h.stream}}catch(h){throw bt.error("Failed to upgrade inbound connection",h),h}if(await this.components.connectionGater.denyInboundUpgradedConnection?.(s,{...f,...i})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED);return bt("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s})}finally{this.components.connectionManager.afterUpgradeInbound(),l.clear()}}async upgradeOutbound(t,e){let n=t.remoteAddr.getPeerId(),i;if(n!=null&&(i=at(n),await this.components.connectionGater.denyOutboundConnection?.(i,t)===!0))throw new w("The multiaddr connection is blocked by connectionGater.denyOutboundConnection",S.ERR_CONNECTION_INTERCEPTED);let s,o,a,c,l;this.components.metrics?.trackMultiaddrConnection(t),bt("Starting the outbound connection upgrade");let u=t;if(e?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(u=await f.protect(t))}try{if(s=u,e?.skipEncryption!==!0){if({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(u,i),await this.components.connectionGater.denyOutboundEncryptedConnection?.(o,{...u,...s})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw new w("Encryption was skipped but no peer id was passed",S.ERR_INVALID_PEER);c="native",o=i}if(a=s,e?.muxerFactory!=null)l=e.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...u,...s},this.muxers);l=f.muxerFactory,a=f.stream}}catch(f){throw bt.error("Failed to upgrade outbound connection",f),await t.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection?.(o,{...u,...s})===!0)throw new w("The multiaddr connection is blocked by gater.acceptEncryptedConnection",S.ERR_CONNECTION_INTERCEPTED);return bt("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:l,remotePeer:o})}_createConnection(t){let{cryptoProtocol:e,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a}=t,c,l,u;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:d=>{u!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:y}=await Ns(d,p);if(bt("%s: incoming stream opened on %s",n,y),u==null)return;let g=ES(y,this.components.registrar);if(ig(y,"inbound",u)===g){d.abort(new w(`Too many inbound protocol streams for protocol "${y}" - limit ${g}`,S.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}d.source=m.source,d.sink=m.sink,d.stat.protocol=y,this.components.peerStore.protoBook.add(o,[y]).catch(_=>{bt.error(_)}),u.addStream(d),this.components.metrics?.trackProtocolStream(d,u),this._onStream({connection:u,stream:d,protocol:y})}).catch(p=>{bt.error(p),d.stat.timeline.close==null&&d.close()})},onStreamEnd:d=>{u?.removeStream(d.id)}}),l=async(d,p={})=>{if(c==null)throw new w("Stream is not multiplexed",S.ERR_MUXER_UNAVAILABLE);bt("%s: starting new stream on %s",n,d);let m=await c.newStream(),y;try{if(p.signal==null){bt("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),y=new Zu.TimeoutController(3e4),p.signal=y.signal;try{(0,Ju.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:x}=await Ls(m,d,p),_=xS(x,this.components.registrar);if(ig(x,"outbound",u)===_){let C=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${_}`,S.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(C),C}return this.components.peerStore.protoBook.add(o,[x]).catch(C=>{bt.error(C)}),m.source=g.source,m.sink=g.sink,m.stat.protocol=x,this.components.metrics?.trackProtocolStream(m,u),m}catch(g){throw bt.error("could not create new stream",g),m.stat.timeline.close==null&&m.close(),g.code!=null?g:new w(String(g),S.ERR_UNSUPPORTED_PROTOCOL)}finally{y?.clear()}},Promise.all([c.sink(s.source),s.sink(c.source)]).catch(d=>{bt.error(d)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...d)=>(u!=null&&d[1]==="close"&&d[2]!=null&&f.close==null&&(async()=>{try{u.stat.status==="OPEN"&&await u.close()}catch(p){bt.error(p)}finally{this.dispatchEvent(new $("connectionEnd",{detail:u}))}})().catch(p=>{bt.error(p)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let h=()=>{throw new w("connection is not multiplexed",S.ERR_CONNECTION_NOT_MULTIPLEXED)};return u=rg({remoteAddr:i.remoteAddr,remotePeer:o,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:e},newStream:l??h,getStreams:()=>c!=null?c.streams:h(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new $("connection",{detail:u})),u}_onStream(t){let{connection:e,stream:n,protocol:i}=t,{handler:s}=this.components.registrar.getHandler(i);s({connection:e,stream:n})}async _encryptInbound(t){let e=Array.from(this.connectionEncryption.keys());bt("handling inbound crypto protocol selection",e);try{let{stream:n,protocol:i}=await Ns(t,e,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return bt("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),S.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,e){let n=Array.from(this.connectionEncryption.keys());bt("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Ls(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return bt("encrypting outbound connection to %p",e),{...await o.secureOutbound(this.components.peerId,i,e),protocol:s}}catch(i){throw new w(String(i),S.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,e){let n=Array.from(e.keys());bt("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Ls(t,n,{writeBytes:!0});bt("%s selected as muxer protocol",s);let o=e.get(s);return{stream:i,muxerFactory:o}}catch(i){throw bt.error("error multiplexing outbound stream",i),new w(String(i),S.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,e){let n=Array.from(e.keys());bt("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ns(t,n,{writeBytes:!0}),o=e.get(s);return{stream:i,muxerFactory:o}}catch(i){throw bt.error("error multiplexing inbound stream",i),new w(String(i),S.ERR_MUXER_UNAVAILABLE)}}};var Gn;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.protocolVersion!=null&&(n.uint32(42),n.string(e.protocolVersion)),e.agentVersion!=null&&(n.uint32(50),n.string(e.agentVersion)),e.publicKey!=null&&(n.uint32(10),n.bytes(e.publicKey)),e.listenAddrs!=null)for(let s of e.listenAddrs)n.uint32(18),n.bytes(s);if(e.observedAddr!=null&&(n.uint32(34),n.bytes(e.observedAddr)),e.protocols!=null)for(let s of e.protocols)n.uint32(26),n.string(s);e.signedPeerRecord!=null&&(n.uint32(66),n.bytes(e.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={listenAddrs:[],protocols:[]},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 5:i.protocolVersion=e.string();break;case 6:i.agentVersion=e.string();break;case 1:i.publicKey=e.bytes();break;case 2:i.listenAddrs.push(e.bytes());break;case 4:i.observedAddr=e.bytes();break;case 3:i.protocols.push(e.string());break;case 8:i.signedPeerRecord=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Gn||(Gn={}));var sg={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var ks;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.publicKey=e.bytes();break;case 2:i.payloadType=e.bytes();break;case 3:i.payload=e.bytes();break;case 5:i.signature=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(ks||(ks={}));var vS,Zt=class{constructor(t){let{peerId:e,payloadType:n,payload:i,signature:s}=t;this.peerId=e,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=ks.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return xt(this.marshal(),t.marshal())}async validate(t){let e=og(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await Ss(this.peerId.publicKey).verify(e.subarray(),this.signature)}};vS=Zt;Zt.createFromProtobuf=async r=>{let t=ks.decode(r),e=await $r(t.publicKey);return new Zt({peerId:e,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};Zt.seal=async(r,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let e=r.domain,n=r.codec,i=r.marshal(),s=og(e,n,i),a=await(await Mi(t.privateKey)).sign(s.subarray());return new Zt({peerId:t,payloadType:n,payload:i,signature:a})};Zt.openAndCertify=async(r,t)=>{let e=await Zt.createFromProtobuf(r);if(!await e.validate(t))throw new w("envelope signature is not valid for the given domain",sg.ERR_SIGNATURE_NOT_VALID);return e};var og=(r,t,e)=>{let n=F(r),i=Ge.encode(n.byteLength),s=Ge.encode(t.length),o=Ge.encode(e.length);return new Ot(i,n,s,t,o,e)};function ag(r,t){let e=(n,i)=>n.toString().localeCompare(i.toString());return r.length!==t.length?!1:(t.sort(e),r.sort(e).every((n,i)=>t[i].equals(n)))}var Os;(function(r){let t;(function(n){let i;n.codec=()=>(i==null&&(i=mt((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let l=s.uint32();switch(l>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(l&7);break}}return a})),i),n.encode=s=>pt(s,n.codec()),n.decode=s=>dt(s,n.codec())})(t=r.AddressInfo||(r.AddressInfo={}));let e;r.codec=()=>(e==null&&(e=mt((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),r.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(r.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),e),r.encode=n=>pt(n,r.codec()),r.decode=n=>dt(n,r.codec())})(Os||(Os={}));var cg="libp2p-peer-record",lg=Uint8Array.from([3,1]);var Gt=class{constructor(t){this.domain=Gt.DOMAIN,this.codec=Gt.CODEC;let{peerId:e,multiaddrs:n,seqNumber:i}=t;this.peerId=e,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Os.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof Gt)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!ag(this.multiaddrs,t.multiaddrs))}};Gt.createFromProtobuf=r=>{let t=Os.decode(r),e=qr(t.peerId),n=(t.addresses??[]).map(s=>It(s.multiaddr)),i=t.seq;return new Gt({peerId:e,multiaddrs:n,seqNumber:i})};Gt.DOMAIN=cg;Gt.CODEC=lg;var Da="0.0.0",ug="libp2p";var ju=`js-libp2p/${Da}`;var fg="0.1.0",hg="id",dg="id/push",pg="1.0.0",mg="1.0.0";var Ms=N(_r(),1);var Us=N(tr(),1),gt=U("libp2p:identify"),yg=1024*8,Fi=class{constructor(t,e){this.components=t,this.started=!1,this.init=e,this.identifyProtocolStr=`/${e.protocolPrefix}/${hg}/${pg}`,this.identifyPushProtocolStr=`/${e.protocolPrefix}/${dg}/${mg}`,this.host={protocolVersion:`${e.protocolPrefix}/${fg}`,...e.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(gt.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>{gt.error(s)})}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>{gt.error(s)})})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",F(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",F(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,t=>{this._handleIdentify(t).catch(e=>{gt.error(e)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,t=>{this._handlePush(t).catch(e=>{gt.error(e)})},{maxInboundStreams:this.init.maxPushIncomingStreams,maxOutboundStreams:this.init.maxPushOutgoingStreams}),this.started=!0)}async stop(){await this.components.registrar.unhandle(this.identifyProtocolStr),await this.components.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async push(t){let e=await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId),n=this.components.addressManager.getAddresses().map(o=>o.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),s=t.map(async o=>{let a,c=new Ms.TimeoutController(this.init.timeout);try{(0,Us.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await o.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await ye(a,c.signal).sink(Ft([Gn.encode({listenAddrs:n,signedPeerRecord:e,protocols:i})],Ae()))}catch(l){gt.error("could not push identify update to peer",l)}finally{a?.close(),c.clear()}});await Promise.all(s)}async pushToPeerStore(){if(!this.isStarted())return;let t=[];for(let e of this.components.connectionManager.getConnections()){let n=e.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&t.push(e)}await this.push(t)}async _identify(t,e={}){let n,i=e.signal,s;if(i==null){n=new Ms.TimeoutController(this.init.timeout),i=n.signal;try{(0,Us.setMaxListeners)?.(1/0,n.signal)}catch{}}try{s=await t.newStream([this.identifyProtocolStr],{signal:i});let o=ye(s,i),a=await Ft([],o,me({maxDataLength:this.init.maxIdentifyMessageSize??yg}),async c=>await se(c));if(a==null)throw new w("No data could be retrieved",S.ERR_CONNECTION_ENDED);try{return Gn.decode(a)}catch(c){throw new w(String(c),S.ERR_INVALID_MESSAGE)}}finally{n?.clear(),s?.close()}}async identify(t,e={}){let n=await this._identify(t,e),{publicKey:i,listenAddrs:s,protocols:o,observedAddr:a,signedPeerRecord:c,agentVersion:l,protocolVersion:u}=n;if(i==null)throw new w("public key was missing from identify message",S.ERR_MISSING_PUBLIC_KEY);let f=await $r(i);if(!t.remotePeer.equals(f))throw new w("identified peer does not match the expected peer",S.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw new w("identified peer is our own peer id?",S.ERR_INVALID_PEER);let h=Fi.getCleanMultiaddr(a);if(c!=null){gt("received signed peer record from %p",f);try{let d=await Zt.openAndCertify(c,Gt.DOMAIN);if(!d.peerId.equals(f))throw new w("identified peer does not match the expected peer",S.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(d)){await this.components.peerStore.protoBook.set(f,o),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",F(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",F(u)),gt("identify completed for peer %p and protocols %o",f,o);return}}catch(d){gt("received invalid envelope, discard it and fallback to listenAddrs is available",d)}}else gt("no signed peer record received from %p",f);gt("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,s.map(d=>It(d)))}catch(d){gt.error("received invalid addrs",d)}await this.components.peerStore.protoBook.set(f,o),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",F(l)),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",F(u)),gt("identify completed for peer %p and protocols %o",f,o),gt("our observed address is %s",h),h!=null&&this.components.addressManager.getObservedAddrs().length<(this.init.maxObservedAddresses??1/0)&&(gt("storing our observed address %s",h?.toString()),this.components.addressManager.addObservedAddr(h))}async _handleIdentify(t){let{connection:e,stream:n}=t,i=new Ms.TimeoutController(this.init.timeout);try{(0,Us.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=this.components.peerId.publicKey??new Uint8Array(0),o=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(h=>h.decapsulateCode(ot("p2p").code)),c=o.peerRecordEnvelope;if(a.length>0&&c==null){let h=new Gt({peerId:this.components.peerId,multiaddrs:a}),d=await Zt.seal(h,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(d),c=d.marshal().subarray()}let l=Gn.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:s,listenAddrs:a.map(h=>h.bytes),signedPeerRecord:c,observedAddr:e.remoteAddr.bytes,protocols:o.protocols}),u=ye(n,i.signal),f=Ft([l],Ae());await u.sink(f)}catch(s){gt.error("could not respond to identify request",s)}finally{n.close(),i.clear()}}async _handlePush(t){let{connection:e,stream:n}=t,i=new Ms.TimeoutController(this.init.timeout);try{(0,Us.setMaxListeners)?.(1/0,i.signal)}catch{}let s;try{let a=ye(n,i.signal),c=await Ft([],a,me({maxDataLength:this.init.maxIdentifyMessageSize??yg}),async l=>await se(l));c!=null&&(s=Gn.decode(c))}catch(a){gt.error("received invalid message",a);return}finally{n.close(),i.clear()}if(s==null){gt.error("received invalid message");return}let o=e.remotePeer;if(this.components.peerId.equals(o)){gt("received push from ourselves?");return}if(gt("received push from %p",o),s.signedPeerRecord!=null){gt("received signedPeerRecord in push");try{let a=await Zt.openAndCertify(s.signedPeerRecord,Gt.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){gt("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(o,s.protocols);return}else gt("failed to consume signedPeerRecord sent in push")}catch(a){gt("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else gt("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(o,s.listenAddrs.map(a=>It(a)))}catch(a){gt.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(o,s.protocols)}catch(a){gt.error("received invalid protocols",a)}gt("handled push from %p",o)}static getCleanMultiaddr(t){if(t!=null&&t.length>0)try{return It(t)}catch{}}};var Fs;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.identifier!=null&&e.identifier!==""&&(n.uint32(10),n.string(e.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={identifier:""},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.identifier=e.string();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Fs||(Fs={}));var Ye;(function(r){let t;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(t=r.StatusCode||(r.StatusCode={}));let e;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(e||(e={})),function(i){i.codec=()=>Gr(e)}(t=r.StatusCode||(r.StatusCode={}));let n;r.codec=()=>(n==null&&(n=mt((i,s,o={})=>{o.lengthDelimited!==!1&&s.fork(),i.status!=null&&e[i.status]!==0&&(s.uint32(8),r.StatusCode.codec().encode(i.status,s)),i.data!=null&&i.data.byteLength>0&&(s.uint32(18),s.bytes(i.data)),o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={status:t.OK,data:new Uint8Array(0)},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.status=r.StatusCode.codec().decode(i);break;case 2:o.data=i.bytes();break;default:i.skipType(c&7);break}}return o})),n),r.encode=i=>pt(i,r.codec()),r.decode=i=>dt(i,r.codec())})(Ye||(Ye={}));var gg="0.0.1",wg="fetch";var Eg=N(_r(),1),xg=N(tr(),1);var ke=U("libp2p:fetch"),La=class{constructor(t,e){this.started=!1,this.components=t,this.protocol=`/${e.protocolPrefix??"libp2p"}/${wg}/${gg}`,this.lookupFunctions=new Map,this.handleMessage=this.handleMessage.bind(this),this.init=e}async start(){await this.components.registrar.handle(this.protocol,t=>{this.handleMessage(t).catch(e=>{ke.error(e)}).finally(()=>{t.stream.close()})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}async fetch(t,e,n={}){ke("dialing %s to %p",this.protocol,t);let i=await this.components.connectionManager.openConnection(t,n),s,o=n.signal,a;if(o==null){ke("using default timeout of %d ms",this.init.timeout),s=new Eg.TimeoutController(this.init.timeout),o=s.signal;try{(0,xg.setMaxListeners)?.(1/0,s.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:o});let c=ye(a,o);return ke("fetch %s",e),await Ft([Fs.encode({identifier:e})],Ae(),c,me(),async function(u){let f=await se(u);if(f==null)throw new w("No data received",S.ERR_INVALID_MESSAGE);let h=Ye.decode(f);switch(h.status){case Ye.StatusCode.OK:return ke("received status for %s ok",e),h.data;case Ye.StatusCode.NOT_FOUND:return ke("received status for %s not found",e),null;case Ye.StatusCode.ERROR:{ke("received status for %s error",e);let d=z(h.data);throw new w("Error in fetch protocol response: "+d,S.ERR_INVALID_PARAMETERS)}default:throw ke("received status for %s unknown",e),new w("Unknown response status",S.ERR_INVALID_MESSAGE)}})??null}finally{s?.clear(),a?.close()}}async handleMessage(t){let{stream:e}=t,n=this;await Ft(e,me(),async function*(i){let s=await se(i);if(s==null)throw new w("No data received",S.ERR_INVALID_MESSAGE);let o=Fs.decode(s),a,c=n._getLookupFunction(o.identifier);if(c!=null){ke("look up data with identifier %s",o.identifier);let l=await c(o.identifier);l!=null?(ke("sending status for %s ok",o.identifier),a={status:Ye.StatusCode.OK,data:l}):(ke("sending status for %s not found",o.identifier),a={status:Ye.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{ke("sending status for %s error",o.identifier);let l=F(`No lookup function registered for key: ${o.identifier}`);a={status:Ye.StatusCode.ERROR,data:l}}yield Ye.encode(a)},Ae(),e)}_getLookupFunction(t){for(let e of this.lookupFunctions.keys())if(t.startsWith(e))return this.lookupFunctions.get(e)}registerLookupFunction(t,e){if(this.lookupFunctions.has(t))throw new w(`Fetch protocol handler for key prefix '${t}' already registered`,S.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(t,e)}unregisterLookupFunction(t,e){e!=null&&this.lookupFunctions.get(t)!==e||this.lookupFunctions.delete(t)}};var vg="1.0.0",bg="ping";var Sg=N(_r(),1),Ag=N(tr(),1),_g=U("libp2p:ping"),Pa=class{constructor(t,e){this.components=t,this.started=!1,this.protocol=`/${e.protocolPrefix}/${bg}/${vg}`,this.init=e}async start(){await this.components.registrar.handle(this.protocol,this.handleMessage,{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}handleMessage(t){let{stream:e}=t;Ft(e,e).catch(n=>{_g.error(n)})}async ping(t,e={}){_g("dialing %s to %p",this.protocol,t);let n=Date.now(),i=Dr(32),s=await this.components.connectionManager.openConnection(t,e),o,a=e.signal,c;if(a==null){o=new Sg.TimeoutController(this.init.timeout),a=o.signal;try{(0,Ag.setMaxListeners)?.(1/0,o.signal)}catch{}}try{c=await s.newStream([this.protocol],{signal:a});let l=ye(c,a),u=await Ft([i],l,async h=>await se(h)),f=Date.now();if(u==null||!xt(i,u.subarray()))throw new w("Received wrong ping ack",S.ERR_WRONG_PING_ACK);return f-n}finally{o?.clear(),c?.close()}}};async function Rg(){throw new Error("Not supported in browsers")}var Cg=N(Tg(),1),tf=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Na=(0,Cg.default)(),Ks=tf&&!Na,Bg=Na&&!tf,Dg=Na&&tf,Lg=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Na,Pg=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,N3=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",Ng=typeof navigator<"u"&&navigator.product==="ReactNative";var Vg=N(kg(),1);var Og="[a-fA-F\\d:]",ln=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${Og})|(?<=${Og})(?=\\s|$))`:"",We="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Yt="[a-fA-F\\d]{1,4}",ka=`
38
39
  (?:
39
- (?:${jt}:){7}(?:${jt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
- (?:${jt}:){6}(?:${tr}|:${jt}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
41
- (?:${jt}:){5}(?::${tr}|(?::${jt}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
42
- (?:${jt}:){4}(?:(?::${jt}){0,1}:${tr}|(?::${jt}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
43
- (?:${jt}:){3}(?:(?::${jt}){0,2}:${tr}|(?::${jt}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
44
- (?:${jt}:){2}(?:(?::${jt}){0,3}:${tr}|(?::${jt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
45
- (?:${jt}:){1}(?:(?::${jt}){0,4}:${tr}|(?::${jt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
- (?::(?:(?::${jt}){0,5}:${tr}|(?::${jt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
40
+ (?:${Yt}:){7}(?:${Yt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
41
+ (?:${Yt}:){6}(?:${We}|:${Yt}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
42
+ (?:${Yt}:){5}(?::${We}|(?::${Yt}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
43
+ (?:${Yt}:){4}(?:(?::${Yt}){0,1}:${We}|(?::${Yt}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
44
+ (?:${Yt}:){3}(?:(?::${Yt}){0,2}:${We}|(?::${Yt}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
45
+ (?:${Yt}:){2}(?:(?::${Yt}){0,3}:${We}|(?::${Yt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
46
+ (?:${Yt}:){1}(?:(?::${Yt}){0,4}:${We}|(?::${Yt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
47
+ (?::(?:(?::${Yt}){0,5}:${We}|(?::${Yt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
47
48
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
48
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),T2=new RegExp(`(?:^${tr}$)|(?:^${ca}$)`),C2=new RegExp(`^${tr}$`),D2=new RegExp(`^${ca}$`),Wu=e=>e&&e.exact?T2:new RegExp(`(?:${fn(e)}${tr}${fn(e)})|(?:${fn(e)}${ca}${fn(e)})`,"g");Wu.v4=e=>e&&e.exact?C2:new RegExp(`${fn(e)}${tr}${fn(e)}`,"g");Wu.v6=e=>e&&e.exact?D2:new RegExp(`${fn(e)}${ca}${fn(e)}`,"g");var n0=Wu;var ua=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,t);if(!Number.isNaN(d))return d});if(l===void 0)break;if(o*=t,o+=l,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var i0=45,B2=15,Gi=new ua;function o0(e){if(!(e.length>B2))return Gi.new(e).parseWith(()=>Gi.readIPv4Addr())}function s0(e){if(!(e.length>i0))return Gi.new(e).parseWith(()=>Gi.readIPv6Addr())}function a0(e){if(!(e.length>i0))return Gi.new(e).parseWith(()=>Gi.readIPAddr())}function c0(e){return Boolean(o0(e))}function u0(e){return Boolean(s0(e))}function Yi(e){return Boolean(a0(e))}var p0=T(f0(),1),{isValid:L2,parse:P2}=p0.default,N2=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],k2=N2.map(e=>new d0.Netmask(e));function O2(e){for(let t of k2)if(t.contains(e))return!0;return!1}function h0(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var m0=e=>{if(L2(e)){let t=P2(e);if(t.kind()==="ipv4")return O2(t.toNormalizedString());if(t.kind()==="ipv6")return h0(e)}else if(Yi(e)&&n0.v6().test(e))return h0(e)};var fa=m0;function Qu(e){let{address:t}=e.nodeAddress();return Boolean(fa(t))}function Wi(e,t){let r=Qu(e.multiaddr),n=Qu(t.multiaddr);return r&&!n?1:!r&&n||e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}var Dy=T(dt(),1);var Xu={};pe(Xu,{identity:()=>U2});var U2=Vi({prefix:"\0",name:"identity",encode:e=>Nd(e),decode:e=>Pd(e)});var Zu={};pe(Zu,{base2:()=>F2});var F2=Ft({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ju={};pe(Ju,{base8:()=>K2});var K2=Ft({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ju={};pe(ju,{base10:()=>V2});var V2=ln({prefix:"9",name:"base10",alphabet:"0123456789"});var tl={};pe(tl,{base16:()=>q2,base16upper:()=>z2});var q2=Ft({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),z2=Ft({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var el={};pe(el,{base36:()=>$2,base36upper:()=>H2});var $2=ln({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),H2=ln({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var rl={};pe(rl,{base256emoji:()=>X2});var w0=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),G2=w0.reduce((e,t,r)=>(e[r]=t,e),[]),Y2=w0.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function W2(e){return e.reduce((t,r)=>(t+=G2[r],t),"")}function Q2(e){let t=[];for(let r of e){let n=Y2[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var X2=Vi({prefix:"\u{1F680}",name:"base256emoji",encode:W2,decode:Q2});var nl={};pe(nl,{identity:()=>hn});var E0=0,Z2="identity",x0=Mr,J2=e=>yr(E0,x0(e)),hn={code:E0,name:Z2,encode:x0,digest:J2};var xC=new TextEncoder,vC=new TextDecoder;var dn={...Xu,...Zu,...Ju,...ju,...tl,...Fu,...el,...Uu,...Ku,...rl},RC={...Hu,...nl};function ti(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Kr(e=0){return globalThis.Buffer?.alloc!=null?ti(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function Vr(e=0){return globalThis.Buffer?.allocUnsafe!=null?ti(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function b0(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var v0=b0("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),il=b0("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=Vr(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),ev={utf8:v0,"utf-8":v0,hex:dn.base16,latin1:il,ascii:il,binary:il,...dn},ha=ev;function K(e,t="utf8"){let r=ha[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?ti(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function bt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var Sl=T(yl(),1),rp=T(W0(),1),Al=T(_l(),1),np=T(ep(),1),ip=T(ri(),1);function lv(){ip.default._configure(),Sl.default._configure(rp.default),Al.default._configure(np.default)}lv();var op=["uint64","int64","sint64","fixed64","sfixed64"];function fv(e){for(let t of op){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function Rl(e){return fv(new Sl.default(e))}function hv(e){for(let t of op){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function Il(){return hv(Al.default.create())}function kt(e,t){let r=Rl(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function Ot(e,t){let r=Il();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Xi;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(Xi||(Xi={}));function ga(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function qr(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return ga("enum",Xi.VARINT,r,n)}function Mt(e,t){return ga("message",Xi.LENGTH_DELIMITED,e,t)}var Lt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(Lt||(Lt={}));var Tl;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(Tl||(Tl={}));(function(e){e.codec=()=>qr(Tl)})(Lt||(Lt={}));var Er;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Lt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=Lt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(Er||(Er={}));var xr;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Lt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=Lt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(xr||(xr={}));var fB=T(Ho(),1),hB=T(xm(),1),Xa=T(gt(),1);var z=class extends Error{constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};function Gt(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=Vr(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return ti(r)}var Se={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var tD=T(Ht(),1),eD=T(Pa(),1),bm=T(gt(),1);function Y(e,t="utf8"){let r=ha[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}function or(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=Gt([new Uint8Array(t-r.length),r])}return Y(r,"base64url")}function Ce(e){let t=_m(e);return new bm.default.jsbn.BigInteger(Y(t,"base16"),16)}function _m(e,t){let r=K(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=Gt([new Uint8Array(t-r.length),r])}return r}var M_={"P-256":256,"P-384":384,"P-521":521},U_=Object.keys(M_),hD=U_.join(" / ");function Ma(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=Se.get();r*=8;async function c(f,d){let h=a.getRandomValues(new Uint8Array(o)),p=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:p};typeof d=="string"&&(d=K(d));let y={name:"PBKDF2",salt:h,iterations:s,hash:{name:i}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),E=await a.subtle.deriveKey(y,g,{name:t,length:r},!0,["encrypt"]),_=await a.subtle.encrypt(m,E,f);return Gt([h,m.iv,new Uint8Array(_)])}async function u(f,d){let h=f.subarray(0,o),p=f.subarray(o,o+n),m=f.subarray(o+n),y={name:t,iv:p};typeof d=="string"&&(d=K(d));let g={name:"PBKDF2",salt:h,iterations:s,hash:{name:i}},E=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),_=await a.subtle.deriveKey(g,E,{name:t,length:r},!0,["decrypt"]),O=await a.subtle.decrypt(y,_,m);return new Uint8Array(O)}return{encrypt:c,decrypt:u}}async function Am(e,t){let r=Qn.decode(e);return await Ma().decrypt(r,t)}var cf={};pe(cf,{RsaPrivateKey:()=>co,RsaPublicKey:()=>ts,fromJwk:()=>uS,generateKeyPair:()=>lS,unmarshalRsaPrivateKey:()=>aS,unmarshalRsaPublicKey:()=>cS});var YD=T(Dm(),1),jo=T(gt(),1);var K_=T(si(),1);var it=BigInt(0),Dt=BigInt(1),vn=BigInt(2),Xo=BigInt(3),Bm=BigInt(8),Kt=Object.freeze({a:it,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:Dt,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Lm=(e,t)=>(e+t/vn)/t,Ua={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(e){let{n:t}=Kt,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Dt*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=Lm(o*e,t),c=Lm(-n*e,t),u=P(e-a*r-c*i,t),l=P(-a*n-c*o,t),f=u>s,d=l>s;if(f&&(u=t-u),d&&(l=t-l),u>s||l>s)throw new Error("splitScalarEndo: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}},sr=32,no=32,V_=32,Pm=sr+1,Nm=2*sr+1;function km(e){let{a:t,b:r}=Kt,n=P(e*e),i=P(n*e);return P(i+t*e+r)}var Fa=Kt.a===it,qa=class extends Error{constructor(t){super(t)}};function Om(e){if(!(e instanceof ut))throw new TypeError("JacobianPoint expected")}var ut=class{constructor(t,r,n){this.x=t,this.y=r,this.z=n}static fromAffine(t){if(!(t instanceof pt))throw new TypeError("JacobianPoint#fromAffine: expected Point");return t.equals(pt.ZERO)?ut.ZERO:new ut(t.x,t.y,Dt)}static toAffineBatch(t){let r=G_(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(t){return ut.toAffineBatch(t).map(ut.fromAffine)}equals(t){Om(t);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=t,c=P(i*i),u=P(a*a),l=P(r*u),f=P(o*c),d=P(P(n*a)*u),h=P(P(s*i)*c);return l===f&&d===h}negate(){return new ut(this.x,P(-this.y),this.z)}double(){let{x:t,y:r,z:n}=this,i=P(t*t),o=P(r*r),s=P(o*o),a=t+o,c=P(vn*(P(a*a)-i-s)),u=P(Xo*i),l=P(u*u),f=P(l-vn*c),d=P(u*(c-f)-Bm*s),h=P(vn*r*n);return new ut(f,d,h)}add(t){Om(t);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=t;if(o===it||s===it)return this;if(r===it||n===it)return t;let c=P(i*i),u=P(a*a),l=P(r*u),f=P(o*c),d=P(P(n*a)*u),h=P(P(s*i)*c),p=P(f-l),m=P(h-d);if(p===it)return m===it?this.double():ut.ZERO;let y=P(p*p),g=P(p*y),E=P(l*y),_=P(m*m-g-vn*E),O=P(m*(E-_)-d*g),C=P(i*a*p);return new ut(_,O,C)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let r=ut.ZERO;if(typeof t=="bigint"&&t===it)return r;let n=Fm(t);if(n===Dt)return this;if(!Fa){let f=r,d=this;for(;n>it;)n&Dt&&(f=f.add(d)),d=d.double(),n>>=Dt;return f}let{k1neg:i,k1:o,k2neg:s,k2:a}=Ua.splitScalar(n),c=r,u=r,l=this;for(;o>it||a>it;)o&Dt&&(c=c.add(l)),a&Dt&&(u=u.add(l)),l=l.double(),o>>=Dt,a>>=Dt;return i&&(c=c.negate()),s&&(u=u.negate()),u=new ut(P(u.x*Ua.beta),u.y,u.z),c.add(u)}precomputeWindow(t){let r=Fa?128/t+1:256/t+1,n=[],i=this,o=i;for(let s=0;s<r;s++){o=i,n.push(o);for(let a=1;a<2**(t-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(t,r){!r&&this.equals(ut.BASE)&&(r=pt.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&tf.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=ut.normalizeZ(i),tf.set(r,i)));let o=ut.ZERO,s=ut.BASE,a=1+(Fa?128/n:256/n),c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(t&u);t>>=f,p>c&&(p-=l,t+=Dt);let m=h,y=h+Math.abs(p)-1,g=d%2!==0,E=p<0;p===0?s=s.add(Ka(g,i[m])):o=o.add(Ka(E,i[y]))}return{p:o,f:s}}multiply(t,r){let n=Fm(t),i,o;if(Fa){let{k1neg:s,k1:a,k2neg:c,k2:u}=Ua.splitScalar(n),{p:l,f}=this.wNAF(a,r),{p:d,f:h}=this.wNAF(u,r);l=Ka(s,l),d=Ka(c,d),d=new ut(P(d.x*Ua.beta),d.y,d.z),i=l.add(d),o=f.add(h)}else{let{p:s,f:a}=this.wNAF(n,r);i=s,o=a}return ut.normalizeZ([i,o])[0]}toAffine(t){let{x:r,y:n,z:i}=this,o=this.equals(ut.ZERO);t==null&&(t=o?Bm:so(i));let s=t,a=P(s*s),c=P(a*s),u=P(r*a),l=P(n*c),f=P(i*s);if(o)return pt.ZERO;if(f!==Dt)throw new Error("invZ was invalid");return new pt(u,l)}};ut.BASE=new ut(Kt.Gx,Kt.Gy,Dt);ut.ZERO=new ut(it,Dt,it);function Ka(e,t){let r=t.negate();return e?r:t}var tf=new WeakMap,pt=class{constructor(t,r){this.x=t,this.y=r}_setWindowSize(t){this._WINDOW_SIZE=t,tf.delete(this)}hasEvenY(){return this.y%vn===it}static fromCompressedHex(t){let r=t.length===32,n=bn(r?t:t.subarray(1));if(!jl(n))throw new Error("Point is not on curve");let i=km(n),o=H_(i),s=(o&Dt)===Dt;r?s&&(o=P(-o)):(t[0]&1)===1!==s&&(o=P(-o));let a=new pt(n,o);return a.assertValidity(),a}static fromUncompressedHex(t){let r=bn(t.subarray(1,sr+1)),n=bn(t.subarray(sr+1,sr*2+1)),i=new pt(r,n);return i.assertValidity(),i}static fromHex(t){let r=oo(t),n=r.length,i=r[0];if(n===sr)return this.fromCompressedHex(r);if(n===Pm&&(i===2||i===3))return this.fromCompressedHex(r);if(n===Nm&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Pm} compressed bytes or ${Nm} uncompressed bytes, not ${n}`)}static fromPrivateKey(t){return pt.BASE.multiply($a(t))}static fromSignature(t,r,n){let{r:i,s:o}=Km(r);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let s=nf(oo(t)),{n:a}=Kt,c=n===2||n===3?i+a:i,u=so(c,a),l=P(-s*u,a),f=P(o*u,a),d=n&1?"03":"02",h=pt.fromHex(d+eo(c)),p=pt.BASE.multiplyAndAddUnsafe(h,l,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(t=!1){return fi(this.toHex(t))}toHex(t=!1){let r=eo(this.x);return t?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${eo(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let t="Point is not on elliptic curve",{x:r,y:n}=this;if(!jl(r)||!jl(n))throw new Error(t);let i=P(n*n),o=km(r);if(P(i-o)!==it)throw new Error(t)}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new pt(this.x,P(-this.y))}double(){return ut.fromAffine(this).double().toAffine()}add(t){return ut.fromAffine(this).add(ut.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return ut.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,r,n){let i=ut.fromAffine(this),o=r===it||r===Dt||this!==pt.BASE?i.multiplyUnsafe(r):i.multiply(r),s=ut.fromAffine(t).multiplyUnsafe(n),a=o.add(s);return a.equals(ut.ZERO)?void 0:a.toAffine()}};pt.BASE=new pt(Kt.Gx,Kt.Gy);pt.ZERO=new pt(it,it);function Mm(e){return Number.parseInt(e[0],16)>=8?"00"+e:e}function Um(e){if(e.length<2||e[0]!==2)throw new Error(`Invalid signature integer tag: ${io(e)}`);let t=e[1],r=e.subarray(2,t+2);if(!t||r.length!==t)throw new Error("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:bn(r),left:e.subarray(t+2)}}function q_(e){if(e.length<2||e[0]!=48)throw new Error(`Invalid signature tag: ${io(e)}`);if(e[1]!==e.length-2)throw new Error("Invalid signature: incorrect length");let{data:t,left:r}=Um(e.subarray(2)),{data:n,left:i}=Um(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${io(i)}`);return{r:t,s:n}}var Ir=class{constructor(t,r){this.r=t,this.s=r,this.assertValidity()}static fromCompact(t){let r=t instanceof Uint8Array,n="Signature.fromCompact";if(typeof t!="string"&&!r)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=r?io(t):t;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new Ir(za(i.slice(0,64)),za(i.slice(64,128)))}static fromDER(t){let r=t instanceof Uint8Array;if(typeof t!="string"&&!r)throw new TypeError("Signature.fromDER: Expected string or Uint8Array");let{r:n,s:i}=q_(r?t:fi(t));return new Ir(n,i)}static fromHex(t){return this.fromDER(t)}assertValidity(){let{r:t,s:r}=this;if(!Jo(t))throw new Error("Invalid Signature: r must be 0 < r < n");if(!Jo(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let t=Kt.n>>Dt;return this.s>t}normalizeS(){return this.hasHighS()?new Ir(this.r,P(-this.s,Kt.n)):this}toDERRawBytes(){return fi(this.toDERHex())}toDERHex(){let t=Mm(Qo(this.s)),r=Mm(Qo(this.r)),n=t.length/2,i=r.length/2,o=Qo(n),s=Qo(i);return`30${Qo(i+n+4)}02${s}${r}02${o}${t}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return fi(this.toCompactHex())}toCompactHex(){return eo(this.r)+eo(this.s)}};function xn(...e){if(!e.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(e.length===1)return e[0];let t=e.reduce((n,i)=>n+i.length,0),r=new Uint8Array(t);for(let n=0,i=0;n<e.length;n++){let o=e[n];r.set(o,i),i+=o.length}return r}var z_=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function io(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");let t="";for(let r=0;r<e.length;r++)t+=z_[e[r]];return t}var $_=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function eo(e){if(typeof e!="bigint")throw new Error("Expected bigint");if(!(it<=e&&e<$_))throw new Error("Expected number 0 <= n < 2^256");return e.toString(16).padStart(64,"0")}function ef(e){let t=fi(eo(e));if(t.length!==32)throw new Error("Error: expected 32 bytes");return t}function Qo(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function za(e){if(typeof e!="string")throw new TypeError("hexToNumber: expected string, got "+typeof e);return BigInt(`0x${e}`)}function fi(e){if(typeof e!="string")throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+e.length);let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){let n=r*2,i=e.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[r]=o}return t}function bn(e){return za(io(e))}function oo(e){return e instanceof Uint8Array?Uint8Array.from(e):fi(e)}function Fm(e){if(typeof e=="number"&&Number.isSafeInteger(e)&&e>0)return BigInt(e);if(typeof e=="bigint"&&Jo(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function P(e,t=Kt.P){let r=e%t;return r>=it?r:t+r}function ze(e,t){let{P:r}=Kt,n=e;for(;t-- >it;)n*=n,n%=r;return n}function H_(e){let{P:t}=Kt,r=BigInt(6),n=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=e*e*e%t,u=c*c*e%t,l=ze(u,Xo)*u%t,f=ze(l,Xo)*u%t,d=ze(f,vn)*c%t,h=ze(d,n)*d%t,p=ze(h,i)*h%t,m=ze(p,s)*p%t,y=ze(m,a)*m%t,g=ze(y,s)*p%t,E=ze(g,Xo)*u%t,_=ze(E,o)*h%t,O=ze(_,r)*c%t,C=ze(O,vn);if(C*C%t!==e)throw new Error("Cannot find square root");return C}function so(e,t=Kt.P){if(e===it||t<=it)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=P(e,t),n=t,i=it,o=Dt,s=Dt,a=it;for(;r!==it;){let u=n/r,l=n%r,f=i-s*u,d=o-a*u;n=r,r=l,i=s,o=a,s=f,a=d}if(n!==Dt)throw new Error("invert: does not exist");return P(i,t)}function G_(e,t=Kt.P){let r=new Array(e.length),n=e.reduce((o,s,a)=>s===it?o:(r[a]=o,P(o*s,t)),Dt),i=so(n,t);return e.reduceRight((o,s,a)=>s===it?o:(r[a]=P(o*r[a],t),P(o*s,t)),i),r}function Y_(e){let t=e.length*8-no*8,r=bn(e);return t>0?r>>BigInt(t):r}function nf(e,t=!1){let r=Y_(e);if(t)return r;let{n}=Kt;return r>=n?r-n:r}var ro,Zo,rf=class{constructor(t,r){if(this.hashLen=t,this.qByteLen=r,typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof r!="number"||r<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(t).fill(1),this.k=new Uint8Array(t).fill(0),this.counter=0}hmac(...t){return ar.hmacSha256(this.k,...t)}hmacSync(...t){return Zo(this.k,...t)}checkSync(){if(typeof Zo!="function")throw new qa("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(t=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),t),this.v=await this.hmac(this.v),t.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),t),this.v=await this.hmac(this.v))}reseedSync(t=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),t),this.v=this.hmacSync(this.v),t.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),t),this.v=this.hmacSync(this.v))}async generate(){this.incr();let t=0,r=[];for(;t<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();r.push(n),t+=this.v.length}return xn(...r)}generateSync(){this.checkSync(),this.incr();let t=0,r=[];for(;t<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();r.push(n),t+=this.v.length}return xn(...r)}};function Jo(e){return it<e&&e<Kt.n}function jl(e){return it<e&&e<Kt.P}function W_(e,t,r,n=!0){let{n:i}=Kt,o=nf(e,!0);if(!Jo(o))return;let s=so(o,i),a=pt.BASE.multiply(o),c=P(a.x,i);if(c===it)return;let u=P(s*P(t+r*c,i),i);if(u===it)return;let l=new Ir(c,u),f=(a.x===l.r?0:2)|Number(a.y&Dt);return n&&l.hasHighS()&&(l=l.normalizeS(),f^=1),{sig:l,recovery:f}}function $a(e){let t;if(typeof e=="bigint")t=e;else if(typeof e=="number"&&Number.isSafeInteger(e)&&e>0)t=BigInt(e);else if(typeof e=="string"){if(e.length!==2*no)throw new Error("Expected 32 bytes of private key");t=za(e)}else if(e instanceof Uint8Array){if(e.length!==no)throw new Error("Expected 32 bytes of private key");t=bn(e)}else throw new TypeError("Expected valid private key");if(!Jo(t))throw new Error("Expected private key: 0 < key < n");return t}function Q_(e){return e instanceof pt?(e.assertValidity(),e):pt.fromHex(e)}function Km(e){if(e instanceof Ir)return e.assertValidity(),e;try{return Ir.fromDER(e)}catch{return Ir.fromCompact(e)}}function of(e,t=!1){return pt.fromPrivateKey(e).toRawBytes(t)}function Vm(e){let t=e.length>sr?e.slice(0,sr):e;return bn(t)}function X_(e){let t=Vm(e),r=P(t,Kt.n);return qm(r<it?t:r)}function qm(e){return ef(e)}function Z_(e,t,r){if(e==null)throw new Error(`sign: expected valid message hash, not "${e}"`);let n=oo(e),i=$a(t),o=[qm(i),X_(n)];if(r!=null){r===!0&&(r=ar.randomBytes(sr));let c=oo(r);if(c.length!==sr)throw new Error(`sign: Expected ${sr} bytes of extra data`);o.push(c)}let s=xn(...o),a=Vm(n);return{seed:s,m:a,d:i}}function J_(e,t){let{sig:r,recovery:n}=e,{der:i,recovered:o}=Object.assign({canonical:!0,der:!0},t),s=i?r.toDERRawBytes():r.toCompactRawBytes();return o?[s,n]:s}async function zm(e,t,r={}){let{seed:n,m:i,d:o}=Z_(e,t,r.extraEntropy),s=new rf(V_,no);await s.reseed(n);let a;for(;!(a=W_(await s.generate(),i,o,r.canonical));)await s.reseed();return J_(a,r)}var j_={strict:!0};function $m(e,t,r,n=j_){let i;try{i=Km(e),t=oo(t)}catch{return!1}let{r:o,s}=i;if(n.strict&&i.hasHighS())return!1;let a=nf(t),c;try{c=Q_(r)}catch{return!1}let{n:u}=Kt,l=so(s,u),f=P(a*l,u),d=P(o*l,u),h=pt.BASE.multiplyAndAddUnsafe(c,f,d);return h?P(h.x,u)===o:!1}pt.BASE._setWindowSize(8);var De={node:K_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var Va={},ar={bytesToHex:io,hexToBytes:fi,concatBytes:xn,mod:P,invert:so,isValidPrivateKey(e){try{return $a(e),!0}catch{return!1}},_bigintTo32Bytes:ef,_normalizePrivateKey:$a,hashToPrivateKey:e=>{e=oo(e);let t=no+8;if(e.length<t||e.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let r=P(bn(e),Kt.n-Dt)+Dt;return ef(r)},randomBytes:(e=32)=>{if(De.web)return De.web.getRandomValues(new Uint8Array(e));if(De.node){let{randomBytes:t}=De.node;return Uint8Array.from(t(e))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>ar.hashToPrivateKey(ar.randomBytes(no+8)),precompute(e=8,t=pt.BASE){let r=t===pt.BASE?t:new pt(t.x,t.y);return r._setWindowSize(e),r.multiply(Xo),r},sha256:async(...e)=>{if(De.web){let t=await De.web.subtle.digest("SHA-256",xn(...e));return new Uint8Array(t)}else if(De.node){let{createHash:t}=De.node,r=t("sha256");return e.forEach(n=>r.update(n)),Uint8Array.from(r.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(e,...t)=>{if(De.web){let r=await De.web.subtle.importKey("raw",e,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=xn(...t),i=await De.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(De.node){let{createHmac:r}=De.node,n=r("sha256",e);return t.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(e,...t)=>{let r=Va[e];if(r===void 0){let n=await ar.sha256(Uint8Array.from(e,i=>i.charCodeAt(0)));r=xn(n,n),Va[e]=r}return ar.sha256(r,...t)},taggedHashSync:(e,...t)=>{if(typeof ro!="function")throw new qa("sha256Sync is undefined, you need to set it");let r=Va[e];if(r===void 0){let n=ro(Uint8Array.from(e,i=>i.charCodeAt(0)));r=xn(n,n),Va[e]=r}return ro(r,...t)},_JacobianPoint:ut};Object.defineProperties(ar,{sha256Sync:{configurable:!1,get(){return ro},set(e){ro||(ro=e)}},hmacSha256Sync:{configurable:!1,get(){return Zo},set(e){Zo||(Zo=e)}}});function Gr(e){if(isNaN(e)||e<=0)throw new z("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return ar.randomBytes(e)}var hi={};pe(hi,{jwkToPkcs1:()=>rS,jwkToPkix:()=>iS,pkcs1ToJwk:()=>eS,pkixToJwk:()=>nS});var RD=T(Ho(),1),ID=T(Oa(),1),Yr=T(gt(),1);function eS(e){let t=Yr.default.asn1.fromDer(Y(e,"ascii")),r=Yr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:or(r.n),e:or(r.e),d:or(r.d),p:or(r.p),q:or(r.q),dp:or(r.dP),dq:or(r.dQ),qi:or(r.qInv),alg:"RS256"}}function rS(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new z("JWK was missing components","ERR_INVALID_PARAMETERS");let t=Yr.default.pki.privateKeyToAsn1({n:Ce(e.n),e:Ce(e.e),d:Ce(e.d),p:Ce(e.p),q:Ce(e.q),dP:Ce(e.dp),dQ:Ce(e.dq),qInv:Ce(e.qi)});return K(Yr.default.asn1.toDer(t).getBytes(),"ascii")}function nS(e){let t=Yr.default.asn1.fromDer(Y(e,"ascii")),r=Yr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:or(r.n),e:or(r.e)}}function iS(e){if(e.n==null||e.e==null)throw new z("JWK was missing components","ERR_INVALID_PARAMETERS");let t=Yr.default.pki.publicKeyToAsn1({n:Ce(e.n),e:Ce(e.e)});return K(Yr.default.asn1.toDer(t).getBytes(),"ascii")}var LD=T(Oa(),1),sf=T(gt(),1);function Hm(e,t){return t.map(r=>Ce(e[r]))}function Gm(e){return sf.default.pki.setRsaPrivateKey(...Hm(e,["n","e","d","p","q","dp","dq","qi"]))}function Ym(e){return sf.default.pki.setRsaPublicKey(...Hm(e,["n","e"]))}async function Wm(e){let t=await Se.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Zm(t);return{privateKey:r[0],publicKey:r[1]}}async function af(e){let r=[await Se.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await oS(e)],n=await Zm({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Qm(e,t){let r=await Se.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Se.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Xm(e,t,r){let n=await Se.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await Se.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function Zm(e){if(e.privateKey==null||e.publicKey==null)throw new z("Private and public key are required","ERR_INVALID_PARAMETERS");return await Promise.all([Se.get().subtle.exportKey("jwk",e.privateKey),Se.get().subtle.exportKey("jwk",e.publicKey)])}async function oS(e){return await Se.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Jm(e,t,r,n){let i=t?Ym(e):Gm(e),o=Y(Uint8Array.from(r),"ascii"),s=n(o,i);return K(s,"ascii")}function jm(e,t){return Jm(e,!0,t,(r,n)=>n.encrypt(r))}function ty(e,t){return Jm(e,!1,t,(r,n)=>n.decrypt(r))}async function ao(e,t){let n=await Ma().encrypt(e,t);return Qn.encode(n)}var ts=class{constructor(t){this._key=t}async verify(t,r){return await Xm(this._key,r,t)}marshal(){return hi.jwkToPkix(this._key)}get bytes(){return Er.encode({Type:Lt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return jm(this._key,t)}equals(t){return bt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await oe.digest(this.bytes);return t}},co=class{constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return Gr(16)}async sign(t){return await Qm(this._key,t)}get public(){if(this._publicKey==null)throw new z("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ts(this._publicKey)}decrypt(t){return ty(this._key,t)}marshal(){return hi.jwkToPkcs1(this._key)}get bytes(){return xr.encode({Type:Lt.RSA,Data:this.marshal()}).subarray()}equals(t){return bt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await oe.digest(this.bytes);return t}async id(){let t=await this.public.hash();return Y(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new jo.default.util.ByteBuffer(this.marshal()),i=jo.default.asn1.fromDer(n),o=jo.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return jo.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return await ao(this.bytes,t);throw new z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function aS(e){let t=hi.pkcs1ToJwk(e),r=await af(t);return new co(r.privateKey,r.publicKey)}function cS(e){let t=hi.pkixToJwk(e);return new ts(t)}async function uS(e){let t=await af(e);return new co(t.privateKey,t.publicKey)}async function lS(e){let t=await Wm(e);return new co(t.privateKey,t.publicKey)}var gf={};pe(gf,{Ed25519PrivateKey:()=>pi,Ed25519PublicKey:()=>os,generateKeyPair:()=>BS,generateKeyPairFromSeed:()=>my,unmarshalEd25519PrivateKey:()=>CS,unmarshalEd25519PublicKey:()=>DS});var fS=T(si(),1);var he=BigInt(0),ot=BigInt(1),An=BigInt(2),hS=BigInt(8),ey=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Bt=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:ey,n:ey,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var sy=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),es=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),QD=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),dS=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),pS=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),mS=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),yS=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),et=class{constructor(t,r,n,i){this.x=t,this.y=r,this.z=n,this.t=i}static fromAffine(t){if(!(t instanceof Nt))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return t.equals(Nt.ZERO)?et.ZERO:new et(t.x,t.y,ot,A(t.x*t.y))}static toAffineBatch(t){let r=ES(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(t){return this.toAffineBatch(t).map(this.fromAffine)}equals(t){ny(t);let{x:r,y:n,z:i}=this,{x:o,y:s,z:a}=t,c=A(r*a),u=A(o*i),l=A(n*a),f=A(s*i);return c===u&&l===f}negate(){return new et(A(-this.x),this.y,this.z,A(-this.t))}double(){let{x:t,y:r,z:n}=this,{a:i}=Bt,o=A(t*t),s=A(r*r),a=A(An*A(n*n)),c=A(i*o),u=t+r,l=A(A(u*u)-o-s),f=c+s,d=f-a,h=c-s,p=A(l*d),m=A(f*h),y=A(l*h),g=A(d*f);return new et(p,m,g,y)}add(t){ny(t);let{x:r,y:n,z:i,t:o}=this,{x:s,y:a,z:c,t:u}=t,l=A((n-r)*(a+s)),f=A((n+r)*(a-s)),d=A(f-l);if(d===he)return this.double();let h=A(i*An*u),p=A(o*An*c),m=p+h,y=f+l,g=p-h,E=A(m*d),_=A(y*g),O=A(m*g),C=A(d*y);return new et(E,_,C,O)}subtract(t){return this.add(t.negate())}precomputeWindow(t){let r=1+256/t,n=[],i=this,o=i;for(let s=0;s<r;s++){o=i,n.push(o);for(let a=1;a<2**(t-1);a++)o=o.add(i),n.push(o);i=o.double()}return n}wNAF(t,r){!r&&this.equals(et.BASE)&&(r=Nt.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&df.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=et.normalizeZ(i),df.set(r,i)));let o=et.ZERO,s=et.BASE,a=1+256/n,c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(t&u);t>>=f,p>c&&(p-=l,t+=ot);let m=h,y=h+Math.abs(p)-1,g=d%2!==0,E=p<0;p===0?s=s.add(ry(g,i[m])):o=o.add(ry(E,i[y]))}return et.normalizeZ([o,s])[0]}multiply(t,r){return this.wNAF(Ga(t,Bt.l),r)}multiplyUnsafe(t){let r=Ga(t,Bt.l,!1),n=et.BASE,i=et.ZERO;if(r===he)return i;if(this.equals(i)||r===ot)return this;if(this.equals(n))return this.wNAF(r);let o=i,s=this;for(;r>he;)r&ot&&(o=o.add(s)),s=s.double(),r>>=ot;return o}isSmallOrder(){return this.multiplyUnsafe(Bt.h).equals(et.ZERO)}isTorsionFree(){let t=this.multiplyUnsafe(Bt.l/An).double();return Bt.l%An&&(t=t.add(this)),t.equals(et.ZERO)}toAffine(t){let{x:r,y:n,z:i}=this,o=this.equals(et.ZERO);t==null&&(t=o?hS:Ya(i));let s=A(r*t),a=A(n*t),c=A(i*t);if(o)return Nt.ZERO;if(c!==ot)throw new Error("invZ was invalid");return new Nt(s,a)}fromRistrettoBytes(){lf()}toRistrettoBytes(){lf()}fromRistrettoHash(){lf()}};et.BASE=new et(Bt.Gx,Bt.Gy,ot,A(Bt.Gx*Bt.Gy));et.ZERO=new et(he,ot,ot,he);function ry(e,t){let r=t.negate();return e?r:t}function ny(e){if(!(e instanceof et))throw new TypeError("ExtendedPoint expected")}function uf(e){if(!(e instanceof Ae))throw new TypeError("RistrettoPoint expected")}function lf(){throw new Error("Legacy method: switch to RistrettoPoint")}var Ae=class{constructor(t){this.ep=t}static calcElligatorRistrettoMap(t){let{d:r}=Bt,n=A(es*t*t),i=A((n+ot)*mS),o=BigInt(-1),s=A((o-r*n)*A(n+r)),{isValid:a,value:c}=mf(i,s),u=A(c*t);Sn(u)||(u=A(-u)),a||(c=u),a||(o=n);let l=A(o*(n-ot)*yS-s),f=c*c,d=A((c+c)*s),h=A(l*dS),p=A(ot-f),m=A(ot+f);return new et(A(d*m),A(p*h),A(h*m),A(d*p))}static hashToCurve(t){t=Rn(t,64);let r=ff(t.slice(0,32)),n=this.calcElligatorRistrettoMap(r),i=ff(t.slice(32,64)),o=this.calcElligatorRistrettoMap(i);return new Ae(n.add(o))}static fromHex(t){t=Rn(t,32);let{a:r,d:n}=Bt,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",o=ff(t);if(!vS(rs(o),t)||Sn(o))throw new Error(i);let s=A(o*o),a=A(ot+r*s),c=A(ot-r*s),u=A(a*a),l=A(c*c),f=A(r*n*u-l),{isValid:d,value:h}=oy(A(f*l)),p=A(h*c),m=A(h*p*f),y=A((o+o)*p);Sn(y)&&(y=A(-y));let g=A(a*m),E=A(y*g);if(!d||Sn(E)||g===he)throw new Error(i);return new Ae(new et(y,g,ot,E))}toRawBytes(){let{x:t,y:r,z:n,t:i}=this.ep,o=A(A(n+r)*A(n-r)),s=A(t*r),a=A(s*s),{value:c}=oy(A(o*a)),u=A(c*o),l=A(c*s),f=A(u*l*i),d;if(Sn(i*f)){let p=A(r*es),m=A(t*es);t=p,r=m,d=A(u*pS)}else d=l;Sn(t*f)&&(r=A(-r));let h=A((n-r)*d);return Sn(h)&&(h=A(-h)),rs(h)}toHex(){return ns(this.toRawBytes())}toString(){return this.toHex()}equals(t){uf(t);let r=this.ep,n=t.ep,i=A(r.x*n.y)===A(r.y*n.x),o=A(r.y*n.y)===A(r.x*n.x);return i||o}add(t){return uf(t),new Ae(this.ep.add(t.ep))}subtract(t){return uf(t),new Ae(this.ep.subtract(t.ep))}multiply(t){return new Ae(this.ep.multiply(t))}multiplyUnsafe(t){return new Ae(this.ep.multiplyUnsafe(t))}};Ae.BASE=new Ae(et.BASE);Ae.ZERO=new Ae(et.ZERO);var df=new WeakMap,Nt=class{constructor(t,r){this.x=t,this.y=r}_setWindowSize(t){this._WINDOW_SIZE=t,df.delete(this)}static fromHex(t,r=!0){let{d:n,P:i}=Bt;t=Rn(t,32);let o=t.slice();o[31]=t[31]&-129;let s=is(o);if(r&&s>=i)throw new Error("Expected 0 < hex < P");if(!r&&s>=sy)throw new Error("Expected 0 < hex < 2**256");let a=A(s*s),c=A(a-ot),u=A(n*a+ot),{isValid:l,value:f}=mf(c,u);if(!l)throw new Error("Point.fromHex: invalid y coordinate");let d=(f&ot)===ot;return(t[31]&128)!==0!==d&&(f=A(-f)),new Nt(f,s)}static async fromPrivateKey(t){return(await Wa(t)).point}toRawBytes(){let t=rs(this.y);return t[31]|=this.x&ot?128:0,t}toHex(){return ns(this.toRawBytes())}toX25519(){let{y:t}=this,r=A((ot+t)*Ya(ot-t));return rs(r)}isTorsionFree(){return et.fromAffine(this).isTorsionFree()}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new Nt(A(-this.x),this.y)}add(t){return et.fromAffine(this).add(et.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return et.fromAffine(this).multiply(t,this).toAffine()}};Nt.BASE=new Nt(Bt.Gx,Bt.Gy);Nt.ZERO=new Nt(he,ot);var di=class{constructor(t,r){this.r=t,this.s=r,this.assertValidity()}static fromHex(t){let r=Rn(t,64),n=Nt.fromHex(r.slice(0,32),!1),i=is(r.slice(32,64));return new di(n,i)}assertValidity(){let{r:t,s:r}=this;if(!(t instanceof Nt))throw new Error("Expected Point instance");return Ga(r,Bt.l,!1),this}toRawBytes(){let t=new Uint8Array(64);return t.set(this.r.toRawBytes()),t.set(rs(this.s),32),t}toHex(){return ns(this.toRawBytes())}};function iy(...e){if(!e.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(e.length===1)return e[0];let t=e.reduce((n,i)=>n+i.length,0),r=new Uint8Array(t);for(let n=0,i=0;n<e.length;n++){let o=e[n];r.set(o,i),i+=o.length}return r}var gS=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ns(e){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=gS[e[r]];return t}function pf(e){if(typeof e!="string")throw new TypeError("hexToBytes: expected string, got "+typeof e);if(e.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let t=new Uint8Array(e.length/2);for(let r=0;r<t.length;r++){let n=r*2,i=e.slice(n,n+2),o=Number.parseInt(i,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[r]=o}return t}function ay(e){let r=e.toString(16).padStart(64,"0");return pf(r)}function rs(e){return ay(e).reverse()}function Sn(e){return(A(e)&ot)===ot}function is(e){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+ns(Uint8Array.from(e).reverse()))}var wS=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function ff(e){return A(is(e)&wS)}function A(e,t=Bt.P){let r=e%t;return r>=he?r:t+r}function Ya(e,t=Bt.P){if(e===he||t<=he)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=A(e,t),n=t,i=he,o=ot,s=ot,a=he;for(;r!==he;){let u=n/r,l=n%r,f=i-s*u,d=o-a*u;n=r,r=l,i=s,o=a,s=f,a=d}if(n!==ot)throw new Error("invert: does not exist");return A(i,t)}function ES(e,t=Bt.P){let r=new Array(e.length),n=e.reduce((o,s,a)=>s===he?o:(r[a]=o,A(o*s,t)),ot),i=Ya(n,t);return e.reduceRight((o,s,a)=>s===he?o:(r[a]=A(o*r[a],t),A(o*s,t)),i),r}function Tr(e,t){let{P:r}=Bt,n=e;for(;t-- >he;)n*=n,n%=r;return n}function xS(e){let{P:t}=Bt,r=BigInt(5),n=BigInt(10),i=BigInt(20),o=BigInt(40),s=BigInt(80),c=e*e%t*e%t,u=Tr(c,An)*c%t,l=Tr(u,ot)*e%t,f=Tr(l,r)*l%t,d=Tr(f,n)*f%t,h=Tr(d,i)*d%t,p=Tr(h,o)*h%t,m=Tr(p,s)*p%t,y=Tr(m,s)*p%t,g=Tr(y,n)*f%t;return{pow_p_5_8:Tr(g,An)*e%t,b2:c}}function mf(e,t){let r=A(t*t*t),n=A(r*r*t),i=xS(e*n).pow_p_5_8,o=A(e*r*i),s=A(t*o*o),a=o,c=A(o*es),u=s===e,l=s===A(-e),f=s===A(-e*es);return u&&(o=a),(l||f)&&(o=c),Sn(o)&&(o=A(-o)),{isValid:u||l,value:o}}function oy(e){return mf(ot,e)}function Ha(e){return A(is(e),Bt.l)}function vS(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Rn(e,t){let r=e instanceof Uint8Array?Uint8Array.from(e):pf(e);if(typeof t=="number"&&r.length!==t)throw new Error(`Expected ${t} bytes`);return r}function Ga(e,t,r=!0){if(!t)throw new TypeError("Specify max value");if(typeof e=="number"&&Number.isSafeInteger(e)&&(e=BigInt(e)),typeof e=="bigint"&&e<t){if(r){if(he<e)return e}else if(he<=e)return e}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function bS(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function _S(e){if(e=typeof e=="bigint"||typeof e=="number"?ay(Ga(e,sy)):Rn(e),e.length!==32)throw new Error("Expected 32 bytes");return e}function SS(e){let t=bS(e.slice(0,32)),r=e.slice(32,64),n=Ha(t),i=Nt.BASE.multiply(n),o=i.toRawBytes();return{head:t,prefix:r,scalar:n,point:i,pointBytes:o}}var hf;async function Wa(e){return SS(await In.sha512(_S(e)))}async function yf(e){return(await Wa(e)).pointBytes}async function cy(e,t){e=Rn(e);let{prefix:r,scalar:n,pointBytes:i}=await Wa(t),o=Ha(await In.sha512(r,e)),s=Nt.BASE.multiply(o),a=Ha(await In.sha512(s.toRawBytes(),i,e)),c=A(o+a*n,Bt.l);return new di(s,c).toRawBytes()}function AS(e,t,r){t=Rn(t),r instanceof Nt||(r=Nt.fromHex(r,!1));let{r:n,s:i}=e instanceof di?e.assertValidity():di.fromHex(e),o=et.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:o,pub:r,msg:t}}function RS(e,t,r,n){let i=Ha(n),o=et.fromAffine(e).multiplyUnsafe(i);return et.fromAffine(t).add(o).subtract(r).multiplyUnsafe(Bt.h).equals(et.ZERO)}async function uy(e,t,r){let{r:n,SB:i,msg:o,pub:s}=AS(e,t,r),a=await In.sha512(n.toRawBytes(),s.toRawBytes(),o);return RS(s,n,i,a)}Nt.BASE._setWindowSize(8);var _n={node:fS,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},In={bytesToHex:ns,hexToBytes:pf,concatBytes:iy,getExtendedPublicKey:Wa,mod:A,invert:Ya,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:e=>{if(e=Rn(e),e.length<40||e.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return A(is(e),Bt.l-ot)+ot},randomBytes:(e=32)=>{if(_n.web)return _n.web.getRandomValues(new Uint8Array(e));if(_n.node){let{randomBytes:t}=_n.node;return new Uint8Array(t(e).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>In.randomBytes(32),sha512:async(...e)=>{let t=iy(...e);if(_n.web){let r=await _n.web.subtle.digest("SHA-512",t.buffer);return new Uint8Array(r)}else{if(_n.node)return Uint8Array.from(_n.node.createHash("sha512").update(t).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(e=8,t=Nt.BASE){let r=t.equals(Nt.BASE)?t:new Nt(t.x,t.y);return r._setWindowSize(e),r.multiply(An),r},sha512Sync:void 0};Object.defineProperties(In,{sha512Sync:{configurable:!1,get(){return hf},set(e){hf||(hf=e)}}});var uo=32,Wr=64,Qa=32;async function ly(){let e=In.randomPrivateKey(),t=await yf(e);return{privateKey:py(e,t),publicKey:t}}async function fy(e){if(e.length!==Qa)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=await yf(t);return{privateKey:py(t,r),publicKey:r}}async function hy(e,t){let r=e.subarray(0,Qa);return await cy(t,r)}async function dy(e,t,r){return await uy(t,r,e)}function py(e,t){let r=new Uint8Array(Wr);for(let n=0;n<Qa;n++)r[n]=e[n],r[Qa+n]=t[n];return r}var os=class{constructor(t){this._key=lo(t,uo)}async verify(t,r){return await dy(this._key,r,t)}marshal(){return this._key}get bytes(){return Er.encode({Type:Lt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return bt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await oe.digest(this.bytes);return t}},pi=class{constructor(t,r){this._key=lo(t,Wr),this._publicKey=lo(r,uo)}async sign(t){return await hy(this._key,t)}get public(){return new os(this._publicKey)}marshal(){return this._key}get bytes(){return xr.encode({Type:Lt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return bt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await oe.digest(this.bytes);return t}async id(){let t=await hn.digest(this.public.bytes);return zt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return await ao(this.bytes,t);throw new z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function CS(e){if(e.length>Wr){e=lo(e,Wr+uo);let n=e.subarray(0,Wr),i=e.subarray(Wr,e.length);return new pi(n,i)}e=lo(e,Wr);let t=e.subarray(0,Wr),r=e.subarray(uo);return new pi(t,r)}function DS(e){return e=lo(e,uo),new os(e)}async function BS(){let{privateKey:e,publicKey:t}=await ly();return new pi(e,t)}async function my(e){let{privateKey:t,publicKey:r}=await fy(e);return new pi(t,r)}function lo(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new z(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var Ef={};pe(Ef,{Secp256k1PrivateKey:()=>as,Secp256k1PublicKey:()=>ss,generateKeyPair:()=>kS,unmarshalSecp256k1PrivateKey:()=>PS,unmarshalSecp256k1PublicKey:()=>NS});function yy(){return ar.randomPrivateKey()}async function gy(e,t){let{digest:r}=await oe.digest(t);try{return await zm(r,e)}catch(n){throw new z(String(n),"ERR_INVALID_INPUT")}}async function wy(e,t,r){try{let{digest:n}=await oe.digest(r);return $m(t,n,e)}catch(n){throw new z(String(n),"ERR_INVALID_INPUT")}}function Ey(e){return pt.fromHex(e).toRawBytes(!0)}function xy(e){try{of(e,!0)}catch(t){throw new z(String(t),"ERR_INVALID_PRIVATE_KEY")}}function wf(e){try{pt.fromHex(e)}catch(t){throw new z(String(t),"ERR_INVALID_PUBLIC_KEY")}}function vy(e){try{return of(e,!0)}catch(t){throw new z(String(t),"ERR_INVALID_PRIVATE_KEY")}}var ss=class{constructor(t){wf(t),this._key=t}async verify(t,r){return await wy(this._key,r,t)}marshal(){return Ey(this._key)}get bytes(){return Er.encode({Type:Lt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return bt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await oe.digest(this.bytes);return t}},as=class{constructor(t,r){this._key=t,this._publicKey=r??vy(t),xy(this._key),wf(this._publicKey)}async sign(t){return await gy(this._key,t)}get public(){return new ss(this._publicKey)}marshal(){return this._key}get bytes(){return xr.encode({Type:Lt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return bt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await oe.digest(this.bytes);return t}async id(){let t=await this.public.hash();return Y(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return await ao(this.bytes,t);throw new z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function PS(e){return new as(e)}function NS(e){return new ss(e)}async function kS(){let e=await yy();return new as(e)}var Qr={rsa:cf,ed25519:gf,secp256k1:Ef};function xf(e){let t=Object.keys(Qr).join(" / ");return new z(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function vf(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return Qr[e];throw xf(e)}async function Za(e,t){return await vf(e).generateKeyPair(t??2048)}function cs(e){let t=Er.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Lt.RSA:return Qr.rsa.unmarshalRsaPublicKey(r);case Lt.Ed25519:return Qr.ed25519.unmarshalEd25519PublicKey(r);case Lt.Secp256k1:return Qr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw xf(t.Type??"RSA")}}function by(e,t){return t=(t??"rsa").toLowerCase(),vf(t),e.bytes}async function fo(e){let t=xr.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Lt.RSA:return await Qr.rsa.unmarshalRsaPrivateKey(r);case Lt.Ed25519:return Qr.ed25519.unmarshalEd25519PrivateKey(r);case Lt.Secp256k1:return Qr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw xf(t.Type??"RSA")}}function _y(e,t){return t=(t??"rsa").toLowerCase(),vf(t),e.bytes}async function us(e,t){try{let i=await Am(e,t);return await fo(i)}catch{}let r=Xa.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new z("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=Xa.default.asn1.toDer(Xa.default.pki.privateKeyToAsn1(r));return n=K(n.getBytes(),"ascii"),await Qr.rsa.unmarshalRsaPrivateKey(n)}var Sy={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var ls;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.publicKey!=null&&r.publicKey.byteLength>0)&&(n.uint32(10),n.bytes(r.publicKey)),(i.writeDefaults===!0||r.payloadType!=null&&r.payloadType.byteLength>0)&&(n.uint32(18),n.bytes(r.payloadType)),(i.writeDefaults===!0||r.payload!=null&&r.payload.byteLength>0)&&(n.uint32(26),n.bytes(r.payload)),(i.writeDefaults===!0||r.signature!=null&&r.signature.byteLength>0)&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(ls||(ls={}));var bf=Symbol.for("@libp2p/peer-id");function mi(e){return e!=null&&Boolean(e[bf])}var MS=Symbol.for("nodejs.util.inspect.custom"),Ay=Object.values(dn).map(e=>e.decoder).reduce((e,t)=>e.or(t),dn.identity.decoder),Ry=114,_f=36,Sf=37,fs=class{constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}get[bf](){return!0}toString(){return this.string==null&&(this.string=zt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return yt.createV1(Ry,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return bt(this.multihash.bytes,t);if(typeof t=="string")return tt(t).equals(this);if(t?.multihash?.bytes!=null)return bt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[MS](){return`PeerId(${this.toString()})`}},yi=class extends fs{constructor(t){super({...t,type:"RSA"}),this.type="RSA",this.publicKey=t.publicKey}},gi=class extends fs{constructor(t){super({...t,type:"Ed25519"}),this.type="Ed25519",this.publicKey=t.multihash.digest}},wi=class extends fs{constructor(t){super({...t,type:"secp256k1"}),this.type="secp256k1",this.publicKey=t.multihash.digest}};function Yt(e){if(e.type==="RSA")return new yi(e);if(e.type==="Ed25519")return new gi(e);if(e.type==="secp256k1")return new wi(e);throw new z("Not a PeerId","ERR_INVALID_PARAMETERS")}function tt(e,t){if(t=t??Ay,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Xn(zt.decode(`z${e}`));return e.startsWith("12D")?new gi({multihash:r}):e.startsWith("16U")?new wi({multihash:r}):new yi({multihash:r})}return Tn(Ay.decode(e))}function Tn(e){try{let t=Xn(e);if(t.code===hn.code){if(t.digest.length===_f)return new gi({multihash:t});if(t.digest.length===Sf)return new wi({multihash:t})}if(t.code===oe.code)return new yi({multihash:t})}catch{return US(yt.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function US(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Ry)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===oe.code)return new yi({multihash:e.multihash});if(t.code===hn.code){if(t.digest.length===_f)return new gi({multihash:e.multihash});if(t.digest.length===Sf)return new wi({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Cn(e,t){return e.length===_f?new gi({multihash:yr(hn.code,e),privateKey:t}):e.length===Sf?new wi({multihash:yr(hn.code,e),privateKey:t}):new yi({multihash:await oe.digest(e),publicKey:e,privateKey:t})}var Ty=Symbol.for("@achingbrain/uint8arraylist");function Iy(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function Ja(e){return Boolean(e?.[Ty])}var Vt=class{constructor(...t){Object.defineProperty(this,Ty,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Ja(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Ja(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=Iy(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Iy(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(Ja(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return Gt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:Gt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new Vt;return o.length=i,o.bufs=n,o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,l=r>a&&r<=c;if(u&&l){if(t===a&&r===c){n.push(s);break}let f=t-a;n.push(s.subarray(f,f+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(l){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!Ja(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let f=0;f<o;f++)s[f]=-1;for(let f=0;f<i;f++)s[n[f]]=f;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){l=Math.max(1,d-a[h]);break}}if(l===0)return f}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=Vr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Kr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=Kr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=Kr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=Vr(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Kr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=Kr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=Kr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=Kr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=Kr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof Vt)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!bt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new Vt;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};function ja(e){return e instanceof Uint8Array?{get(t){return e[t]},set(t,r){e[t]=r}}:{get(t){return e.get(t)},set(t,r){e.set(t,r)}}}var Cy=4294967296,Be=class{constructor(t=0,r=0){this.hi=t,this.lo=r}toBigInt(t){if(t===!0)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toNumber(t){return Number(this.toBigInt(t))}zzDecode(){let t=-(this.lo&1),r=((this.lo>>>1|this.hi<<31)^t)>>>0,n=(this.hi>>>1^t)>>>0;return new Be(n,r)}zzEncode(){let t=this.hi>>31,r=((this.hi<<1|this.lo>>>31)^t)>>>0,n=(this.lo<<1^t)>>>0;return new Be(r,n)}toBytes(t,r=0){let n=ja(t);for(;this.hi>0;)n.set(r++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(r++,this.lo&127|128),this.lo=this.lo>>>7;n.set(r++,this.lo)}static fromBigInt(t){if(t===0n)return new Be;let r=t<0;r&&(t=-t);let n=Number(t>>32n)|0,i=Number(t-(BigInt(n)<<32n))|0;return r&&(n=~n>>>0,i=~i>>>0,++i>Cy&&(i=0,++n>Cy&&(n=0))),new Be(n,i)}static fromNumber(t){if(t===0)return new Be;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Be(i,n)}static fromBytes(t,r=0){let n=ja(t),i=new Be,o=0;if(t.length-r>4){for(;o<4;++o)if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i;if(i.lo=(i.lo|(n.get(r)&127)<<28)>>>0,i.hi=(i.hi|(n.get(r)&127)>>4)>>>0,n.get(r++)<128)return i;o=0}else for(;o<4;++o){if(r>=t.length)throw RangeError(`index out of range: ${r} > ${t.length}`);if(i.lo=(i.lo|(n.get(r)&127)<<o*7)>>>0,n.get(r++)<128)return i}if(t.length-r>4){for(;o<5;++o)if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}else if(r<t.byteLength)for(;o<5;++o){if(r>=t.length)throw RangeError(`index out of range: ${r} > ${t.length}`);if(i.hi=(i.hi|(n.get(r)&127)<<o*7+3)>>>0,n.get(r++)<128)return i}throw RangeError("invalid varint encoding")}};var FS=Math.pow(2,7),KS=Math.pow(2,14),VS=Math.pow(2,21),qS=Math.pow(2,28),zS=Math.pow(2,35),$S=Math.pow(2,42),HS=Math.pow(2,49),GS=Math.pow(2,56),YS=Math.pow(2,63),cr={encodingLength(e){return e<FS?1:e<KS?2:e<VS?3:e<qS?4:e<zS?5:e<$S?6:e<HS?7:e<GS?8:e<YS?9:10},encode(e,t,r=0){if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return t==null&&(t=Vr(cr.encodingLength(e))),Be.fromNumber(e).toBytes(t,r),t},decode(e,t=0){return Be.fromBytes(e,t).toNumber(!0)}};var WS,Wt=class{constructor(t){let{peerId:r,payloadType:n,payload:i,signature:o}=t;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=o}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=ls.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return bt(this.marshal(),t.marshal())}async validate(t){let r=By(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await cs(this.peerId.publicKey).verify(r.subarray(),this.signature)}};WS=Wt;Wt.createFromProtobuf=async e=>{let t=ls.decode(e),r=await Cn(t.publicKey);return new Wt({peerId:r,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};Wt.seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let r=e.domain,n=e.codec,i=e.marshal(),o=By(r,n,i),a=await(await fo(t.privateKey)).sign(o.subarray());return new Wt({peerId:t,payloadType:n,payload:i,signature:a})};Wt.openAndCertify=async(e,t)=>{let r=await Wt.createFromProtobuf(e);if(!await r.validate(t))throw(0,Dy.default)(new Error("envelope signature is not valid for the given domain"),Sy.ERR_SIGNATURE_NOT_VALID);return r};var By=(e,t,r)=>{let n=K(e),i=cr.encode(n.byteLength),o=cr.encode(t.length),s=cr.encode(r.length);return new Vt(i,n,o,t,s,r)};var Ly=c0,QS=u0,Af=function(e){let t=0;if(e=e.toString().trim(),Ly(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(QS(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Ly(r[n]),s;o&&(s=Af(r[n]),r[n]=Y(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,Y(s.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},Py=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var hs={},Rf={},ZS=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];ZS.forEach(e=>{let t=JS(...e);Rf[t.code]=t,hs[t.name]=t});function JS(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:Boolean(n),path:Boolean(i)}}function wt(e){if(typeof e=="number"){if(Rf[e]!=null)return Rf[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(hs[e]!=null)return hs[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var Cr=T(tc(),1);function Yy(e,t){switch(wt(e).code){case 4:case 41:return dA(t);case 42:return Hy(t);case 6:case 273:case 33:case 132:return Qy(t).toString();case 53:case 54:case 55:case 56:case 400:case 777:return Hy(t);case 421:return gA(t);case 444:return Gy(t);case 445:return Gy(t);case 466:return yA(t);default:return Y(t,"base16")}}function Wy(e,t){switch(wt(e).code){case 4:return zy(t);case 41:return zy(t);case 42:return $y(t);case 6:case 273:case 33:case 132:return Df(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 777:return $y(t);case 421:return pA(t);case 444:return wA(t);case 445:return EA(t);case 466:return mA(t);default:return K(t,"base16")}}var Cf=Object.values(dn).map(e=>e.decoder),hA=function(){let e=Cf[0].or(Cf[1]);return Cf.slice(2).forEach(t=>e=e.or(t)),e}();function zy(e){if(!Yi(e))throw new Error("invalid ip address");return Af(e)}function dA(e){let t=Py(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!Yi(t))throw new Error("invalid ip address");return t}function Df(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function Qy(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function $y(e){let t=K(e),r=Uint8Array.from(Cr.default.encode(t.length));return Gt([r,t],r.length+t.length)}function Hy(e){let t=Cr.default.decode(e);if(e=e.slice(Cr.default.decode.bytes),e.length!==t)throw new Error("inconsistent lengths");return Y(e)}function pA(e){let t;e[0]==="Q"||e[0]==="1"?t=Xn(zt.decode(`z${e}`)).bytes:t=yt.parse(e).multihash.bytes;let r=Uint8Array.from(Cr.default.encode(t.length));return Gt([r,t],r.length+t.length)}function mA(e){let t=hA.decode(e),r=Uint8Array.from(Cr.default.encode(t.length));return Gt([r,t],r.length+t.length)}function yA(e){let t=Cr.default.decode(e),r=e.slice(Cr.default.decode.bytes);if(r.length!==t)throw new Error("inconsistent lengths");return"u"+Y(r,"base64url")}function gA(e){let t=Cr.default.decode(e),r=e.slice(Cr.default.decode.bytes);if(r.length!==t)throw new Error("inconsistent lengths");return Y(r,"base58btc")}function wA(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=Te.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Df(n);return Gt([r,i],r.length+i.length)}function EA(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=Te.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Df(n);return Gt([r,i],r.length+i.length)}function Gy(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=Y(t,"base32"),i=Qy(r);return`${n}:${i}`}var ho=T(tc(),1);function xA(e){let t=[],r=e.split("/").slice(1);if(r.length===1&&r[0]==="")return[];for(let n=0;n<r.length;n++){let i=r[n],o=wt(i);if(o.size===0){t.push([i]);continue}if(n++,n>=r.length)throw Zy("invalid address: "+e);if(o.path===!0){t.push([i,kf(r.slice(n).join("/"))]);break}t.push([i,r[n]])}return t}function vA(e){let t=[];return e.map(r=>{let n=nc(r);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),kf(t.join("/"))}function bA(e){return e.map(t=>{Array.isArray(t)||(t=[t]);let r=nc(t);return t.length>1?[r.code,Wy(r.code,t[1])]:[r.code]})}function Bf(e){return e.map(t=>{let r=nc(t);return t[1]!=null?[r.code,Yy(r.code,t[1])]:[r.code]})}function Lf(e){return rc(Gt(e.map(t=>{let r=nc(t),n=Uint8Array.from(ho.default.encode(r.code));return t.length>1&&t[1]!=null&&(n=Gt([n,t[1]])),n})))}function Pf(e,t){return e.size>0?e.size/8:e.size===0?0:ho.default.decode(t)+(ho.default.decode.bytes??0)}function ec(e){let t=[],r=0;for(;r<e.length;){let n=ho.default.decode(e,r),i=ho.default.decode.bytes??0,o=wt(n),s=Pf(o,e.slice(r+i));if(s===0){t.push([n]),r+=i;continue}let a=e.slice(r+i,r+i+s);if(r+=s+i,r>e.length)throw Zy("Invalid address Uint8Array: "+Y(e,"base16"));t.push([n,a])}return t}function Nf(e){let t=ec(e),r=Bf(t);return vA(r)}function _A(e){e=kf(e);let t=xA(e),r=bA(t);return Lf(r)}function Xy(e){return _A(e)}function rc(e){let t=SA(e);if(t!=null)throw t;return Uint8Array.from(e)}function SA(e){try{ec(e)}catch(t){return t}}function kf(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function Zy(e){return new Error("Error parsing address: "+e)}function nc(e){return wt(e[0])}var Mf=T(tc(),1);var jy=T(dt(),1);var po=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Of=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},ds,ps,ms,Jy,RA=Symbol.for("nodejs.util.inspect.custom"),IA=[wt("dns").code,wt("dns4").code,wt("dns6").code,wt("dnsaddr").code],Uf=new Map,tg=Symbol.for("@multiformats/js-multiaddr/multiaddr");function eg(e,t){if(e==null)throw new Error("requires node address object");if(t==null)throw new Error("requires transport protocol");let r,n=e.address;switch(e.family){case 4:r="ip4";break;case 6:if(r="ip6",n.includes("%")){let i=n.split("%");if(i.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=i[0],r=`/ip6zone/${i[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new Dr("/"+[r,n,t,e.port].join("/"))}function Le(e){return Boolean(e?.[tg])}var Dr=class{constructor(t){if(ds.set(this,void 0),ps.set(this,void 0),ms.set(this,void 0),this[Jy]=!0,t==null&&(t=""),t instanceof Uint8Array)this.bytes=rc(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);this.bytes=Xy(t)}else if(Le(t))this.bytes=rc(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return po(this,ds,"f")==null&&Of(this,ds,Nf(this.bytes),"f"),po(this,ds,"f")}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=wt("tcp"),a=wt("udp"),c=wt("ip4"),u=wt("ip6"),l=wt("dns6"),f=wt("ip6zone");for(let[h,p]of this.stringTuples())h===f.code&&(o=`%${p??""}`),IA.includes(h)&&(r=s.name,i=443,n=`${p??""}${o}`,t=h===l.code?6:4),(h===s.code||h===a.code)&&(r=wt(h).name,i=parseInt(p??"")),(h===c.code||h===u.code)&&(r=wt(h).name,n=`${p??""}${o}`,t=h===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.protoCodes().map(t=>Object.assign({},wt(t)))}protoCodes(){let t=[],r=this.bytes,n=0;for(;n<r.length;){let i=Mf.default.decode(r,n),o=Mf.default.decode.bytes??0,s=wt(i),a=Pf(s,r.slice(n+o));n+=a+o,t.push(i)}return t}protoNames(){return this.protos().map(t=>t.name)}tuples(){return po(this,ps,"f")==null&&Of(this,ps,ec(this.bytes),"f"),po(this,ps,"f")}stringTuples(){return po(this,ms,"f")==null&&Of(this,ms,Bf(this.tuples()),"f"),po(this,ms,"f")}encapsulate(t){return t=new Dr(t),new Dr(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new Dr(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new Dr(Lf(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===hs.ipfs.code).pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?Y(zt.decode(`z${n}`),"base58btc"):Y(yt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let t=null;try{t=this.stringTuples().filter(r=>wt(r[0]).path===!0)[0][1],t==null&&(t=null)}catch{t=null}return t}equals(t){return bt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Uf.get(r.name);if(n==null)throw(0,jy.default)(new Error(`no available resolver for ${r.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new Dr(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[(ds=new WeakMap,ps=new WeakMap,ms=new WeakMap,Jy=tg,RA)](){return`Multiaddr(${Nf(this.bytes)})`}};function Z(e){return new Dr(e)}function rg(e,t){let r=(n,i)=>n.toString().localeCompare(i.toString());return e.length!==t.length?!1:(t.sort(r),e.sort(r).every((n,i)=>t[i].equals(n)))}var ys;(function(e){let t;(function(n){let i;n.codec=()=>(i==null&&(i=Mt((o,s,a={})=>{a.lengthDelimited!==!1&&s.fork(),(a.writeDefaults===!0||o.multiaddr!=null&&o.multiaddr.byteLength>0)&&(s.uint32(10),s.bytes(o.multiaddr)),a.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let a={multiaddr:new Uint8Array(0)},c=s==null?o.len:o.pos+s;for(;o.pos<c;){let u=o.uint32();switch(u>>>3){case 1:a.multiaddr=o.bytes();break;default:o.skipType(u&7);break}}return a})),i),n.encode=o=>Ot(o,n.codec()),n.decode=o=>kt(o,n.codec())})(t=e.AddressInfo||(e.AddressInfo={}));let r;e.codec=()=>(r==null&&(r=Mt((n,i,o={})=>{if(o.lengthDelimited!==!1&&i.fork(),(o.writeDefaults===!0||n.peerId!=null&&n.peerId.byteLength>0)&&(i.uint32(10),i.bytes(n.peerId)),(o.writeDefaults===!0||n.seq!==0n)&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let s of n.addresses)i.uint32(26),e.AddressInfo.codec().encode(s,i,{writeDefaults:!0});o.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let o={peerId:new Uint8Array(0),seq:0n,addresses:[]},s=i==null?n.len:n.pos+i;for(;n.pos<s;){let a=n.uint32();switch(a>>>3){case 1:o.peerId=n.bytes();break;case 2:o.seq=n.uint64();break;case 3:o.addresses.push(e.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return o})),r),e.encode=n=>Ot(n,e.codec()),e.decode=n=>kt(n,e.codec())})(ys||(ys={}));var ng="libp2p-peer-record",ig=Uint8Array.from([3,1]);var te=class{constructor(t){this.domain=te.DOMAIN,this.codec=te.CODEC;let{peerId:r,multiaddrs:n,seqNumber:i}=t;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ys.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof te)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!rg(this.multiaddrs,t.multiaddrs))}};te.createFromProtobuf=e=>{let t=ys.decode(e),r=Tn(t.peerId),n=(t.addresses??[]).map(o=>Z(o.multiaddr)),i=t.seq;return new te({peerId:r,multiaddrs:n,seqNumber:i})};te.DOMAIN=ng;te.CODEC=ig;var _t;(function(e){let t;(function(i){i.RESERVE="RESERVE",i.CONNECT="CONNECT",i.STATUS="STATUS"})(t=e.Type||(e.Type={}));let r;(function(i){i[i.RESERVE=0]="RESERVE",i[i.CONNECT=1]="CONNECT",i[i.STATUS=2]="STATUS"})(r||(r={})),function(i){i.codec=()=>qr(r)}(t=e.Type||(e.Type={}));let n;e.codec=()=>(n==null&&(n=Mt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.type!=null&&(o.uint32(8),e.Type.codec().encode(i.type,o)),i.peer!=null&&(o.uint32(18),mo.codec().encode(i.peer,o,{writeDefaults:!1})),i.reservation!=null&&(o.uint32(26),ic.codec().encode(i.reservation,o,{writeDefaults:!1})),i.limit!=null&&(o.uint32(34),yo.codec().encode(i.limit,o,{writeDefaults:!1})),i.status!=null&&(o.uint32(40),lt.codec().encode(i.status,o)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.type=e.Type.codec().decode(i);break;case 2:s.peer=mo.codec().decode(i,i.uint32());break;case 3:s.reservation=ic.codec().decode(i,i.uint32());break;case 4:s.limit=yo.codec().decode(i,i.uint32());break;case 5:s.status=lt.codec().decode(i);break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>Ot(i,e.codec()),e.decode=i=>kt(i,e.codec())})(_t||(_t={}));var Pe;(function(e){let t;(function(i){i.CONNECT="CONNECT",i.STATUS="STATUS"})(t=e.Type||(e.Type={}));let r;(function(i){i[i.CONNECT=0]="CONNECT",i[i.STATUS=1]="STATUS"})(r||(r={})),function(i){i.codec=()=>qr(r)}(t=e.Type||(e.Type={}));let n;e.codec=()=>(n==null&&(n=Mt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.type!=null&&(o.uint32(8),e.Type.codec().encode(i.type,o)),i.peer!=null&&(o.uint32(18),mo.codec().encode(i.peer,o,{writeDefaults:!1})),i.limit!=null&&(o.uint32(26),yo.codec().encode(i.limit,o,{writeDefaults:!1})),i.status!=null&&(o.uint32(32),lt.codec().encode(i.status,o)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.type=e.Type.codec().decode(i);break;case 2:s.peer=mo.codec().decode(i,i.uint32());break;case 3:s.limit=yo.codec().decode(i,i.uint32());break;case 4:s.status=lt.codec().decode(i);break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>Ot(i,e.codec()),e.decode=i=>kt(i,e.codec())})(Pe||(Pe={}));var mo;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.id!=null&&r.id.byteLength>0)&&(n.uint32(10),n.bytes(r.id)),r.addrs!=null)for(let o of r.addrs)n.uint32(18),n.bytes(o);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:new Uint8Array(0),addrs:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.id=r.bytes();break;case 2:i.addrs.push(r.bytes());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(mo||(mo={}));var ic;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.expire!==0n)&&(n.uint32(8),n.uint64(r.expire)),r.addrs!=null)for(let o of r.addrs)n.uint32(18),n.bytes(o);r.voucher!=null&&(n.uint32(26),n.bytes(r.voucher)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={expire:0n,addrs:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.expire=r.uint64();break;case 2:i.addrs.push(r.bytes());break;case 3:i.voucher=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(ic||(ic={}));var yo;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.duration!=null&&(n.uint32(8),n.uint32(r.duration)),r.data!=null&&(n.uint32(16),n.uint64(r.data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.duration=r.uint32();break;case 2:i.data=r.uint64();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(yo||(yo={}));var lt;(function(e){e.UNUSED="UNUSED",e.OK="OK",e.RESERVATION_REFUSED="RESERVATION_REFUSED",e.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",e.PERMISSION_DENIED="PERMISSION_DENIED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.NO_RESERVATION="NO_RESERVATION",e.MALFORMED_MESSAGE="MALFORMED_MESSAGE",e.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(lt||(lt={}));var Ff;(function(e){e[e.UNUSED=0]="UNUSED",e[e.OK=100]="OK",e[e.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",e[e.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",e[e.PERMISSION_DENIED=202]="PERMISSION_DENIED",e[e.CONNECTION_FAILED=203]="CONNECTION_FAILED",e[e.NO_RESERVATION=204]="NO_RESERVATION",e[e.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",e[e.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(Ff||(Ff={}));(function(e){e.codec=()=>qr(Ff)})(lt||(lt={}));var oc;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.relay!=null&&r.relay.byteLength>0)&&(n.uint32(10),n.bytes(r.relay)),(i.writeDefaults===!0||r.peer!=null&&r.peer.byteLength>0)&&(n.uint32(18),n.bytes(r.peer)),(i.writeDefaults===!0||r.expiration!==0n)&&(n.uint32(24),n.uint64(r.expiration)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={relay:new Uint8Array(0),peer:new Uint8Array(0),expiration:0n},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.relay=r.bytes();break;case 2:i.peer=r.bytes();break;case 3:i.expiration=r.uint64();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(oc||(oc={}));function Kf(e){let t=async function*(){let r=yield,n=new Vt;for await(let i of e){if(r==null){n.append(i),r=yield n,n=new Vt;continue}for(n.append(i);n.length>=r;){let o=n.sublist(0,r);if(n.consume(r),r=yield o,r==null){n.length>0&&(r=yield n,n=new Vt);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function gs(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}function go(e){let t=jn(),r=Kf(e.source),n=gs(),i,o=e.sink(async function*(){yield*t,yield*await n.promise}());return o.catch(a=>{i=a}),{reader:r,writer:t,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await o),source:r},rest:()=>t.end(),write:t.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}function og(e){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e)}var sc=e=>{let t=cr.encodingLength(e),r=og(t);return cr.encode(e,r),sc.bytes=t,r};sc.bytes=0;function $e(e){e=e??{};let t=e.lengthEncoder??sc;return async function*(n){for await(let i of n){let o=t(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}}}$e.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??sc;return new Vt(r(e.byteLength),e)};var ws=T(dt(),1),CA=8,DA=1024*1024*4,Ei;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Ei||(Ei={}));var Vf=e=>{let t=cr.decode(e);return Vf.bytes=cr.encodingLength(t),t};Vf.bytes=0;function Ne(e){return async function*(r){let n=new Vt,i=Ei.LENGTH,o=-1,s=e?.lengthDecoder??Vf,a=e?.maxLengthLength??CA,c=e?.maxDataLength??DA;for await(let u of r)for(n.append(u);n.byteLength>0;){if(i===Ei.LENGTH)try{if(o=s(n),o<0)throw(0,ws.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw(0,ws.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let l=s.bytes;n.consume(l),e?.onLength!=null&&e.onLength(o),i=Ei.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,ws.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===Ei.DATA){if(n.byteLength<o)break;let l=n.sublist(0,o);n.consume(o),e?.onData!=null&&e.onData(l),yield l,i=Ei.LENGTH}}if(n.byteLength>0)throw(0,ws.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Ne.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Ne({...t??{},onLength:o=>{r=o}})(n)};function Dn(e,t={}){let r=go(e),n=Ne.fromReader(r.reader,t),i={read:async o=>{let{value:s}=await r.reader.next(o);if(s==null)throw new Error("Value is null");return s},readLP:async()=>{let{value:o}=await n.next();if(o==null)throw new Error("Value is null");return o},readPB:async o=>{let s=await i.readLP();if(s==null)throw new Error("Value is null");let a=s instanceof Uint8Array?s:s.subarray();return o.decode(a)},write:o=>{o instanceof Uint8Array?r.writer.push(o):r.writer.push(o.subarray())},writeLP:o=>{i.write($e.single(o,t))},writePB:(o,s)=>{i.writeLP(s.encode(o))},pb:o=>({read:async()=>await i.readPB(o),write:s=>{i.writePB(s,o)}}),unwrap:()=>(r.rest(),e.source=r.stream.source,e.sink=r.stream.sink,e)};return i}var Bn=N("libp2p:circuit:v2:stop"),BA=e=>{if(e.peer==null)return!1;try{e.peer.addrs.forEach(Z)}catch{return!1}return!0};async function sg({connection:e,request:t,pbstr:r}){let n=r.pb(Pe);if(Bn("new circuit relay v2 stop stream from %s",e.remotePeer),t.type!==Pe.Type.CONNECT){Bn.error("invalid stop connect request via peer %s",e.remotePeer),n.write({type:Pe.Type.STATUS,status:lt.UNEXPECTED_MESSAGE});return}if(!BA(t)){Bn.error("invalid stop connect request via peer %s",e.remotePeer),n.write({type:Pe.Type.STATUS,status:lt.MALFORMED_MESSAGE});return}return n.write({type:Pe.Type.STATUS,status:lt.OK}),r.unwrap()}async function ag({connection:e,request:t}){let r=await e.newStream([ko]);Bn("starting circuit relay v2 stop request to %s",e.remotePeer);let n=Dn(r),i=n.pb(Pe);i.write(t);let o;try{o=await i.read()}catch{Bn.error("error parsing stop message response from %s",e.remotePeer)}if(o==null){Bn.error("could not read response from %s",e.remotePeer),r.close();return}if(o.status===lt.OK)return Bn("stop request to %s was successful",e.remotePeer),n.unwrap();Bn("stop request failed with code %d",o.status),r.close()}var wo=class{constructor({relay:t,peer:r,expiration:n}){this.domain="libp2p-relay-rsvp",this.codec=new Uint8Array([3,2]),this.relay=t,this.peer=r,this.expiration=n}marshal(){return oc.encode({relay:this.relay.toBytes(),peer:this.peer.toBytes(),expiration:BigInt(this.expiration)})}equals(t){return!(!(t instanceof wo)||!this.peer.equals(t.peer)||!this.relay.equals(t.relay)||this.expiration!==t.expiration)}};var se=N("libp2p:circuit:v2:hop");async function cg(e){let{stream:t,request:r}=e;switch(se("received hop message"),r.type){case _t.Type.RESERVE:await PA(e);break;case _t.Type.CONNECT:await NA(e);break;default:se.error("invalid hop request type %s via peer %s",e.request.type,e.connection.remotePeer),t.pb(_t).write({type:_t.Type.STATUS,status:lt.UNEXPECTED_MESSAGE})}}async function ug(e){se("requesting reservation from %s",e.remotePeer);let t=await e.newStream([Ur]),n=Dn(t).pb(_t);n.write({type:_t.Type.RESERVE});let i;try{i=await n.read()}catch(s){throw se.error("error passing reserve message response from %s because",e.remotePeer,s.message),t.close(),s}if(i.status===lt.OK&&i.reservation!=null)return i.reservation;let o=`reservation failed with status ${i.status??"undefined"}`;throw se.error(o),new Error(o)}var LA=e=>e.protoCodes().includes(290);async function PA({connection:e,stream:t,relayPeer:r,relayAddrs:n,acl:i,reservationStore:o,peerStore:s}){let a=t.pb(_t);if(se("hop reserve request from %s",e.remotePeer),LA(e.remoteAddr)){se.error("relay reservation over circuit connection denied for peer: %p",e.remotePeer),a.write({type:_t.Type.STATUS,status:lt.PERMISSION_DENIED});return}if(await i?.allowReserve?.(e.remotePeer,e.remoteAddr)===!1){se.error("acl denied reservation to %s",e.remotePeer),a.write({type:_t.Type.STATUS,status:lt.PERMISSION_DENIED});return}let c=await o.reserve(e.remotePeer,e.remoteAddr);if(c.status!==lt.OK){a.write({type:_t.Type.STATUS,status:c.status});return}try{if(c.expire!=null){let u=new Date().getTime()-c.expire;await s.tagPeer(r,Jd,{value:1,ttl:u})}a.write({type:_t.Type.STATUS,status:lt.OK,reservation:await kA(n,r,e.remotePeer,BigInt(c.expire??0)),limit:(await o.get(r))?.limit}),se("sent confirmation response to %s",e.remotePeer)}catch{se.error("failed to send confirmation response to %s",e.remotePeer),await o.removeReservation(e.remotePeer)}}async function NA(e){let{connection:t,stream:r,request:n,reservationStore:i,connectionManager:o,acl:s}=e,a=r.pb(_t);se("hop connect request from %s",t.remotePeer);let c;try{if(n.peer==null)throw se.error("no peer info in hop connect request"),new Error("no peer info in request");n.peer.addrs.forEach(Z),c=Tn(n.peer.id)}catch(p){se.error("invalid hop connect request via peer %p %s",t.remotePeer,p),a.write({type:_t.Type.STATUS,status:lt.MALFORMED_MESSAGE});return}if(s?.allowConnect!==void 0){let p=await s.allowConnect(t.remotePeer,t.remoteAddr,c);if(p!==lt.OK){se.error("hop connect denied for %s with status %s",t.remotePeer,p),a.write({type:_t.Type.STATUS,status:p});return}}if(!await i.hasReservation(c)){se.error("hop connect denied for %s with status %s",t.remotePeer,lt.NO_RESERVATION),a.write({type:_t.Type.STATUS,status:lt.NO_RESERVATION});return}let u=o.getConnections(c);if(u.length===0){se("hop connect denied for %s as there is no destination connection",t.remotePeer),a.write({type:_t.Type.STATUS,status:lt.NO_RESERVATION});return}let l=u[0];se("hop connect request from %s to %s is valid",t.remotePeer,c);let f=await ag({connection:l,request:{type:Pe.Type.CONNECT,peer:{id:t.remotePeer.toBytes(),addrs:[Z("/p2p/"+t.remotePeer.toString()).bytes]}}});if(f==null){se.error("failed to open stream to destination peer %s",l?.remotePeer),a.write({type:_t.Type.STATUS,status:lt.CONNECTION_FAILED});return}a.write({type:_t.Type.STATUS,status:lt.OK});let d=r.unwrap();se("connection to destination established, short circuiting streams...");let h=(await i.get(c))?.limit;return Xd(d,f,h)}async function kA(e,t,r,n){let i=[];for(let s of e)i.push(s.bytes);let o=await Wt.seal(new wo({peer:r,relay:t,expiration:Number(n)}),t);return{addrs:i,expire:n,voucher:o.marshal()}}var xi=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Xr,Rt=class extends EventTarget{constructor(){super(...arguments),Xr.set(this,new Map)}listenerCount(t){let r=xi(this,Xr,"f").get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=xi(this,Xr,"f").get(t);i==null&&(i=[],xi(this,Xr,"f").set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=xi(this,Xr,"f").get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),xi(this,Xr,"f").set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=xi(this,Xr,"f").get(t.type);return n==null||(n=n.filter(({once:i})=>!i),xi(this,Xr,"f").set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new $(t,r))}};Xr=new WeakMap;var zf=class extends Event{constructor(t,r){super(t,r),this.detail=r?.detail}},$=globalThis.CustomEvent??zf;function Zr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var Jr=class{constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Zr(this.map.entries(),t=>[tt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,tt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return Zr(this.map.keys(),t=>tt(t))}values(){return this.map.values()}get size(){return this.map.size}};var ur=class{constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Zr(this.set.entries(),t=>{let r=tt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=tt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Zr(this.set.values(),t=>tt(t))}intersection(t){let r=new ur;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new ur;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new ur;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var jr=class{constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Zr(this.list.entries(),t=>tt(t[1]))}concat(t){let r=new jr(this);for(let n of t)r.push(n);return r}entries(){return Zr(this.list.entries(),t=>[t[0],tt(t[1])])}every(t){return this.list.every((r,n)=>t(tt(r),n,this))}filter(t){let r=new jr;return this.list.forEach((n,i)=>{let o=tt(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(tt(n),i,this));if(r!=null)return tt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(tt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(tt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return tt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return tt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};var me=N("libp2p:circuit:client"),MA=()=>{},cc=class extends Rt{constructor(t,r){super(),this.createOrRefreshReservation=async n=>{try{let i=this.components.connectionManager.getConnections(n);if(i.length===0)throw new Error("No connections to peer");let o=i[0],s=await ug(o),a=this.createOrRefreshReservation;if(s!=null){me("new reservation on %p",n);let c=this.reservationMap.get(n);c!=null&&clearTimeout(c);let u=setTimeout(l=>{a(l).catch(f=>{me.error("error refreshing reservation for %p",l,f)})},Math.max(Zd(s.expire)-100,0),n);this.reservationMap.set(n,u),this.dispatchEvent(new $("relay:reservation"))}}catch(i){me.error(i),await this._removeListenRelay(n)}},this.started=!1,this.components=t,this.addressSorter=r.addressSorter??Wi,this.maxReservations=r.maxReservations??1,this.relays=new ur,this.reservationMap=new Jr,this.onError=r.onError??MA,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this._onPeerConnect=this._onPeerConnect.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n.detail).catch(i=>{me.error("handling protocol change failed",i)})}),this.components.connectionManager.addEventListener("peer:disconnect",this._onPeerDisconnected),this.components.connectionManager.addEventListener("peer:connect",this._onPeerConnect)}isStarted(){return this.started}start(){this._listenOnAvailableHopRelays().catch(t=>{me.error("error listening on relays",t)}),this.started=!0}async stop(){this.reservationMap.forEach(t=>clearTimeout(t)),this.reservationMap.clear(),this.relays.clear()}async _onProtocolChange({peerId:t,protocols:r}){if(t.equals(this.components.peerId))return;let n=r.includes(Ur);if(me.trace("Peer %p protocol change %p",t,this.components.peerId),!n){this.relays.has(t)&&await this._removeListenRelay(t);return}if(!this.relays.has(t))try{let i=this.components.connectionManager.getConnections(t);if(i.length===0){this._tryToListenOnRelay(t);return}let o=i[0];if(o.remoteAddr.protoCodes().includes(290)){me("relayed connection to %p will not be used to hop on",t);return}await this._addListenRelay(o,t)}catch(i){me.error("could not add %p as relay",t),this.onError(i)}}_onPeerConnect({detail:t}){this.components.peerStore.protoBook.get(t.remotePeer).then(r=>{this._onProtocolChange({peerId:t.remotePeer,protocols:r}).catch(n=>me.error("handling reconnect failed",n))},r=>{me.trace("could not fetch protocols for peer: %p",t.remotePeer,r)})}_onPeerDisconnected(t){let n=t.detail.remotePeer;clearTimeout(this.reservationMap.get(n)),this.reservationMap.delete(n),this.relays.has(n)&&this._removeListenRelay(n).catch(i=>{me.error(i)})}async _addListenRelay(t,r){me.trace("peerId %p is being added as relay",r);try{if(this.relays.size>=this.maxReservations)return;await this.createOrRefreshReservation(r);let n=await Jt(await this.components.peerStore.addressBook.get(t.remotePeer),o=>Gu(o,this.addressSorter),async o=>await Jn(o));(await Promise.all(n.map(async o=>{let s=o.multiaddr;s.getPeerId()==null&&(s=s.encapsulate(`/p2p/${t.remotePeer.toString()}`)),s=s.encapsulate("/p2p-circuit");try{return await this.components.transportManager.listen([s]),!0}catch(a){me.error("error listening on circuit address",s,a),this.onError(a)}return!1}))).includes(!0)&&this.relays.add(r)}catch(n){this.relays.delete(r),me.error("error adding relay for %p %s",r,n),this.onError(n)}}async _removeListenRelay(t){let r=this.relays.has(t);this.relays.delete(t),r&&await this._listenOnAvailableHopRelays(new jr([t]))}async _listenOnAvailableHopRelays(t=new jr([])){if(this.relays.size>=this.maxReservations)return;let r=[],n=(await this.components.peerStore.all()).filter(({id:i,protocols:o})=>o.includes(Ur)&&!this.relays.has(i)&&!t.includes(i)).map(({id:i})=>{let o=this.components.connectionManager.getConnections(i);return o.length===0?(r.push(i),[i,null]):[i,o[0]]}).sort(()=>Math.random()-.5);for(let[i,o]of n)if(await this._addListenRelay(o,i),this.relays.size>=this.maxReservations)return;for(let i of r){if(this.relays.size>=this.maxReservations)return;await this._tryToListenOnRelay(i)}try{let i=await oa(sa);for await(let o of this.components.contentRouting.findProviders(i))if(o.multiaddrs.length>0&&!o.id.equals(this.components.peerId)){let s=o.id;if(await this.components.peerStore.addressBook.add(s,o.multiaddrs),await this._tryToListenOnRelay(s),this.relays.size>=this.maxReservations)return}}catch(i){me.error("failed when finding relays on the network",i),this.onError(i)}}async _tryToListenOnRelay(t){try{if(t.equals(this.components.peerId)){me.trace("Skipping dialling self %p",t.toString());return}let r=await this.components.connectionManager.openConnection(t);await this._addListenRelay(r,t)}catch(r){me.error("Could not connect and listen on relay %p",t,r),this.onError(r)}}};function tn(e){return e!=null&&typeof e.start=="function"&&typeof e.stop=="function"}var $f=(e,t)=>async function*(){yield*(await Jn(e)).sort(t)}();async function lr(e){for await(let t of e);}async function*He(e,t){for await(let r of e)await t(r)&&(yield r)}async function*uc(e,t){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}var lc=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}put(t,r,n){return Promise.reject(new Error(".put is not implemented"))}get(t,r){return Promise.reject(new Error(".get is not implemented"))}has(t,r){return Promise.reject(new Error(".has is not implemented"))}delete(t,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,r={}){for await(let{key:n,value:i}of t)await this.put(n,i,r),yield{key:n,value:i}}async*getMany(t,r={}){for await(let n of t)yield this.get(n,r)}async*deleteMany(t,r={}){for await(let n of t)await this.delete(n,r),yield n}batch(){let t=[],r=[];return{put(n,i){t.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await lr(this.putMany(t,n)),t=[],await lr(this.deleteMany(r,n)),r=[]}}}async*_all(t,r){throw new Error("._all is not implemented")}async*_allKeys(t,r){throw new Error("._allKeys is not implemented")}query(t,r){let n=this._all(t,r);if(t.prefix!=null&&(n=He(n,i=>i.key.toString().startsWith(t.prefix))),Array.isArray(t.filters)&&(n=t.filters.reduce((i,o)=>He(i,o),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,o)=>$f(i,o),n)),t.offset!=null){let i=0;n=He(n,()=>i++>=t.offset)}return t.limit!=null&&(n=uc(n,t.limit)),n}queryKeys(t,r){let n=this._allKeys(t,r);if(t.prefix!=null&&(n=He(n,i=>i.toString().startsWith(t.prefix))),Array.isArray(t.filters)&&(n=t.filters.reduce((i,o)=>He(i,o),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,o)=>$f(i,o),n)),t.offset!=null){let i=0;n=He(n,()=>i++>=t.offset)}return t.limit!=null&&(n=uc(n,t.limit)),n}};var fc=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var en="/",lg=new TextEncoder().encode(en),hc=lg[0],qt=class{constructor(t,r){if(typeof t=="string")this._buf=K(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==hc)throw new Error("Invalid key")}toString(t="utf8"){return Y(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new qt(t.join(en))}static random(){return new qt(fc().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new qt(t):typeof t.uint8Array=="function"?new qt(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=lg),this._buf[0]!==hc){let t=new Uint8Array(this._buf.byteLength+1);t.fill(hc,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===hc;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let o=r[i],s=n[i];if(o<s)return!0;if(o>s)return!1}return r.length<n.length}reverse(){return qt.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(en).slice(1)}type(){return UA(this.baseNamespace())}name(){return FA(this.baseNamespace())}instance(t){return new qt(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(en)||(t+=en),t+=this.type(),new qt(t)}parent(){let t=this.list();return t.length===1?new qt(en):new qt(t.slice(0,-1).join(en))}child(t){return this.toString()===en?t:t.toString()===en?this:new qt(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return qt.withNamespaces([...this.namespaces(),...KA(t.map(r=>r.namespaces()))])}};function UA(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function FA(e){let t=e.split(":");return t[t.length-1]}function KA(e){return[].concat(...e)}var fg=T(dt(),1);function hg(e){return e=e||new Error("Not Found"),(0,fg.default)(e,"ERR_NOT_FOUND")}var dc=class extends lc{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(t,r){this.data[t.toString()]=r}async get(t){if(!await this.has(t))throw hg();return this.data[t.toString()]}async has(t){return this.data[t.toString()]!==void 0}async delete(t){delete this.data[t.toString()]}async*_all(){yield*Object.entries(this.data).map(([t,r])=>({key:new qt(t),value:r}))}async*_allKeys(){yield*Object.entries(this.data).map(([t])=>new qt(t))}};var vs=T(dt(),1);var J;(function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"})(J||(J={}));var b;(function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(b||(b={}));var dg=T(dt(),1);async function*Hf(e,t){for await(let r of e)yield t(r)}async function*Es(e,t){yield*Hf(e,async r=>(await t.addressBook.add(r.id,r.multiaddrs),r))}function pc(e){let t=new Set;return He(e,r=>t.has(r.id.toString())?!1:(t.add(r.id.toString()),!0))}async function*mc(e,t=1){let r=0;for await(let n of e)r++,yield n;if(r<t)throw(0,dg.default)(new Error("not found"),"NOT_FOUND")}var Bg=T(Ln(),1);async function ke(e){for await(let t of e)return t}var xc=T(Wf(),1),Lg=T(rn(),1),Dg=N("libp2p:peer-routing"),Ec=class{constructor(t,r){this.components=t,this.routers=r.routers??[],this.refreshManagerInit=r.refreshManager??{},this.started=!1,this._findClosestPeersTask=this._findClosestPeersTask.bind(this)}isStarted(){return this.started}async start(){this.started||this.routers.length===0||this.timeoutId!=null||this.refreshManagerInit.enabled===!1||(this.timeoutId=(0,xc.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new Bg.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,Lg.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await lr(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(t){Dg.error(t)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,xc.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(t,r){if(this.routers.length===0)throw(0,vs.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw(0,vs.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Jt(Fr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,r)}catch(o){Dg.error(o)}}())),i=>He(i,Boolean),i=>Es(i,this.components.peerStore),async i=>await ke(i));if(n!=null)return n;throw(0,vs.default)(new Error(J.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(t,r){if(this.routers.length===0)throw(0,vs.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Jt(Fr(...this.routers.map(n=>n.getClosestPeers(t,r))),n=>Es(n,this.components.peerStore),n=>pc(n),n=>mc(n))}};var Pn=T(dt(),1);var vc=class{constructor(t,r){this.routers=r.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,r={}){if(this.routers.length===0)throw(0,Pn.default)(new Error("No content this.routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Jt(Fr(...this.routers.map(n=>n.findProviders(t,r))),n=>Es(n,this.components.peerStore),n=>pc(n),n=>mc(n))}async provide(t,r={}){if(this.routers.length===0)throw(0,Pn.default)(new Error("No content routers available"),b.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>await n.provide(t,r)))}async put(t,r,n){if(!this.isStarted())throw(0,Pn.default)(new Error(J.NOT_STARTED_YET),b.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await lr(i.put(t,r,n))}async get(t,r){if(!this.isStarted())throw(0,Pn.default)(new Error(J.NOT_STARTED_YET),b.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(t,r))if(i.name==="VALUE")return i.value}throw(0,Pn.default)(new Error(J.NOT_FOUND),b.ERR_NOT_FOUND)}async*getMany(t,r,n){if(!this.isStarted())throw(0,Pn.default)(new Error(J.NOT_STARTED_YET),b.DHT_NOT_STARTED);if(r==null||r===0)return;let i=0,o=this.components.dht;if(o!=null){for await(let s of o.get(t,n))if(s.name==="VALUE"&&(yield{from:s.from,val:s.value},i++,i===r))break}if(i===0)throw(0,Pn.default)(new Error(J.NOT_FOUND),b.ERR_NOT_FOUND)}};var tR=e=>e,bc=class extends Rt{constructor(t,r){super();let{listen:n=[],announce:i=[]}=r;this.components=t,this.listen=n.map(o=>o.toString()),this.announce=new Set(i.map(o=>o.toString())),this.observed=new Set,this.announceFilter=r.announceFilter??tR}getListenAddrs(){return Array.from(this.listen).map(t=>Z(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>Z(t))}getObservedAddrs(){return Array.from(this.observed).map(t=>Z(t))}confirmObservedAddr(t){}removeObservedAddr(t){}addObservedAddr(t){let r=Z(t),n=r.getPeerId();n!=null&&tt(n).equals(this.components.peerId)&&(r=r.decapsulate(Z(`/p2p/${this.components.peerId.toString()}`)));let i=r.toString();this.observed.has(i)||(this.observed.add(i),this.dispatchEvent(new $("change:addresses")))}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(this.getObservedAddrs().map(n=>n.toString()));let r=new Set(t);return this.announceFilter(Array.from(r).map(n=>Z(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var Bc=T(dt(),1);var Vg=T(Kg(),1),Ge=Vg.default;var qg=N("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),Ac=class extends Rt{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let t="hidden",r="visibilitychange";typeof globalThis.document.hidden<"u"?(t="hidden",r="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(t="mozHidden",r="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(t="msHidden",r="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(t="webkitHidden",r="webkitvisibilitychange"),this.hidden=t,this.visibilityChange=r}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?qg("Checking page visibility requires a browser that supports the Page Visibility API."):globalThis.document.addEventListener(this.visibilityChange,this._handleVisibilityChange.bind(this),!1)}isVisible(){if(!(this.hidden===void 0||document[this.hidden]===void 0))return document[this.hidden]==null}_handleVisibilityChange(){let t=globalThis.document[this.hidden]===!1;qg(t?"Page Visible":"Page Hidden"),this.dispatchEvent(new $("visibilityChange",{detail:t}))}};var nn=N("libp2p:connection-manager:latency-monitor"),Rc=class extends Rt{constructor(t={}){super();let{latencyCheckIntervalMs:r,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:o}=t;this.latencyCheckIntervalMs=r??500,this.latencyRandomPercentage=o??10,this.latencyCheckMultiply=2*(this.latencyRandomPercentage/100)*this.latencyCheckIntervalMs,this.latencyCheckSubtract=this.latencyCheckMultiply/2,this.dataEmitIntervalMs=n===null||n===0?void 0:n??5*1e3,nn("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?nn("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):nn("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(nn("Using process.hrtime for timing"),this.now=globalThis.process.hrtime,this.getDeltaMS=s=>{let a=this.now(s);return a[0]*1e3+a[1]/1e6}):typeof window<"u"&&window.performance?.now!=null?(nn("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=s=>Math.round(this.now()-s)):(nn("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=s=>this.now()-s),this.latencyData=this.initLatencyData()}start(){sR()&&(this.visibilityChangeEmitter=new Ac,this.visibilityChangeEmitter.addEventListener("visibilityChange",t=>{let{detail:r}=t;r?this._startTimers():(this._emitSummary(),this._stopTimers())})),this.visibilityChangeEmitter?.isVisible()===!0&&this._startTimers()}stop(){this._stopTimers()}_startTimers(){this.checkLatencyID==null&&(this.checkLatency(),this.dataEmitIntervalMs!=null&&(this.emitIntervalID=setInterval(()=>this._emitSummary(),this.dataEmitIntervalMs),typeof this.emitIntervalID.unref=="function"&&this.emitIntervalID.unref()))}_stopTimers(){this.checkLatencyID!=null&&(clearTimeout(this.checkLatencyID),this.checkLatencyID=void 0),this.emitIntervalID!=null&&(clearInterval(this.emitIntervalID),this.emitIntervalID=void 0)}_emitSummary(){let t=this.getSummary();t.events>0&&this.dispatchEvent(new $("data",{detail:t}))}getSummary(){let t={events:this.latencyData.events,minMs:this.latencyData.minMs,maxMs:this.latencyData.maxMs,avgMs:this.latencyData.events>0?this.latencyData.totalMs/this.latencyData.events:Number.POSITIVE_INFINITY,lengthMs:this.getDeltaMS(this.latencyData.startTime)};return this.latencyData=this.initLatencyData(),nn.trace("Summary: %O",t),t}checkLatency(){let t=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,r={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+t),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(r.startTime)-r.deltaOffset;this.checkLatency(),this.latencyData.events++,this.latencyData.minMs=Math.min(this.latencyData.minMs,i),this.latencyData.maxMs=Math.max(this.latencyData.maxMs,i),this.latencyData.totalMs+=i,nn.trace("MS: %s Data: %O",i,this.latencyData)};nn.trace("localData: %O",r),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(r.deltaOffset=0,r.startTime=this.now(),this.asyncTestFn(n)):(r.deltaOffset-=1,n())},r.deltaOffset),typeof this.checkLatencyID.unref=="function"&&this.checkLatencyID.unref()}initLatencyData(){return{startTime:this.now(),minMs:Number.POSITIVE_INFINITY,maxMs:Number.NEGATIVE_INFINITY,events:0,totalMs:0}}};function sR(){return typeof globalThis.window<"u"}var Lc=T(rn(),1);var Ic="OPEN",Zf="CLOSING",Tc="CLOSED";var fh=T(Ln(),1);var zg="keep-alive";var Kw=T(Uw(),1);var Fw=T(dt(),1);function Dc(e){if(mi(e))return{peerId:e};if(Le(e)){let t=e.getPeerId();return{multiaddr:e,peerId:t==null?void 0:tt(t)}}throw(0,Fw.default)(new Error(`${e} is not a PeerId or a Multiaddr`),b.ERR_INVALID_MULTIADDR)}var ee=N("libp2p:connection-manager"),zR={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},$R=6e4,Pc=class extends Rt{constructor(t,r){if(super(),this.opts=Ge.call({ignoreUndefined:!0},zR,r),this.opts.maxConnections<this.opts.minConnections)throw(0,Bc.default)(new Error("Connection Manager maxConnections must be greater than minConnections"),b.ERR_INVALID_PARAMETERS);ee("options: %o",this.opts),this.components=t,this.connections=new Map,this.started=!1,r.maxEventLoopDelay!=null&&r.maxEventLoopDelay>0&&r.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new Rc({latencyCheckIntervalMs:r.pollInterval,dataEmitIntervalMs:r.pollInterval}));try{(0,Lc.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=r.startupReconnectTimeout??$R,this.dialTimeout=r.dialTimeout??3e4,this.allow=(r.allow??[]).map(n=>Z(n)),this.deny=(r.deny??[]).map(n=>Z(n)),this.inboundConnectionRateLimiter=new Kw.RateLimiterMemory({points:this.opts.inboundConnectionThreshold,duration:1}),this.incomingPendingConnections=0}isStarted(){return this.started}async start(){this.components.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.stat.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let o=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;t[o]=(t[o]??0)+1}return t}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let i of n){let o={};for(let s of i.streams){let a=`${s.stat.direction} ${s.stat.protocol??"unnegotiated"}`;o[a]=(o[a]??0)+1}for(let[s,a]of Object.entries(o))t[s]=t[s]??[],t[s].push(a)}let r={};for(let[n,i]of Object.entries(t)){i=i.sort((s,a)=>s-a);let o=Math.floor(i.length*.9);r[n]=i[o]}return r}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,ee("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let t=[];for(let r of await this.components.peerStore.all())(await this.components.peerStore.getTags(r.id)).filter(o=>o.name===zg).length>0&&t.push(r.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new fh.TimeoutController(this.startupReconnectTimeout);try{(0,Lc.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(t.map(async r=>{await this.openConnection(r,{signal:this.connectOnStartupController?.signal}).catch(n=>{ee.error(n)})}))}).catch(t=>{ee.error(t)}).finally(()=>{this.connectOnStartupController?.clear()})}async beforeStop(){this.connectOnStartupController?.abort(),this.components.upgrader.removeEventListener("connection",this.onConnect),this.components.upgrader.removeEventListener("connectionEnd",this.onDisconnect)}async stop(){this.latencyMonitor?.removeEventListener("data",this._onLatencyMeasure),this.latencyMonitor?.stop(),this.started=!1,await this._close(),ee("stopped")}async _close(){let t=[];for(let r of this.connections.values())for(let n of r)t.push((async()=>{try{await n.close()}catch(i){ee.error(i)}})());ee("closing %d connections",t.length),await Promise.all(t),this.connections.clear()}onConnect(t){this._onConnect(t).catch(r=>{ee.error(r)})}async _onConnect(t){let{detail:r}=t;if(!this.started){await r.close();return}let n=r.remotePeer,i=n.toString(),o=this.connections.get(i);o!=null?o.push(r):this.connections.set(i,[r]),n.publicKey!=null&&await this.components.peerStore.keyBook.set(n,n.publicKey);let s=this.getConnections().length,a=s-this.opts.maxConnections;await this._checkMaxLimit("maxConnections",s,a),this.dispatchEvent(new $("peer:connect",{detail:r}))}onDisconnect(t){let{detail:r}=t;if(!this.started)return;let n=r.remotePeer.toString(),i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(o=>o.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new $("peer:disconnect",{detail:r})))}getConnections(t){if(t!=null)return this.connections.get(t.toString())??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(t,r={}){let{peerId:n,multiaddr:i}=Dc(t);if(n==null&&i==null)throw(0,Bc.default)(new TypeError("Can only open connections to PeerIds or Multiaddrs"),b.ERR_INVALID_PARAMETERS);if(n!=null){ee("dial to",n);let s=this.getConnections(n);if(s.length>0)return ee("had an existing connection to %p",n),s[0]}let o;if(r?.signal==null){o=new fh.TimeoutController(this.dialTimeout),r.signal=o.signal;try{(0,Lc.setMaxListeners)?.(1/0,o.signal)}catch{}}try{let s=await this.components.dialer.dial(t,r),a=this.connections.get(s.remotePeer.toString());a==null&&(a=[],this.connections.set(s.remotePeer.toString(),a));let c=!1;for(let u of a)u.id===s.id&&(c=!0);return c||a.push(s),s}finally{o?.clear()}}async closeConnections(t){let r=this.connections.get(t.toString())??[];await Promise.all(r.map(async n=>await n.close()))}getAll(t){if(!mi(t))throw(0,Bc.default)(new Error("peerId must be an instance of peer-id"),b.ERR_INVALID_PARAMETERS);let r=t.toString(),n=this.connections.get(r);return n!=null?n.filter(i=>i.stat.status===Ic):[]}_onLatencyMeasure(t){let{detail:r}=t;this._checkMaxLimit("maxEventLoopDelay",r.avgMs,1).catch(n=>{ee.error(n)})}async _checkMaxLimit(t,r,n=1){let i=this.opts[t];if(i==null){ee.trace("limit %s was not set so it cannot be applied",t);return}ee.trace("checking limit of %s. current value: %d of %d",t,r,i),r>i&&(ee("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,t,r,i,n),await this._pruneConnections(n))}async _pruneConnections(t){let r=this.getConnections(),n=new Jr;for(let s of r){let a=s.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((u,l)=>u+l.value,0))}let i=r.sort((s,a)=>{let c=n.get(s.remotePeer)??0,u=n.get(a.remotePeer)??0;if(c>u)return 1;if(c<u)return-1;let l=s.stat.timeline.open,f=a.stat.timeline.open;return l<f?1:l>f?-1:0}),o=[];for(let s of i)if(ee("too many connections open - closing a connection to %p",s.remotePeer),o.push(s),o.length===t)break;await Promise.all(o.map(async s=>{try{await s.close()}catch(a){ee.error(a)}this.onDisconnect(new $("connectionEnd",{detail:s}))}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return ee("connection from %s refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return ee("connection from %s refused - incomingPendingConnections exceeded by peer %s",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return ee("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,t.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(ee("connection from %s refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var hh=T(Yf(),1),Nn=N("libp2p:connection-manager:auto-dialler"),HR={enabled:!0,minConnections:0,autoDialInterval:1e4},Nc=class{constructor(t,r){this.components=t,this.options=Ge.call({ignoreUndefined:!0},HR,r),this.running=!1,this._autoDial=this._autoDial.bind(this),Nn("options: %j",this.options)}isStarted(){return this.running}async start(){if(!this.options.enabled){Nn("not enabled");return}this.running=!0,this._autoDial().catch(t=>{Nn.error("could start autodial",t)}),Nn("started")}async stop(){if(!this.options.enabled){Nn("not enabled");return}this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),Nn("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let t=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=t){this.autoDialTimeout=(0,hh.default)(this._autoDial,this.options.autoDialInterval);return}let r=await this.components.peerStore.all();r=r.filter(n=>!(n.id.equals(this.components.peerId)||n.addresses.length===0)),r=r.sort(()=>Math.random()>.5?1:-1),r=r.sort((n,i)=>i.protocols.length>n.protocols.length||i.id.publicKey!=null&&n.id.publicKey==null?1:-1);for(let n=0;this.running&&n<r.length&&this.components.connectionManager.getConnections().length<t;n++){if(!this.running)return;let i=r[n];if(this.components.connectionManager.getConnections(i.id).length===0){Nn("connecting to a peerStore stored peer %p",i.id);try{await this.components.connectionManager.openConnection(i.id)}catch(o){Nn.error("could not connect to peerStore stored peer",o)}}}this.running&&(this.autoDialTimeout=(0,hh.default)(this._autoDial,this.options.autoDialInterval))}};var kc=class{constructor(t){this.reservations=new Jr,this._started=!1,this.init={maxReservations:t?.maxReservations??15,reservationClearInterval:t?.reservationClearInterval??300*1e3,applyDefaultLimit:t?.applyDefaultLimit!==!1,reservationTtl:t?.reservationTtl??2*60*60*1e3,defaultDurationLimit:t?.defaultDurationLimit??12e4,defaultDataLimit:t?.defaultDataLimit??jd}}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let t=new Date().getTime();this.reservations.forEach((r,n)=>{r.expire.getTime()<t&&this.reservations.delete(n)})},this.init.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(t,r,n){if(this.reservations.size>=this.init.maxReservations&&!this.reservations.has(t))return{status:lt.RESERVATION_REFUSED};let i=new Date(Date.now()+this.init.reservationTtl),o;return this.init.applyDefaultLimit&&(o=n??{data:this.init.defaultDataLimit,duration:this.init.defaultDurationLimit}),this.reservations.set(t,{addr:r,expire:i,limit:o}),{status:lt.OK,expire:i.getTime()}}removeReservation(t){this.reservations.delete(t)}hasReservation(t){return this.reservations.has(t)}get(t){return this.reservations.get(t)}};var gh=T(dt(),1);var YR=U("dns4"),WR=U("dns6"),QR=U("dnsaddr"),bi=ye(U("dns"),QR,YR,WR),Oc=ye(U("ip4"),U("ip6")),Io=ye(G(Oc,U("tcp")),G(bi,U("tcp"))),mh=G(Oc,U("udp")),XR=G(mh,U("utp")),ZR=G(mh,U("quic")),Ss=ye(G(Io,U("ws")),G(bi,U("ws"))),As=ye(G(Io,U("wss")),G(bi,U("wss")),G(Io,U("tls"),U("ws")),G(bi,U("tls"),U("ws"))),dh=ye(G(Io,U("http")),G(Oc,U("http")),G(bi,U("http"))),ph=ye(G(Io,U("https")),G(Oc,U("https")),G(bi,U("https"))),Vw=G(mh,U("webrtc"),U("certhash")),zw=ye(G(Vw,U("p2p")),Vw),$w=ye(G(Ss,U("p2p-webrtc-star"),U("p2p")),G(As,U("p2p-webrtc-star"),U("p2p")),G(Ss,U("p2p-webrtc-star")),G(As,U("p2p-webrtc-star"))),nN=ye(G(Ss,U("p2p-websocket-star"),U("p2p")),G(As,U("p2p-websocket-star"),U("p2p")),G(Ss,U("p2p-websocket-star")),G(As,U("p2p-websocket-star"))),Hw=ye(G(dh,U("p2p-webrtc-direct"),U("p2p")),G(ph,U("p2p-webrtc-direct"),U("p2p")),G(dh,U("p2p-webrtc-direct")),G(ph,U("p2p-webrtc-direct"))),Rs=ye(Ss,As,dh,ph,$w,Hw,Io,XR,ZR,bi,zw),iN=ye(G(Rs,U("p2p-stardust"),U("p2p")),G(Rs,U("p2p-stardust"))),kn=ye(G(Rs,U("p2p")),$w,Hw,zw,U("p2p")),qw=ye(G(kn,U("p2p-circuit"),kn),G(kn,U("p2p-circuit")),G(U("p2p-circuit"),kn),G(Rs,U("p2p-circuit")),G(U("p2p-circuit"),Rs),U("p2p-circuit")),Gw=()=>ye(G(qw,Gw),qw),vi=Gw(),oN=ye(G(vi,kn,vi),G(kn,vi),G(vi,kn),vi,kn);function Yw(e){function t(r){let n;try{n=Z(r)}catch{return!1}let i=e(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return t}function G(...e){function t(r){if(r.length<e.length)return null;let n=r;return e.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Yw(t),partialMatch:t}}function ye(...e){function t(n){let i=null;return e.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Yw(t),partialMatch:t}}function U(e){let t=e;function r(i){let o;try{o=Z(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function n(i){return i.length===0?null:i[0]===t?i.slice(1):null}return{toString:function(){return t},matches:r,partialMatch:n}}var Is=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Ww(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function _i(e,t,r){let n=r??{},i=Ww(e);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:l,abortCode:f}=n;throw new Is(l,f)}let u=new Promise((l,f)=>{s=()=>{let{abortMessage:d,abortCode:h}=n;f(new Is(d,h))}});c=await Promise.race([u,i.next()]),s=null}catch(u){t.removeEventListener("abort",a);let l=u.type==="aborted"&&t.aborted;if(l&&n.onAbort!=null&&await n.onAbort(e),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function jR(e,t,r){return n=>e(_i(n,t,r))}function fr(e,t,r){return{sink:jR(e.sink,t,{...r,onAbort:void 0}),source:_i(e.source,t,r)}}var tI=N("libp2p:stream:converter");function yh(e,t={}){let{stream:r,remoteAddr:n}=e,{sink:i,source:o}=r,s=async function*(){for await(let u of o)yield*u}(),a={async sink(u){t.signal!=null&&(u=_i(u,t.signal));try{await i(u),await c()}catch(l){l.type!=="aborted"&&tI(l)}},source:t.signal!=null?_i(s,t.signal):s,remoteAddr:n,timeline:{open:Date.now(),close:void 0},async close(){await i(async function*(){yield new Uint8Array(0)}()),await c()}};async function c(){return a.timeline.close==null&&(a.timeline.close=Date.now()),await Promise.resolve()}return a}function Qw(e){let t=new Map;async function r(o){let s=o.toString().split("/p2p-circuit").find(d=>d!==""),a=Z(s),c=a.getPeerId();if(c==null)throw new Error("Could not determine relay peer from multiaddr");let u=tt(c);await e.peerStore.addressBook.add(u,[a]);let l=await e.connectionManager.openConnection(u),f=l.remoteAddr.encapsulate("/p2p-circuit");t.set(l.remotePeer.toString(),f),i.dispatchEvent(new $("listening"))}function n(){let o=[];for(let s of t.values())o.push(s);return o}let i=Object.assign(new Rt,{close:async()=>await Promise.resolve(),listen:r,getAddrs:n});return e.connectionManager.addEventListener("peer:disconnect",o=>{let{detail:s}=o;t.delete(s.remotePeer.toString())&&i.dispatchEvent(new $("close"))}),i}var Xw=Symbol.for("@libp2p/transport");var On;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(On||(On={}));var We=N("libp2p:circuit"),Mc=class{constructor(t,r){this.components=t,this._init=r,this.reservationStore=new kc({defaultDataLimit:r.hop?.limit?.data,defaultDurationLimit:r.hop?.limit?.duration}),this._started=!1}isStarted(){return this._started}async start(){this._started||(this._started=!0,this._init.hop.enabled===!0&&this.components.registrar.handle(Ur,t=>{this.onHop(t).catch(r=>{We.error(r)})}).catch(t=>{We.error(t)}),this.components.registrar.handle(ko,t=>{this.onStop(t).catch(r=>{We.error(r)})}).catch(t=>{We.error(t)}),this._init.hop.enabled===!0&&this.reservationStore.start())}async stop(){this._init.hop.enabled===!0&&(this.reservationStore.stop(),await this.components.registrar.unhandle(Ur)),await this.components.registrar.unhandle(ko)}get[Xw](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v2"}async onHop({connection:t,stream:r}){We("received circuit v2 hop protocol stream from %s",t.remotePeer);let n=gs(),i=setTimeout(()=>{n.reject("timed out")},this._init.hop.timeout),o=Dn(r);try{let s=await Promise.race([o.pb(_t).read(),n.promise]);if(s?.type==null)throw new Error("request was invalid, could not read from stream");await Promise.race([cg({connection:t,stream:o,connectionManager:this.components.connectionManager,relayPeer:this.components.peerId,relayAddrs:this.components.addressManager.getListenAddrs(),reservationStore:this.reservationStore,peerStore:this.components.peerStore,request:s}),n.promise])}catch(s){o.pb(_t).write({type:_t.Type.STATUS,status:lt.MALFORMED_MESSAGE}),r.abort(s)}finally{clearTimeout(i)}}async onStop({connection:t,stream:r}){let n=Dn(r),i=await n.readPB(Pe);if(We("received circuit v2 stop protocol request from %s",t.remotePeer),i?.type===void 0)return;let o=await sg({connection:t,pbstr:n,request:i});if(o!=null){let s=Z(i.peer?.addrs?.[0]),a=this.components.transportManager.getAddrs()[0],c=yh({stream:o,remoteAddr:s,localAddr:a});We("new inbound connection %s",c.remoteAddr);let u=await this.components.upgrader.upgradeInbound(c);We("%s connection %s upgraded","inbound",c.remoteAddr),this.handler?.(u)}}async dial(t,r={}){let n=t.toString().split("/p2p-circuit"),i=Z(n[0]),o=Z(n[n.length-1]),s=i.getPeerId(),a=o.getPeerId();if(s==null||a==null){let h="Circuit relay dial failed as addresses did not have peer id";throw We.error(h),(0,gh.default)(new Error(h),b.ERR_RELAYED_DIAL)}let c=tt(s),u=tt(a),l=!1,d=this.components.connectionManager.getConnections(c)[0];d==null&&(await this.components.peerStore.addressBook.add(c,[i]),d=await this.components.connectionManager.openConnection(c,r),l=!0);try{let h=await d.newStream([Ur]);return await this.connectV2({stream:h,connection:d,destinationPeer:u,destinationAddr:o,relayAddr:i,ma:t,disconnectOnFailure:l})}catch(h){throw We.error("Circuit relay dial failed",h),l&&await d.close(),h}}async connectV2({stream:t,connection:r,destinationPeer:n,destinationAddr:i,relayAddr:o,ma:s,disconnectOnFailure:a}){try{let c=Dn(t),u=c.pb(_t);u.write({type:_t.Type.CONNECT,peer:{id:n.toBytes(),addrs:[Z(i).bytes]}});let l=await u.read();if(l.status!==lt.OK)throw(0,gh.default)(new Error(`failed to connect via relay with status ${l?.status?.toString()??"undefined"}`),b.ERR_HOP_REQUEST_FAILED);let f=o;f=f.encapsulate(`/p2p-circuit/p2p/${this.components.peerId.toString()}`);let d=yh({stream:c.unwrap(),remoteAddr:s,localAddr:f});return We("new outbound connection %s",d.remoteAddr),await this.components.upgrader.upgradeOutbound(d)}catch(c){throw We.error("Circuit relay dial failed",c),a&&await r.close(),c}}createListener(t){return this.handler=t.handler,Qw({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(t){return t=Array.isArray(t)?t:[t],t.filter(r=>vi.matches(r))}};var Uc=T(Wf(),1);var Zw=N("libp2p:circuit:relay"),Ts=class{constructor(t,r){this.components=t,this.started=!1,this.init=r,this._advertiseService=this._advertiseService.bind(this)}isStarted(){return this.started}async start(){this.init.hop.enabled===!0&&this.init.advertise.enabled===!0&&(this.timeout=(0,Uc.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){try{(0,Uc.clearDelayedInterval)(this.timeout)}catch{}this.started=!1}async _advertiseService(){try{let t=await oa(sa);await this.components.contentRouting.provide(t)}catch(t){t.code===b.ERR_NO_ROUTERS_AVAILABLE?(Zw.error("a content router, such as a DHT, must be provided in order to advertise the relay service",t),await this.stop()):Zw.error("could not advertise service: ",t)}}};var lE=T(sE(),1);var ht=T(dt(),1);var st;(function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(st||(st={}));var HN=T(Aa(),1),dI=T(gt(),1);var cE=T(Vl(),1),uE=T(Ht(),1);var aE={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function Cs(e,t,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(aE).join(" / ");throw new z(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let o=aE[i],s=(0,cE.default)(e,t,r,n,o);return uE.default.encode64(s,null)}var Fc=N("libp2p:keychain"),yI="/pkcs8/",fE="/info/",Si=new WeakMap,Ai={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},wh={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function on(e){return e==null||typeof e!="string"?!1:e===(0,lE.default)(e.trim())&&e.length>0}async function xt(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function Br(e){return new qt(yI+e)}function Mn(e){return new qt(fE+e)}var Ri=class{constructor(t,r){if(this.components=t,this.init=Ge(wh,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Ai.minKeyLength)throw new Error(`dek.keyLength must be least ${Ai.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Ai.minSaltLength)throw new Error(`dek.saltLength must be least ${Ai.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Ai.minIterationCount)throw new Error(`dek.iterationCount must be least ${Ai.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?Cs(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Si.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},wh),r=Math.ceil(Ai.minSaltLength/3)*3;return t.dek.salt=Y(Gr(r),"base64"),t}static get options(){return wh}async createKey(t,r,n=2048){if(!on(t)||t==="self")throw await xt(),(0,ht.default)(new Error("Invalid key name"),st.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await xt(),(0,ht.default)(new Error("Invalid key type"),st.ERR_INVALID_KEY_TYPE);let i=Br(t);if(await this.components.datastore.has(i))throw await xt(),(0,ht.default)(new Error("Key name already exists"),st.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await xt(),(0,ht.default)(new Error("Invalid RSA key size"),st.ERR_INVALID_KEY_SIZE);break;default:break}let s;try{let a=await Za(r,n),c=await a.id(),u=Si.get(this);if(u==null)throw(0,ht.default)(new Error("dek missing"),st.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);s={name:t,id:c};let d=this.components.datastore.batch();d.put(i,K(f)),d.put(Mn(t),K(JSON.stringify(s))),await d.commit()}catch(a){throw await xt(),a}return s}async listKeys(){let t={prefix:fE},r=[];for await(let n of this.components.datastore.query(t))r.push(JSON.parse(Y(n.value)));return r}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw(0,ht.default)(new Error(`Key with id '${t}' does not exist.`),st.ERR_KEY_NOT_FOUND);return n}catch(r){throw await xt(),r}}async findKeyByName(t){if(!on(t))throw await xt(),(0,ht.default)(new Error(`Invalid key name '${t}'`),st.ERR_INVALID_KEY_NAME);let r=Mn(t);try{let n=await this.components.datastore.get(r);return JSON.parse(Y(n))}catch(n){throw await xt(),Fc.error(n),(0,ht.default)(new Error(`Key '${t}' does not exist.`),st.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!on(t)||t==="self")throw await xt(),(0,ht.default)(new Error(`Invalid key name '${t}'`),st.ERR_INVALID_KEY_NAME);let r=Br(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(r),i.delete(Mn(t)),await i.commit(),n}async renameKey(t,r){if(!on(t)||t==="self")throw await xt(),(0,ht.default)(new Error(`Invalid old key name '${t}'`),st.ERR_OLD_KEY_NAME_INVALID);if(!on(r)||r==="self")throw await xt(),(0,ht.default)(new Error(`Invalid new key name '${r}'`),st.ERR_NEW_KEY_NAME_INVALID);let n=Br(t),i=Br(r),o=Mn(t),s=Mn(r);if(await this.components.datastore.has(i))throw await xt(),(0,ht.default)(new Error(`Key '${r}' already exists`),st.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(o),l=JSON.parse(Y(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(s,K(JSON.stringify(l))),f.delete(n),f.delete(o),await f.commit(),l}catch(c){throw await xt(),c}}async exportKey(t,r){if(!on(t))throw await xt(),(0,ht.default)(new Error(`Invalid key name '${t}'`),st.ERR_INVALID_KEY_NAME);if(r==null)throw await xt(),(0,ht.default)(new Error("Password is required"),st.ERR_PASSWORD_REQUIRED);let n=Br(t);try{let i=await this.components.datastore.get(n),o=Y(i),s=Si.get(this);if(s==null)throw(0,ht.default)(new Error("dek missing"),st.ERR_INVALID_PARAMETERS);let a=s.dek;return await(await us(o,a)).export(r)}catch(i){throw await xt(),i}}async exportPeerId(t){let r="temporary-password",n=await this.exportKey(t,r),i=await us(n,r);return await Cn(i.public.bytes,i.bytes)}async importKey(t,r,n){if(!on(t)||t==="self")throw await xt(),(0,ht.default)(new Error(`Invalid key name '${t}'`),st.ERR_INVALID_KEY_NAME);if(r==null)throw await xt(),(0,ht.default)(new Error("PEM encoded key is required"),st.ERR_PEM_REQUIRED);let i=Br(t);if(await this.components.datastore.has(i))throw await xt(),(0,ht.default)(new Error(`Key '${t}' already exists`),st.ERR_KEY_ALREADY_EXISTS);let s;try{s=await us(r,n)}catch{throw await xt(),(0,ht.default)(new Error("Cannot read the key, most likely the password is wrong"),st.ERR_CANNOT_READ_KEY)}let a;try{a=await s.id();let l=Si.get(this);if(l==null)throw(0,ht.default)(new Error("dek missing"),st.ERR_INVALID_PARAMETERS);let f=l.dek;r=await s.export(f)}catch(l){throw await xt(),l}let c={name:t,id:a},u=this.components.datastore.batch();return u.put(i,K(r)),u.put(Mn(t),K(JSON.stringify(c))),await u.commit(),c}async importPeer(t,r){try{if(!on(t))throw(0,ht.default)(new Error(`Invalid key name '${t}'`),st.ERR_INVALID_KEY_NAME);if(r==null)throw(0,ht.default)(new Error("PeerId is required"),st.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw(0,ht.default)(new Error("PeerId.privKey is required"),st.ERR_MISSING_PRIVATE_KEY);let n=await fo(r.privateKey),i=Br(t);if(await this.components.datastore.has(i))throw await xt(),(0,ht.default)(new Error(`Key '${t}' already exists`),st.ERR_KEY_ALREADY_EXISTS);let s=Si.get(this);if(s==null)throw(0,ht.default)(new Error("dek missing"),st.ERR_INVALID_PARAMETERS);let a=s.dek,c=await n.export(a),u={name:t,id:r.toString()},l=this.components.datastore.batch();return l.put(i,K(c)),l.put(Mn(t),K(JSON.stringify(u))),await l.commit(),u}catch(n){throw await xt(),n}}async getPrivateKey(t){if(!on(t))throw await xt(),(0,ht.default)(new Error(`Invalid key name '${t}'`),st.ERR_INVALID_KEY_NAME);try{let r=Br(t),n=await this.components.datastore.get(r);return Y(n)}catch(r){throw await xt(),Fc.error(r),(0,ht.default)(new Error(`Key '${t}' does not exist.`),st.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,r){if(typeof t!="string")throw await xt(),(0,ht.default)(new Error(`Invalid old pass type '${typeof t}'`),st.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await xt(),(0,ht.default)(new Error(`Invalid new pass type '${typeof r}'`),st.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await xt(),(0,ht.default)(new Error(`Invalid pass length ${r.length}`),st.ERR_INVALID_PASS_LENGTH);Fc("recreating keychain");let n=Si.get(this);if(n==null)throw(0,ht.default)(new Error("dek missing"),st.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let o=r!=null&&this.init.dek?.salt!=null?Cs(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Si.set(this,{dek:o});let s=await this.listKeys();for(let a of s){let c=await this.components.datastore.get(Br(a.name)),u=Y(c),l=await us(u,i),f=o.toString(),d=await l.export(f),h=this.components.datastore.batch(),p={name:a.name,id:a.id};h.put(Br(a.name),K(d)),h.put(Mn(a.name),K(JSON.stringify(p))),await h.commit()}Fc("keychain reconstructed")}};var To=T(dt(),1);var Eh=class extends Map{constructor(t){super();let{name:r,metrics:n}=t;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(t,r){return super.set(t,r),this.updateComponentMetric(),this}delete(t){let r=super.delete(t);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Ds(e){let{name:t,metrics:r}=e,n;return r!=null?n=new Eh({name:t,metrics:r}):n=new Map,n}var Ii=N("libp2p:transports"),Kc=class extends Rt{constructor(t,r={}){super(),this.components=t,this.started=!1,this.transports=new Map,this.listeners=Ds({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??On.FATAL_ALL}add(t){let r=t[Symbol.toStringTag];if(r==null)throw(0,To.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(r))throw(0,To.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);Ii("adding transport %s",r),this.transports.set(r,t),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}async start(){let t=this.components.addressManager.getListenAddrs();await this.listen(t),this.started=!0}async stop(){let t=[];for(let[r,n]of this.listeners)for(Ii("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),Ii("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(t,r){let n=this.transportForMultiaddr(t);if(n==null)throw(0,To.default)(new Error(`No transport available for address ${String(t)}`),b.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=b.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let r of this.listeners.values())for(let n of r)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(t){for(let r of this.transports.values())if(r.filter([t]).length>0)return r}async listen(t){if(t==null||t.length===0){Ii("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let o=i.filter(t),s=[];for(let u of o){Ii("creating listener for %s on %s",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n);f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.dispatchEvent(new $("listener:listening",{detail:l}))}),l.addEventListener("close",()=>{this.dispatchEvent(new $("listener:close",{detail:l}))}),s.push(l.listen(u))}if(s.length===0){r.push(n);continue}if((await Promise.allSettled(s)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==On.NO_FATAL)throw(0,To.default)(new Error(`Transport (${n}) could not listen on any available address`),b.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===On.FATAL_ALL)throw(0,To.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);Ii(`libp2p in dial mode only: ${n}`)}}async remove(t){Ii("removing %s",t);for(let r of this.listeners.get(t)??[])await r.close();this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let r of this.transports.keys())t.push(this.remove(r));await Promise.all(t)}};var ae=T(dt(),1);var sn="/multistream/1.0.0";var mE=T(dt(),1);var xh=T(dt(),1);var wI=N("libp2p:mss"),hE=K(`
49
- `);function Bs(e){let t=new Vt(e,hE);return $e.single(t)}function Ti(e,t,r={}){let n=Bs(t);r.writeBytes===!0?e.push(n.subarray()):e.push(n)}function dE(e,t,r={}){let n=new Vt;for(let i of t)n.append(Bs(i));r.writeBytes===!0?e.push(n.subarray()):e.push(n)}async function EI(e,t){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await e.next(r)},i=n;t?.signal!=null&&(i=_i(n,t.signal));let s=await Jt(i,Ne({onLength:a=>{r=a},maxDataLength:1024}),async a=>await ke(a));if(s==null||s.length===0)throw(0,xh.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(s.get(s.byteLength-1)!==hE[0])throw wI.error("Invalid mss message - missing newline - %s",s.subarray()),(0,xh.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return s.sublist(0,-1)}async function Co(e,t){let r=await EI(e,t);return Y(r.subarray())}var Ls=N("libp2p:mss:select");async function Ps(e,t,r={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:o,stream:s}=go(e),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Ls('select: write ["%s", "%s"]',sn,a);let c=K(sn),u=K(a);dE(i,[c,u],r);let l=await Co(n,r);if(Ls('select: read "%s"',l),l===sn&&(l=await Co(n,r),Ls('select: read "%s"',l)),l===a)return o(),{stream:s,protocol:a};for(let f of t){Ls('select: write "%s"',f),Ti(i,K(f),r);let d=await Co(n,r);if(Ls('select: read "%s" for "%s"',d,f),d===f)return o(),{stream:s,protocol:f}}throw o(),(0,mE.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Ns=N("libp2p:mss:handle");async function ks(e,t,r){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:o,stream:s}=go(e);for(;;){let a=await Co(i,r);if(Ns('read "%s"',a),a===sn){Ns('respond with "%s" for "%s"',sn,a),Ti(n,K(sn),r);continue}if(t.includes(a))return Ti(n,K(a),r),Ns('respond with "%s" for "%s"',a,a),o(),{stream:s,protocol:a};if(a==="ls"){Ti(n,new Vt(...t.map(c=>Bs(K(c)))),r),Ns('respond with "%s" for %s',t,a);continue}Ti(n,K("na"),r),Ns('respond with "na" for "%s"',a)}}var vh=T(dt(),1);var yE=Symbol.for("@libp2p/connection");var vI=N("libp2p:connection"),bh=class{constructor(t){let{remoteAddr:r,remotePeer:n,newStream:i,close:o,getStreams:s,stat:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.stat={...a,status:Ic},this._newStream=i,this._close=o,this._getStreams=s,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[yE](){return!0}get streams(){return this._getStreams()}async newStream(t,r){if(this.stat.status===Zf)throw(0,vh.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Tc)throw(0,vh.default)(new Error("the connection is closed"),"ERR_CONNECTION_CLOSED");Array.isArray(t)||(t=[t]);let n=await this._newStream(t,r);return n.stat.direction="outbound",n}addStream(t){t.stat.direction="inbound"}removeStream(t){}async close(){if(!(this.stat.status===Tc||this._closing)){this.stat.status=Zf;try{this.streams.forEach(t=>t.close())}catch(t){vI.error(t)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Tc}}};function gE(e){return new bh(e)}var Vc=T(dt(),1);var bI=Symbol.for("@libp2p/topology");function wE(e){return e!=null&&Boolean(e[bI])}var _h=N("libp2p:registrar"),Sh=32,Ah=64,qc=class{constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onProtocolChange=this._onProtocolChange.bind(this),this._onConnect=this._onConnect.bind(this),this.components.connectionManager.addEventListener("peer:disconnect",this._onDisconnect),this.components.connectionManager.addEventListener("peer:connect",this._onConnect),this.components.peerStore.addEventListener("change:protocols",this._onProtocolChange)}getProtocols(){return Array.from(new Set([...this.topologies.keys(),...this.handlers.keys()])).sort()}getHandler(t){let r=this.handlers.get(t);if(r==null)throw(0,Vc.default)(new Error(`No handler registered for protocol ${t}`),b.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(t){let r=this.topologies.get(t);return r==null?[]:[...r.values()]}async handle(t,r,n){if(this.handlers.has(t))throw(0,Vc.default)(new Error(`Handler already registered for protocol ${t}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Ge.bind({ignoreUndefined:!0})({maxInboundStreams:Sh,maxOutboundStreams:Ah},n);this.handlers.set(t,{handler:r,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[t])}async unhandle(t){let r=Array.isArray(t)?t:[t];r.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,r)}async register(t,r){if(!wE(r))throw _h.error("topology must be an instance of interfaces/topology"),(0,Vc.default)(new Error("topology must be an instance of interfaces/topology"),b.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,r),await r.setRegistrar(this),n}unregister(t){for(let[r,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(r))}_onDisconnect(t){let r=t.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onDisconnect(r.remotePeer)}}).catch(n=>{_h.error(n)})}_onConnect(t){let r=t.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let o=this.topologies.get(i);if(o!=null)for(let s of o.values())s.onConnect(r.remotePeer,r)}}).catch(n=>{_h.error(n)})}_onProtocolChange(t){let{peerId:r,protocols:n,oldProtocols:i}=t.detail,o=i.filter(a=>!n.includes(a)),s=n.filter(a=>!i.includes(a));for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let u of c.values())u.onDisconnect(r)}for(let a of s){let c=this.topologies.get(a);if(c!=null)for(let u of c.values()){let l=this.components.connectionManager.getConnections(r)[0];l!=null&&u.onConnect(r,l)}}}};var Rh=T(Ln(),1);var Ih=T(rn(),1),It=N("libp2p:upgrader");function _I(e,t){try{let{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Sh}function SI(e,t){try{let{options:r}=t.getHandler(e);return r.maxOutboundStreams}catch(r){if(r.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Ah}function EE(e,t,r){let n=0;return r.streams.forEach(i=>{i.stat.direction===t&&i.stat.protocol===e&&n++}),n}var zc=class extends Rt{constructor(t,r){super(),this.components=t,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout}async upgradeInbound(t,r){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw(0,ae.default)(new Error("connection denied"),b.ERR_CONNECTION_DENIED);let i,o,s,a,c,u=new Rh.TimeoutController(this.inboundUpgradeTimeout);try{(0,Ih.setMaxListeners)?.(1/0,u.signal)}catch{}try{let l=fr(t,u.signal);if(t.source=l.source,t.sink=l.sink,await this.components.connectionGater.denyInboundConnection(t))throw(0,ae.default)(new Error("The multiaddr connection is blocked by gater.acceptConnection"),b.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),It("starting the inbound connection upgrade");let f=t;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(It("protecting the inbound connection"),f=await d.protect(t))}try{if(i=f,r?.skipEncryption!==!0){if({conn:i,remotePeer:o,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection(o,{...f,...i}))throw(0,ae.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{let d=t.remoteAddr.getPeerId();if(d==null)throw(0,ae.default)(new Error("inbound connection that skipped encryption must have a peer id"),b.ERR_INVALID_MULTIADDR);let h=tt(d);c="native",o=h}if(s=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,s=d.stream}}catch(d){throw It.error("Failed to upgrade inbound connection",d),d}if(await this.components.connectionGater.denyInboundUpgradedConnection(o,{...f,...i}))throw(0,ae.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return It("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:s,muxerFactory:a,remotePeer:o})}finally{this.components.connectionManager.afterUpgradeInbound(),u.clear()}}async upgradeOutbound(t,r){let n=t.remoteAddr.getPeerId(),i;if(n!=null&&(i=tt(n),await this.components.connectionGater.denyOutboundConnection(i,t)))throw(0,ae.default)(new Error("The multiaddr connection is blocked by connectionGater.denyOutboundConnection"),b.ERR_CONNECTION_INTERCEPTED);let o,s,a,c,u;this.components.metrics?.trackMultiaddrConnection(t),It("Starting the outbound connection upgrade");let l=t;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(t))}try{if(o=l,r?.skipEncryption!==!0){if({conn:o,remotePeer:s,protocol:c}=await this._encryptOutbound(l,i),await this.components.connectionGater.denyOutboundEncryptedConnection(s,{...l,...o}))throw(0,ae.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw(0,ae.default)(new Error("Encryption was skipped but no peer id was passed"),b.ERR_INVALID_PEER);c="native",s=i}if(a=o,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...o},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw It.error("Failed to upgrade outbound connection",f),await t.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection(s,{...l,...o}))throw(0,ae.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return It("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:u,remotePeer:s})}_createConnection(t){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:o,remotePeer:s,muxerFactory:a}=t,c,u,l;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:h=>{l!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:m,protocol:y}=await ks(h,p);if(It("%s: incoming stream opened on %s",n,y),l==null)return;let g=_I(y,this.components.registrar);if(EE(y,"inbound",l)===g){h.abort((0,ae.default)(new Error(`Too many inbound protocol streams for protocol "${y}" - limit ${g}`),b.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}h.source=m.source,h.sink=m.sink,h.stat.protocol=y,this.components.peerStore.protoBook.add(s,[y]).catch(_=>It.error(_)),l.addStream(h),this.components.metrics?.trackProtocolStream(h,l),this._onStream({connection:l,stream:h,protocol:y})}).catch(p=>{It.error(p),h.stat.timeline.close==null&&h.close()})},onStreamEnd:h=>{l?.removeStream(h.id)}}),u=async(h,p={})=>{if(c==null)throw(0,ae.default)(new Error("Stream is not multiplexed"),b.ERR_MUXER_UNAVAILABLE);It("%s: starting new stream on %s",n,h);let m=await c.newStream(),y;try{if(p.signal==null){It("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h),y=new Rh.TimeoutController(3e4),p.signal=y.signal;try{(0,Ih.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:E}=await Ps(m,h,p),_=SI(E,this.components.registrar);if(EE(E,"outbound",l)===_){let C=(0,ae.default)(new Error(`Too many outbound protocol streams for protocol "${E}" - limit ${_}`),b.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw m.abort(C),C}return this.components.peerStore.protoBook.add(s,[E]).catch(C=>It.error(C)),m.source=g.source,m.sink=g.sink,m.stat.protocol=E,this.components.metrics?.trackProtocolStream(m,l),m}catch(g){throw It.error("could not create new stream",g),m.stat.timeline.close==null&&m.close(),g.code!=null?g:(0,ae.default)(g,b.ERR_UNSUPPORTED_PROTOCOL)}finally{y?.clear()}},Promise.all([c.sink(o.source),o.sink(c.source)]).catch(h=>{It.error(h)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...h)=>(l!=null&&h[1]==="close"&&h[2]!=null&&f.close==null&&(async()=>{try{l.stat.status==="OPEN"&&await l.close()}catch(p){It.error(p)}finally{this.dispatchEvent(new $("connectionEnd",{detail:l}))}})().catch(p=>{It.error(p)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let d=()=>{throw(0,ae.default)(new Error("connection is not multiplexed"),b.ERR_CONNECTION_NOT_MULTIPLEXED)};return l=gE({remoteAddr:i.remoteAddr,remotePeer:s,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:r},newStream:u??d,getStreams:()=>c!=null?c.streams:d(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new $("connection",{detail:l})),l}_onStream(t){let{connection:r,stream:n,protocol:i}=t,{handler:o}=this.components.registrar.getHandler(i);o({connection:r,stream:n})}async _encryptInbound(t){let r=Array.from(this.connectionEncryption.keys());It("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await ks(t,r,{writeBytes:!0}),o=this.connectionEncryption.get(i);if(o==null)throw new Error(`no crypto module found for ${i}`);return It("encrypting inbound connection..."),{...await o.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw(0,ae.default)(n,b.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,r){let n=Array.from(this.connectionEncryption.keys());It("selecting outbound crypto protocol",n);try{let{stream:i,protocol:o}=await Ps(t,n,{writeBytes:!0}),s=this.connectionEncryption.get(o);if(s==null)throw new Error(`no crypto module found for ${o}`);return It("encrypting outbound connection to %p",r),{...await s.secureOutbound(this.components.peerId,i,r),protocol:o}}catch(i){throw(0,ae.default)(i,b.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,r){let n=Array.from(r.keys());It("outbound selecting muxer %s",n);try{let{stream:i,protocol:o}=await Ps(t,n,{writeBytes:!0});It("%s selected as muxer protocol",o);let s=r.get(o);return{stream:i,muxerFactory:s}}catch(i){throw It.error("error multiplexing outbound stream",i),(0,ae.default)(i,b.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,r){let n=Array.from(r.keys());It("inbound handling muxers %s",n);try{let{stream:i,protocol:o}=await ks(t,n,{writeBytes:!0}),s=r.get(o);return{stream:i,muxerFactory:s}}catch(i){throw It.error("error multiplexing inbound stream",i),(0,ae.default)(i,b.ERR_MUXER_UNAVAILABLE)}}};var Di=T(dt(),1);var Ci;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.protocolVersion!=null&&(n.uint32(42),n.string(r.protocolVersion)),r.agentVersion!=null&&(n.uint32(50),n.string(r.agentVersion)),r.publicKey!=null&&(n.uint32(10),n.bytes(r.publicKey)),r.listenAddrs!=null)for(let o of r.listenAddrs)n.uint32(18),n.bytes(o);if(r.observedAddr!=null&&(n.uint32(34),n.bytes(r.observedAddr)),r.protocols!=null)for(let o of r.protocols)n.uint32(26),n.string(o);r.signedPeerRecord!=null&&(n.uint32(66),n.bytes(r.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={listenAddrs:[],protocols:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 5:i.protocolVersion=r.string();break;case 6:i.agentVersion=r.string();break;case 1:i.publicKey=r.bytes();break;case 2:i.listenAddrs.push(r.bytes());break;case 4:i.observedAddr=r.bytes();break;case 3:i.protocols.push(r.string());break;case 8:i.signedPeerRecord=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(Ci||(Ci={}));var $c="0.0.0",xE="libp2p";var Th=`js-libp2p/${$c}`;var vE="0.1.0",bE="id",_E="id/push",SE="1.0.0",AE="1.0.0";var Os=T(Ln(),1);var Ms=T(rn(),1),St=N("libp2p:identify"),RE=1024*8,Do=class{constructor(t,r){this.components=t,this.started=!1,this.init=r,this.identifyProtocolStr=`/${r.protocolPrefix}/${bE}/${SE}`,this.identifyPushProtocolStr=`/${r.protocolPrefix}/${_E}/${AE}`,this.host={protocolVersion:`${r.protocolPrefix}/${vE}`,...r.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(St.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>St.error(o))}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(o=>St.error(o))})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",K(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",K(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,t=>{this._handleIdentify(t).catch(r=>{St.error(r)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,t=>{this._handlePush(t).catch(r=>{St.error(r)})},{maxInboundStreams:this.init.maxPushIncomingStreams,maxOutboundStreams:this.init.maxPushOutgoingStreams}),this.started=!0)}async stop(){await this.components.registrar.unhandle(this.identifyProtocolStr),await this.components.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async push(t){let r=await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId),n=this.components.addressManager.getAddresses().map(s=>s.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),o=t.map(async s=>{let a,c=new Os.TimeoutController(this.init.timeout);try{(0,Ms.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await s.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await fr(a,c.signal).sink(Jt([Ci.encode({listenAddrs:n,signedPeerRecord:r,protocols:i})],$e()))}catch(u){St.error("could not push identify update to peer",u)}finally{a?.close(),c.clear()}});await Promise.all(o)}async pushToPeerStore(){if(!this.isStarted())return;let t=[];for(let r of this.components.connectionManager.getConnections()){let n=r.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&t.push(r)}await this.push(t)}async _identify(t,r={}){let n,i=r.signal,o;if(i==null){n=new Os.TimeoutController(this.init.timeout),i=n.signal;try{(0,Ms.setMaxListeners)?.(1/0,n.signal)}catch{}}try{o=await t.newStream([this.identifyProtocolStr],{signal:i});let s=fr(o,i),a=await Jt([],s,Ne({maxDataLength:this.init.maxIdentifyMessageSize??RE}),async c=>await ke(c));if(a==null)throw(0,Di.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return Ci.decode(a)}catch(c){throw(0,Di.default)(c,b.ERR_INVALID_MESSAGE)}}finally{n?.clear(),o?.close()}}async identify(t,r={}){let n=await this._identify(t,r),{publicKey:i,listenAddrs:o,protocols:s,observedAddr:a,signedPeerRecord:c,agentVersion:u,protocolVersion:l}=n;if(i==null)throw(0,Di.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await Cn(i);if(!t.remotePeer.equals(f))throw(0,Di.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,Di.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let d=Do.getCleanMultiaddr(a);if(c!=null){St("received signed peer record from %p",f);try{let h=await Wt.openAndCertify(c,te.DOMAIN);if(!h.peerId.equals(f))throw(0,Di.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(h)){await this.components.peerStore.protoBook.set(f,s),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",K(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",K(l)),St("identify completed for peer %p and protocols %o",f,s);return}}catch(h){St("received invalid envelope, discard it and fallback to listenAddrs is available",h)}}else St("no signed peer record received from %p",f);St("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,o.map(h=>Z(h)))}catch(h){St.error("received invalid addrs",h)}await this.components.peerStore.protoBook.set(f,s),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",K(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",K(l)),St("identify completed for peer %p and protocols %o",f,s),St("received observed address of %s",d?.toString())}async _handleIdentify(t){let{connection:r,stream:n}=t,i=new Os.TimeoutController(this.init.timeout);try{(0,Ms.setMaxListeners)?.(1/0,i.signal)}catch{}try{let o=this.components.peerId.publicKey??new Uint8Array(0),s=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(d=>d.decapsulateCode(wt("p2p").code)),c=s.peerRecordEnvelope;if(a.length>0&&c==null){let d=new te({peerId:this.components.peerId,multiaddrs:a}),h=await Wt.seal(d,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(h),c=h.marshal().subarray()}let u=Ci.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:o,listenAddrs:a.map(d=>d.bytes),signedPeerRecord:c,observedAddr:r.remoteAddr.bytes,protocols:s.protocols}),l=fr(n,i.signal),f=Jt([u],$e());await l.sink(f)}catch(o){St.error("could not respond to identify request",o)}finally{n.close(),i.clear()}}async _handlePush(t){let{connection:r,stream:n}=t,i=new Os.TimeoutController(this.init.timeout);try{(0,Ms.setMaxListeners)?.(1/0,i.signal)}catch{}let o;try{let a=fr(n,i.signal),c=await Jt([],a,Ne({maxDataLength:this.init.maxIdentifyMessageSize??RE}),async u=>await ke(u));c!=null&&(o=Ci.decode(c))}catch(a){return St.error("received invalid message",a)}finally{n.close(),i.clear()}if(o==null)return St.error("received invalid message");let s=r.remotePeer;if(this.components.peerId.equals(s)){St("received push from ourselves?");return}if(St("received push from %p",s),o.signedPeerRecord!=null){St("received signedPeerRecord in push");try{let a=await Wt.openAndCertify(o.signedPeerRecord,te.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){St("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(s,o.protocols);return}else St("failed to consume signedPeerRecord sent in push")}catch(a){St("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else St("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(s,o.listenAddrs.map(a=>Z(a)))}catch(a){St.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(s,o.protocols)}catch(a){St.error("received invalid protocols",a)}St("handled push from %p",s)}static getCleanMultiaddr(t){if(t!=null&&t.length>0)try{return Z(t)}catch{}}};var Bo=T(dt(),1);var Us;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identifier!=="")&&(n.uint32(10),n.string(r.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identifier:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identifier=r.string();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(Us||(Us={}));var hr;(function(e){let t;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(t=e.StatusCode||(e.StatusCode={}));let r;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(r||(r={})),function(i){i.codec=()=>qr(r)}(t=e.StatusCode||(e.StatusCode={}));let n;e.codec=()=>(n==null&&(n=Mt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),(s.writeDefaults===!0||i.status!=null&&r[i.status]!==0)&&(o.uint32(8),e.StatusCode.codec().encode(i.status,o)),(s.writeDefaults===!0||i.data!=null&&i.data.byteLength>0)&&(o.uint32(18),o.bytes(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={status:t.OK,data:new Uint8Array(0)},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.status=e.StatusCode.codec().decode(i);break;case 2:s.data=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>Ot(i,e.codec()),e.decode=i=>kt(i,e.codec())})(hr||(hr={}));var IE="0.0.1",TE="fetch";var CE=T(Ln(),1),DE=T(rn(),1);var Qe=N("libp2p:fetch"),Hc=class{constructor(t,r){this.started=!1,this.components=t,this.protocol=`/${r.protocolPrefix??"libp2p"}/${TE}/${IE}`,this.lookupFunctions=new Map,this.handleMessage=this.handleMessage.bind(this),this.init=r}async start(){await this.components.registrar.handle(this.protocol,t=>{this.handleMessage(t).catch(r=>{Qe.error(r)}).finally(()=>{t.stream.close()})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}async fetch(t,r,n={}){Qe("dialing %s to %p",this.protocol,t);let i=await this.components.connectionManager.openConnection(t,n),o,s=n.signal,a;if(s==null){Qe("using default timeout of %d ms",this.init.timeout),o=new CE.TimeoutController(this.init.timeout),s=o.signal;try{(0,DE.setMaxListeners)?.(1/0,o.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:s});let c=fr(a,s);return Qe("fetch %s",r),await Jt([Us.encode({identifier:r})],$e(),c,Ne(),async function(l){let f=await ke(l);if(f==null)throw(0,Bo.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let d=hr.decode(f);switch(d.status){case hr.StatusCode.OK:return Qe("received status for %s ok",r),d.data;case hr.StatusCode.NOT_FOUND:return Qe("received status for %s not found",r),null;case hr.StatusCode.ERROR:{Qe("received status for %s error",r);let h=Y(d.data);throw(0,Bo.default)(new Error("Error in fetch protocol response: "+h),b.ERR_INVALID_PARAMETERS)}default:throw Qe("received status for %s unknown",r),(0,Bo.default)(new Error("Unknown response status"),b.ERR_INVALID_MESSAGE)}})??null}finally{o?.clear(),a?.close()}}async handleMessage(t){let{stream:r}=t,n=this;await Jt(r,Ne(),async function*(i){let o=await ke(i);if(o==null)throw(0,Bo.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let s=Us.decode(o),a,c=n._getLookupFunction(s.identifier);if(c!=null){Qe("look up data with identifier %s",s.identifier);let u=await c(s.identifier);u!=null?(Qe("sending status for %s ok",s.identifier),a={status:hr.StatusCode.OK,data:u}):(Qe("sending status for %s not found",s.identifier),a={status:hr.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{Qe("sending status for %s error",s.identifier);let u=K(`No lookup function registered for key: ${s.identifier}`);a={status:hr.StatusCode.ERROR,data:u}}yield hr.encode(a)},$e(),r)}_getLookupFunction(t){for(let r of this.lookupFunctions.keys())if(t.startsWith(r))return this.lookupFunctions.get(r)}registerLookupFunction(t,r){if(this.lookupFunctions.has(t))throw(0,Bo.default)(new Error("Fetch protocol handler for key prefix '"+t+"' already registered"),b.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(t,r)}unregisterLookupFunction(t,r){r!=null&&this.lookupFunctions.get(t)!==r||this.lookupFunctions.delete(t)}};var NE=T(dt(),1);var BE="1.0.0",LE="ping";var kE=T(Ln(),1),OE=T(rn(),1),PE=N("libp2p:ping"),Gc=class{constructor(t,r){this.components=t,this.started=!1,this.protocol=`/${r.protocolPrefix}/${LE}/${BE}`,this.init=r}async start(){await this.components.registrar.handle(this.protocol,this.handleMessage,{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),this.started=!0}async stop(){await this.components.registrar.unhandle(this.protocol),this.started=!1}isStarted(){return this.started}handleMessage(t){let{stream:r}=t;Jt(r,r).catch(n=>{PE.error(n)})}async ping(t,r={}){PE("dialing %s to %p",this.protocol,t);let n=Date.now(),i=Gr(32),o=await this.components.connectionManager.openConnection(t,r),s,a=r.signal,c;if(a==null){s=new kE.TimeoutController(this.init.timeout),a=s.signal;try{(0,OE.setMaxListeners)?.(1/0,s.signal)}catch{}}try{c=await o.newStream([this.protocol],{signal:a});let u=fr(c,a),l=await Jt([i],u,async d=>await ke(d)),f=Date.now();if(l==null||!bt(i,l.subarray()))throw(0,NE.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{s?.clear(),c?.close()}}};async function ME(){throw new Error("Not supported in browsers")}var KE=T(FE(),1),Ch=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Yc=(0,KE.default)(),Fs=Ch&&!Yc,VE=Yc&&!Ch,qE=Yc&&Ch,zE=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Yc,$E=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,iO=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",HE=typeof navigator<"u"&&navigator.product==="ReactNative";var WE=T(dt(),1);function GE(e){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(e)||/^::1$/.test(e)}function YE(e){let{address:t}=e.nodeAddress();return GE(t)}var Dh=N("libp2p:nat"),Bh=7200;function TI(e=1024,t=65535){return Math.floor(Math.random()*(t-e+1)+e)}var Wc=class{constructor(t,r){if(this.components=t,this.started=!1,this.enabled=r.enabled,this.externalAddress=r.externalAddress,this.localAddress=r.localAddress,this.description=r.description??`${xE}@${$c} ${this.components.peerId.toString()}`,this.ttl=r.ttl??Bh,this.keepAlive=r.keepAlive??!0,this.gateway=r.gateway,this.ttl<Bh)throw(0,WE.default)(new Error(`NatManager ttl should be at least ${Bh} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Fs||!this.enabled||this.started||(this.started=!0,this._start().catch(t=>{Dh.error(t)}))}async _start(){let t=this.components.transportManager.getAddrs();for(let r of t){let{family:n,host:i,port:o,transport:s}=r.toOptions();if(!r.isThinWaistAddress()||s!=="tcp"||YE(r)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),u=fa(c);if(u===!0)throw new Error(`${c} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`);if(u==null)throw new Error(`${c} is not an IP address`);let l=TI();Dh(`opening uPnP connection from ${c}:${l} to ${i}:${o}`),await a.map({publicPort:l,localPort:o,localAddress:this.localAddress,protocol:s.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(eg({family:4,address:c,port:l},s))}}async _getClient(){return this.client!=null?this.client:(this.client=await ME({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Fs||this.client==null))try{await this.client.close(),this.client=void 0}catch(t){Dh.error(t)}}};var CI=N("libp2p:peer-record-updater"),Qc=class{constructor(t){this.components=t,this.started=!1,this.update=this.update.bind(this)}isStarted(){return this.started}async start(){this.started=!0,this.components.transportManager.addEventListener("listener:listening",this.update),this.components.transportManager.addEventListener("listener:close",this.update),this.components.addressManager.addEventListener("change:addresses",this.update)}async stop(){this.started=!1,this.components.transportManager.removeEventListener("listener:listening",this.update),this.components.transportManager.removeEventListener("listener:close",this.update),this.components.addressManager.removeEventListener("change:addresses",this.update)}update(){Promise.resolve().then(async()=>{let t=new te({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(wt("p2p").code))}),r=await Wt.seal(t,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(r)}).catch(t=>{CI.error("Could not update self peer record: %o",t)})}};var QE=T(dt(),1);var Xc=class{constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw(0,QE.default)(new Error(J.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}};var Q={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};var vt=N("libp2p:peer-store:address-book"),Zc="change:multiaddrs";async function DI(){return!0}var Jc=class{constructor(t,r,n){this.dispatchEvent=t,this.store=r,this.addressFilter=n??DI}async consumePeerRecord(t){vt.trace("consumePeerRecord await write lock");let r=await this.store.lock.writeLock();vt.trace("consumePeerRecord got write lock");let n,i,o;try{let s;try{s=te.createFromProtobuf(t.payload)}catch{return vt.error("invalid peer record received"),!1}n=s.peerId;let a=s.multiaddrs;if(!n.equals(t.peerId))return vt("signing key does not match PeerId in the PeerRecord"),!1;if(a==null||a.length===0)return!1;if(await this.store.has(n)&&(i=await this.store.load(n),i.peerRecordEnvelope!=null)){let u=await Wt.createFromProtobuf(i.peerRecordEnvelope),l=te.createFromProtobuf(u.payload);if(l.seqNumber>=s.seqNumber)return vt("sequence number was lower or equal to existing sequence number - stored: %d received: %d",l.seqNumber,s.seqNumber),!1}let c=await Lh(n,a,this.addressFilter,!0);o=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:t.marshal().subarray()}),vt("stored provided peer record for %p",s.peerId)}finally{vt.trace("consumePeerRecord release write lock"),r()}return this.dispatchEvent(new $(Zc,{detail:{peerId:n,multiaddrs:o.addresses.map(({multiaddr:s})=>s),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:s})=>s)}})),!0}async getRawEnvelope(t){vt.trace("getRawEnvelope await read lock");let r=await this.store.lock.readLock();vt.trace("getRawEnvelope got read lock");try{return(await this.store.load(t)).peerRecordEnvelope}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{vt.trace("getRawEnvelope release read lock"),r()}}async getPeerRecord(t){let r=await this.getRawEnvelope(t);if(r!=null)return await Wt.createFromProtobuf(r)}async get(t){t=Yt(t),vt.trace("get wait for read lock");let r=await this.store.lock.readLock();vt.trace("get got read lock");try{return(await this.store.load(t)).addresses}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{vt.trace("get release read lock"),r()}return[]}async set(t,r){if(t=Yt(t),!Array.isArray(r))throw vt.error("multiaddrs must be an array of Multiaddrs"),new z("multiaddrs must be an array of Multiaddrs",Q.ERR_INVALID_PARAMETERS);vt.trace("set await write lock");let n=await this.store.lock.writeLock();vt.trace("set got write lock");let i=!1,o,s;try{let a=await Lh(t,r,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length&&a.length===o.addresses.length)return}catch(c){if(c.code!==Q.ERR_NOT_FOUND)throw c}s=await this.store.patchOrCreate(t,{addresses:a}),vt("set multiaddrs for %p",t)}finally{vt.trace("set multiaddrs for %p",t),vt("set release write lock"),n()}this.dispatchEvent(new $(Zc,{detail:{peerId:t,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new $("peer",{detail:{id:t,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async add(t,r){if(t=Yt(t),!Array.isArray(r))throw vt.error("multiaddrs must be an array of Multiaddrs"),new z("multiaddrs must be an array of Multiaddrs",Q.ERR_INVALID_PARAMETERS);vt.trace("add await write lock");let n=await this.store.lock.writeLock();vt.trace("add got write lock");let i,o,s;try{let a=await Lh(t,r,this.addressFilter);if(a.length===0)return;try{if(o=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...o.addresses.map(({multiaddr:c})=>c.toString())]).size===o.addresses.length)return}catch(c){if(c.code!==Q.ERR_NOT_FOUND)throw c}s=await this.store.mergeOrCreate(t,{addresses:a}),vt("added multiaddrs for %p",t)}finally{vt.trace("set release write lock"),n()}this.dispatchEvent(new $(Zc,{detail:{peerId:t,multiaddrs:s.addresses.map(a=>a.multiaddr),oldMultiaddrs:o==null?[]:o.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new $("peer",{detail:{id:t,multiaddrs:s.addresses.map(a=>a.multiaddr),protocols:s.protocols}}))}async delete(t){t=Yt(t),vt.trace("delete await write lock");let r=await this.store.lock.writeLock();vt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{addresses:[]})}finally{vt.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new $(Zc,{detail:{peerId:t,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function Lh(e,t,r,n=!1){let i=[];return await Promise.all(t.map(async o=>{if(!Le(o))throw vt.error("multiaddr must be an instance of Multiaddr"),new z("multiaddr must be an instance of Multiaddr",Q.ERR_INVALID_PARAMETERS);await r(e,o)&&i.push({multiaddr:o,isCertified:n})})),i}var Lr=N("libp2p:peer-store:key-book"),XE="change:pubkey",jc=class{constructor(t,r){this.dispatchEvent=t,this.store=r}async set(t,r){if(t=Yt(t),!(r instanceof Uint8Array))throw Lr.error("publicKey must be an instance of Uint8Array to store data"),new z("publicKey must be an instance of PublicKey",Q.ERR_INVALID_PARAMETERS);Lr.trace("set await write lock");let n=await this.store.lock.writeLock();Lr.trace("set got write lock");let i=!1,o;try{try{if(o=await this.store.load(t),o.pubKey!=null&&bt(o.pubKey,r))return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}await this.store.patchOrCreate(t,{pubKey:r}),i=!0}finally{Lr.trace("set release write lock"),n()}i&&this.dispatchEvent(new $(XE,{detail:{peerId:t,publicKey:r,oldPublicKey:o?.pubKey}}))}async get(t){t=Yt(t),Lr.trace("get await write lock");let r=await this.store.lock.readLock();Lr.trace("get got write lock");try{return(await this.store.load(t)).pubKey}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{Lr("get release write lock"),r()}}async delete(t){t=Yt(t),Lr.trace("delete await write lock");let r=await this.store.lock.writeLock();Lr.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{pubKey:void 0})}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}finally{Lr.trace("delete release write lock"),r()}this.dispatchEvent(new $(XE,{detail:{peerId:t,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var re=N("libp2p:peer-store:metadata-book"),tu="change:metadata",eu=class{constructor(t,r){this.dispatchEvent=t,this.store=r}async get(t){t=Yt(t),re.trace("get await read lock");let r=await this.store.lock.readLock();re.trace("get got read lock");try{return(await this.store.load(t)).metadata}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{re.trace("get release read lock"),r()}return new Map}async getValue(t,r){t=Yt(t),re.trace("getValue await read lock");let n=await this.store.lock.readLock();re.trace("getValue got read lock");try{return(await this.store.load(t)).metadata.get(r)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}finally{re.trace("getValue release write lock"),n()}}async set(t,r){if(t=Yt(t),!(r instanceof Map))throw re.error("valid metadata must be provided to store data"),new z("valid metadata must be provided",Q.ERR_INVALID_PARAMETERS);re.trace("set await write lock");let n=await this.store.lock.writeLock();re.trace("set got write lock");let i;try{try{i=await this.store.load(t)}catch(o){if(o.code!==Q.ERR_NOT_FOUND)throw o}await this.store.mergeOrCreate(t,{metadata:r})}finally{re.trace("set release write lock"),n()}this.dispatchEvent(new $(tu,{detail:{peerId:t,metadata:r,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(t,r,n){if(t=Yt(t),typeof r!="string"||!(n instanceof Uint8Array))throw re.error("valid key and value must be provided to store data"),new z("valid key and value must be provided",Q.ERR_INVALID_PARAMETERS);re.trace("setValue await write lock");let i=await this.store.lock.writeLock();re.trace("setValue got write lock");let o,s;try{try{o=await this.store.load(t);let a=o.metadata.get(r);if(a!=null&&bt(n,a))return}catch(a){if(a.code!==Q.ERR_NOT_FOUND)throw a}s=await this.store.mergeOrCreate(t,{metadata:new Map([[r,n]])})}finally{re.trace("setValue release write lock"),i()}this.dispatchEvent(new $(tu,{detail:{peerId:t,metadata:s.metadata,oldMetadata:o==null?new Map:o.metadata}}))}async delete(t){t=Yt(t),re.trace("delete await write lock");let r=await this.store.lock.writeLock();re.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(t,{metadata:new Map})}finally{re.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new $(tu,{detail:{peerId:t,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(t,r){t=Yt(t),re.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();re.trace("deleteValue got write lock");let i,o;try{o=await this.store.load(t),i=o.metadata,i.delete(r),await this.store.patch(t,{metadata:i})}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}finally{re.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new $(tu,{detail:{peerId:t,metadata:i,oldMetadata:o==null?new Map:o.metadata}}))}};var ne=N("libp2p:peer-store:proto-book"),ru="change:protocols",nu=class{constructor(t,r){this.dispatchEvent=t,this.store=r}async get(t){ne.trace("get wait for read lock");let r=await this.store.lock.readLock();ne.trace("get got read lock");try{return(await this.store.load(t)).protocols}catch(n){if(n.code!==Q.ERR_NOT_FOUND)throw n}finally{ne.trace("get release read lock"),r()}return[]}async set(t,r){if(t=Yt(t),!Array.isArray(r))throw ne.error("protocols must be provided to store data"),new z("protocols must be provided",Q.ERR_INVALID_PARAMETERS);ne.trace("set await write lock");let n=await this.store.lock.writeLock();ne.trace("set got write lock");let i,o;try{try{if(i=await this.store.load(t),new Set([...r]).size===i.protocols.length)return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(t,{protocols:r}),ne("stored provided protocols for %p",t)}finally{ne.trace("set release write lock"),n()}this.dispatchEvent(new $(ru,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(t,r){if(t=Yt(t),!Array.isArray(r))throw ne.error("protocols must be provided to store data"),new z("protocols must be provided",Q.ERR_INVALID_PARAMETERS);ne.trace("add await write lock");let n=await this.store.lock.writeLock();ne.trace("add got write lock");let i,o;try{try{if(i=await this.store.load(t),new Set([...i.protocols,...r]).size===i.protocols.length)return}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.mergeOrCreate(t,{protocols:r}),ne("added provided protocols for %p",t)}finally{ne.trace("add release write lock"),n()}this.dispatchEvent(new $(ru,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(t,r){if(t=Yt(t),!Array.isArray(r))throw ne.error("protocols must be provided to store data"),new z("protocols must be provided",Q.ERR_INVALID_PARAMETERS);ne.trace("remove await write lock");let n=await this.store.lock.writeLock();ne.trace("remove got write lock");let i,o;try{try{i=await this.store.load(t);let s=new Set(i.protocols);for(let a of r)s.delete(a);if(i.protocols.length===s.size)return;r=Array.from(s)}catch(s){if(s.code!==Q.ERR_NOT_FOUND)throw s}o=await this.store.patchOrCreate(t,{protocols:r})}finally{ne.trace("remove release write lock"),n()}this.dispatchEvent(new $(ru,{detail:{peerId:t,protocols:o.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(t){t=Yt(t),ne.trace("delete await write lock");let r=await this.store.lock.writeLock();ne.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{protocols:[]})}finally{ne.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new $(ru,{detail:{peerId:t,protocols:[],oldProtocols:n.protocols}}))}};var $h=T(Oh(),1),g1=T(u1(),1),w1=T(Li(),1),Hh=T(zh(),1),E1=T(y1(),1);function MI(){w1.default._configure(),$h.default._configure(g1.default),Hh.default._configure(E1.default)}MI();var x1=["uint64","int64","sint64","fixed64","sfixed64"];function UI(e){for(let t of x1){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function Gh(e){return UI(new $h.default(e))}function FI(e){for(let t of x1){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function Yh(){return FI(Hh.default.create())}function Kn(e,t){let r=Gh(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function Vn(e,t){let r=Yh();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var qs;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(qs||(qs={}));function Wh(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function qn(e,t){return Wh("message",qs.LENGTH_DELIMITED,e,t)}var zs;(function(e){let t;e.codec=()=>(t==null&&(t=qn((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.addresses!=null)for(let o of r.addresses)n.uint32(10),su.codec().encode(o,n);if(r.protocols!=null)for(let o of r.protocols)n.uint32(18),n.string(o);if(r.metadata!=null)for(let o of r.metadata)n.uint32(26),au.codec().encode(o,n);r.pubKey!=null&&(n.uint32(34),n.bytes(r.pubKey)),r.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(r.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={addresses:[],protocols:[],metadata:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.addresses.push(su.codec().decode(r,r.uint32()));break;case 2:i.protocols.push(r.string());break;case 3:i.metadata.push(au.codec().decode(r,r.uint32()));break;case 4:i.pubKey=r.bytes();break;case 5:i.peerRecordEnvelope=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Vn(r,e.codec()),e.decode=r=>Kn(r,e.codec())})(zs||(zs={}));var su;(function(e){let t;e.codec=()=>(t==null&&(t=qn((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Vn(r,e.codec()),e.decode=r=>Kn(r,e.codec())})(su||(su={}));var au;(function(e){let t;e.codec=()=>(t==null&&(t=qn((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key!==""&&(n.uint32(10),n.string(r.key)),r.value!=null&&r.value.byteLength>0&&(n.uint32(18),n.bytes(r.value)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:"",value:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.key=r.string();break;case 2:i.value=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Vn(r,e.codec()),e.decode=r=>Kn(r,e.codec())})(au||(au={}));var B1=T(b1(),1);var Hs=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Xh=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},_1=e=>globalThis.DOMException===void 0?new Xh(e):new DOMException(e),S1=e=>{let t=e.reason===void 0?_1("This operation was aborted."):e.reason;return t instanceof Error?t:_1(t)};function Zh(e,t,r,n){let i,o=new Promise((s,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){s(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(S1(c)),c.addEventListener("abort",()=>{a(S1(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{s(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new Hs(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{s(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function Jh(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var Ni=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},an,Gs=class{constructor(){an.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Ni(this,an,"f")[this.size-1].priority>=r.priority){Ni(this,an,"f").push(n);return}let i=Jh(Ni(this,an,"f"),n,(o,s)=>s.priority-o.priority);Ni(this,an,"f").splice(i,0,n)}dequeue(){let t=Ni(this,an,"f").shift();return t?.run}filter(t){return Ni(this,an,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Ni(this,an,"f").length}};an=new WeakMap;var Ut=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},k=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Xt,Ws,Qs,$n,pu,Xs,uu,pr,Ys,Me,lu,Ue,Zs,zn,fu,A1,R1,C1,I1,T1,hu,jh,td,mu,D1,du,yu=class extends Error{},Lo=class extends B1.default{constructor(t){var r,n,i,o;if(super(),Xt.add(this),Ws.set(this,void 0),Qs.set(this,void 0),$n.set(this,0),pu.set(this,void 0),Xs.set(this,void 0),uu.set(this,0),pr.set(this,void 0),Ys.set(this,void 0),Me.set(this,void 0),lu.set(this,void 0),Ue.set(this,0),Zs.set(this,void 0),zn.set(this,void 0),fu.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Gs,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);Ut(this,Ws,t.carryoverConcurrencyCount,"f"),Ut(this,Qs,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Ut(this,pu,t.intervalCap,"f"),Ut(this,Xs,t.interval,"f"),Ut(this,Me,new t.queueClass,"f"),Ut(this,lu,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Ut(this,fu,t.throwOnTimeout===!0,"f"),Ut(this,zn,t.autoStart===!1,"f")}get concurrency(){return k(this,Zs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Ut(this,Zs,t,"f"),k(this,Xt,"m",mu).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:k(this,fu,"f"),...r},new Promise((n,i)=>{k(this,Me,"f").enqueue(async()=>{var o,s,a;Ut(this,Ue,(s=k(this,Ue,"f"),s++,s),"f"),Ut(this,$n,(a=k(this,$n,"f"),a++,a),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new yu("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Zh(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,k(this,Xt,"m",D1).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof Hs&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{k(this,Xt,"m",C1).call(this)}},r),this.emit("add"),k(this,Xt,"m",hu).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return k(this,zn,"f")?(Ut(this,zn,!1,"f"),k(this,Xt,"m",mu).call(this),this):this}pause(){Ut(this,zn,!0,"f")}clear(){Ut(this,Me,new(k(this,lu,"f")),"f")}async onEmpty(){k(this,Me,"f").size!==0&&await k(this,Xt,"m",du).call(this,"empty")}async onSizeLessThan(t){k(this,Me,"f").size<t||await k(this,Xt,"m",du).call(this,"next",()=>k(this,Me,"f").size<t)}async onIdle(){k(this,Ue,"f")===0&&k(this,Me,"f").size===0||await k(this,Xt,"m",du).call(this,"idle")}get size(){return k(this,Me,"f").size}sizeBy(t){return k(this,Me,"f").filter(t).length}get pending(){return k(this,Ue,"f")}get isPaused(){return k(this,zn,"f")}};Ws=new WeakMap,Qs=new WeakMap,$n=new WeakMap,pu=new WeakMap,Xs=new WeakMap,uu=new WeakMap,pr=new WeakMap,Ys=new WeakMap,Me=new WeakMap,lu=new WeakMap,Ue=new WeakMap,Zs=new WeakMap,zn=new WeakMap,fu=new WeakMap,Xt=new WeakSet,A1=function(){return k(this,Qs,"f")||k(this,$n,"f")<k(this,pu,"f")},R1=function(){return k(this,Ue,"f")<k(this,Zs,"f")},C1=function(){var t;Ut(this,Ue,(t=k(this,Ue,"f"),t--,t),"f"),k(this,Xt,"m",hu).call(this),this.emit("next")},I1=function(){k(this,Xt,"m",td).call(this),k(this,Xt,"m",jh).call(this),Ut(this,Ys,void 0,"f")},T1=function(){let t=Date.now();if(k(this,pr,"f")===void 0){let r=k(this,uu,"f")-t;if(r<0)Ut(this,$n,k(this,Ws,"f")?k(this,Ue,"f"):0,"f");else return k(this,Ys,"f")===void 0&&Ut(this,Ys,setTimeout(()=>{k(this,Xt,"m",I1).call(this)},r),"f"),!0}return!1},hu=function(){if(k(this,Me,"f").size===0)return k(this,pr,"f")&&clearInterval(k(this,pr,"f")),Ut(this,pr,void 0,"f"),this.emit("empty"),k(this,Ue,"f")===0&&this.emit("idle"),!1;if(!k(this,zn,"f")){let t=!k(this,Xt,"a",T1);if(k(this,Xt,"a",A1)&&k(this,Xt,"a",R1)){let r=k(this,Me,"f").dequeue();return r?(this.emit("active"),r(),t&&k(this,Xt,"m",jh).call(this),!0):!1}}return!1},jh=function(){k(this,Qs,"f")||k(this,pr,"f")!==void 0||(Ut(this,pr,setInterval(()=>{k(this,Xt,"m",td).call(this)},k(this,Xs,"f")),"f"),Ut(this,uu,Date.now()+k(this,Xs,"f"),"f"))},td=function(){k(this,$n,"f")===0&&k(this,Ue,"f")===0&&k(this,pr,"f")&&(clearInterval(k(this,pr,"f")),Ut(this,pr,void 0,"f")),Ut(this,$n,k(this,Ws,"f")?k(this,Ue,"f"):0,"f"),k(this,Xt,"m",mu).call(this)},mu=function(){for(;k(this,Xt,"m",hu).call(this););},D1=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new yu("The task was aborted."))},{once:!0})})},du=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var ed=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},rd=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},L1=e=>globalThis.DOMException===void 0?new rd(e):new DOMException(e),P1=e=>{let t=e.reason===void 0?L1("This operation was aborted."):e.reason;return t instanceof Error?t:L1(t)};function nd(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,a=new Promise((c,u)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(r===Number.POSITIVE_INFINITY){c(e);return}if(t.signal){let{signal:f}=t;f.aborted&&u(P1(f)),f.addEventListener("abort",()=>{u(P1(f))})}let l=new ed;s=o.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(f){u(f)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?c():i instanceof Error?u(i):(l.message=i??`Promise timed out after ${r} milliseconds`,u(l))},r),(async()=>{try{c(await e)}catch(f){u(f)}finally{o.clearTimeout.call(void 0,s)}})()});return a.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},a}var id="lock:worker:request-read",od="lock:worker:release-read",sd="lock:master:grant-read",ad="lock:worker:request-write",cd="lock:worker:release-write",ud="lock:master:grant-write";var Hn={},Po=e=>{e.addEventListener("message",t=>{Po.dispatchEvent("message",e,t)}),e.port!=null&&e.port.addEventListener("message",t=>{Po.dispatchEvent("message",e,t)})};Po.addEventListener=(e,t)=>{Hn[e]==null&&(Hn[e]=[]),Hn[e].push(t)};Po.removeEventListener=(e,t)=>{Hn[e]!=null&&(Hn[e]=Hn[e].filter(r=>r===t))};Po.dispatchEvent=function(e,t,r){Hn[e]!=null&&Hn[e].forEach(n=>n(t,r))};var ld=Po;var N1=(e,t,r,n,i)=>(o,s)=>{if(s.data.type!==r)return;let a={type:s.data.type,name:s.data.name,identifier:s.data.identifier};e.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(o.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(o.removeEventListener("message",u),c())};o.addEventListener("message",u)}))}}))},k1=(e,t,r,n)=>async()=>{let i=fc();return globalThis.postMessage({type:t,identifier:i,name:e}),await new Promise(o=>{let s=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",s),o(()=>{globalThis.postMessage({type:n,identifier:i,name:e})}))};globalThis.addEventListener("message",s)})},qI={singleProcess:!1},O1=e=>{if(e=Object.assign({},qI,e),Boolean(globalThis.document)||e.singleProcess){let r=new EventTarget;return ld.addEventListener("message",N1(r,"requestReadLock",id,od,sd)),ld.addEventListener("message",N1(r,"requestWriteLock",ad,cd,ud)),r}return{isWorker:!0,readLock:r=>k1(r,id,sd,od),writeLock:r=>k1(r,ad,ud,cd)}};var ki={},Gn;async function fd(e,t){let r,n=new Promise(i=>{r=i});return e.add(async()=>await nd((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var zI=(e,t)=>{if(Gn.isWorker===!0)return{readLock:Gn.readLock(e,t),writeLock:Gn.writeLock(e,t)};let r=new Lo({concurrency:1}),n;return{async readLock(){if(n!=null)return await fd(n,t);n=new Lo({concurrency:t.concurrency,autoStart:!1});let i=n,o=fd(n,t);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await o},async writeLock(){return n=null,await fd(r,t)}}},$I={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function hd(e){let t=Object.assign({},$I,e);return Gn==null&&(Gn=O1(t),Gn.isWorker!==!0&&(Gn.addEventListener("requestReadLock",r=>{ki[r.data.name]!=null&&ki[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Gn.addEventListener("requestWriteLock",async r=>{ki[r.data.name]!=null&&ki[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),ki[t.name]==null&&(ki[t.name]=zI(t.name,t)),ki[t.name]}var M1=N("libp2p:peer-store:store"),U1="/peers/",gu=class{constructor(t){this.components=t,this.lock=hd({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(t){if(t.type==null)throw M1.error("peerId must be an instance of peer-id to store data"),new z("peerId must be an instance of peer-id",Q.ERR_INVALID_PARAMETERS);let r=t.toCID().toString();return new qt(`${U1}${r}`)}async has(t){return await this.components.datastore.has(this._peerIdToDatastoreKey(t))}async delete(t){await this.components.datastore.delete(this._peerIdToDatastoreKey(t))}async load(t){let r=await this.components.datastore.get(this._peerIdToDatastoreKey(t)),n=zs.decode(r),i=new Map;for(let o of n.metadata)i.set(o.key,o.value);return{...n,id:t,addresses:n.addresses.map(({multiaddr:o,isCertified:s})=>({multiaddr:Z(o),isCertified:s??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(t){if(t.pubKey!=null&&t.id.publicKey!=null&&!bt(t.pubKey,t.id.publicKey))throw M1.error("peer publicKey bytes do not match peer id publicKey bytes"),new z("publicKey bytes do not match peer id publicKey bytes",Q.ERR_INVALID_PARAMETERS);let r=new Set,n=t.addresses.filter(s=>r.has(s.multiaddr.toString())?!1:(r.add(s.multiaddr.toString()),!0)).sort((s,a)=>s.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:s,isCertified:a})=>({multiaddr:s.bytes,isCertified:a})),i=[];[...t.metadata.keys()].sort().forEach(s=>{let a=t.metadata.get(s);a!=null&&i.push({key:s,value:a})});let o=zs.encode({addresses:n,protocols:t.protocols.sort(),pubKey:t.pubKey,metadata:i,peerRecordEnvelope:t.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(t.id),o.subarray()),await this.load(t.id)}async patch(t,r){let n=await this.load(t);return await this._patch(t,r,n)}async patchOrCreate(t,r){let n;try{n=await this.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._patch(t,r,n)}async _patch(t,r,n){return await this.save({...n,...r,id:t})}async merge(t,r){let n=await this.load(t);return await this._merge(t,r,n)}async mergeOrCreate(t,r){let n;try{n=await this.load(t)}catch(i){if(i.code!==Q.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._merge(t,r,n)}async _merge(t,r,n){let i=new Map;return n.addresses.forEach(o=>{i.set(o.multiaddr.toString(),o.isCertified)}),(r.addresses??[]).forEach(o=>{let s=o.multiaddr.toString(),c=Boolean(i.get(s))||o.isCertified;i.set(s,c)}),await this.save({id:t,addresses:Array.from(i.entries()).map(([o,s])=>({multiaddr:Z(o),isCertified:s})),protocols:Array.from(new Set([...n.protocols??[],...r.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...r.metadata?.entries()??[]]),pubKey:r.pubKey??n?.pubKey,peerRecordEnvelope:r.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let t of this.components.datastore.queryKeys({prefix:U1})){let r=t.toString().split("/")[2],n=Te.decode(r);yield this.load(Tn(n))}}};var cn;(function(e){let t;e.codec=()=>(t==null&&(t=qn((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.tags!=null)for(let o of r.tags)n.uint32(10),wu.codec().encode(o,n);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={tags:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.tags.push(wu.codec().decode(r,r.uint32()));break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Vn(r,e.codec()),e.decode=r=>Kn(r,e.codec())})(cn||(cn={}));var wu;(function(e){let t;e.codec=()=>(t==null&&(t=qn((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.name!=null&&r.name!==""&&(n.uint32(10),n.string(r.name)),r.value!=null&&(n.uint32(16),n.uint32(r.value)),r.expiry!=null&&(n.uint32(24),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={name:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.name=r.string();break;case 2:i.value=r.uint32();break;case 3:i.expiry=r.uint64();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Vn(r,e.codec()),e.decode=r=>Kn(r,e.codec())})(wu||(wu={}));var Ze=N("libp2p:peer-store"),Eu=class extends Rt{constructor(t,r={}){super(),this.components=t,this.store=new gu(t),this.addressBook=new Jc(this.dispatchEvent.bind(this),this.store,r.addressFilter),this.keyBook=new jc(this.dispatchEvent.bind(this),this.store),this.metadataBook=new eu(this.dispatchEvent.bind(this),this.store),this.protoBook=new nu(this.dispatchEvent.bind(this),this.store)}async forEach(t){Ze.trace("getPeers await read lock");let r=await this.store.lock.readLock();Ze.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||t(n)}finally{Ze.trace("getPeers release read lock"),r()}}async all(){let t=[];return await this.forEach(r=>{t.push(r)}),t}async delete(t){Ze.trace("delete await write lock");let r=await this.store.lock.writeLock();Ze.trace("delete got write lock");try{await this.store.delete(t)}finally{Ze.trace("delete release write lock"),r()}}async get(t){Ze.trace("get await read lock");let r=await this.store.lock.readLock();Ze.trace("get got read lock");try{return await this.store.load(t)}finally{Ze.trace("get release read lock"),r()}}async has(t){Ze.trace("has await read lock");let r=await this.store.lock.readLock();Ze.trace("has got read lock");try{return await this.store.has(t)}finally{Ze.trace("has release read lock"),r()}}async tagPeer(t,r,n={}){let i=n.value??0,o=Math.round(i),s=n.ttl??void 0;if(o!==i||o<0||o>100)throw new z("Tag value must be between 0-100","ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(t,"tags"),c=[];a!=null&&(c=cn.decode(a).tags),c=c.filter(u=>u.name!==r),c.push({name:r,value:o,expiry:s==null?void 0:BigInt(Date.now()+s)}),await this.metadataBook.setValue(t,"tags",cn.encode({tags:c}).subarray())}async unTagPeer(t,r){let n=await this.metadataBook.getValue(t,"tags"),i=[];n!=null&&(i=cn.decode(n).tags),i=i.filter(o=>o.name!==r),await this.metadataBook.setValue(t,"tags",cn.encode({tags:i}).subarray())}async getTags(t){let r=await this.metadataBook.getValue(t,"tags"),n=[];r!=null&&(n=cn.decode(r).tags);let i=BigInt(Date.now()),o=n.filter(s=>s.expiry==null||s.expiry>i);return o.length!==n.length&&await this.metadataBook.setValue(t,"tags",cn.encode({tags:o}).subarray()),o.map(s=>({name:s.name,value:s.value??0}))}};var F1=T(dt(),1),xu=class{constructor(t){this.dht=t}async provide(t){await lr(this.dht.provide(t))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await lr(this.dht.put(t,r,n))}async get(t,r){for await(let n of this.dht.get(t,r))if(n.name==="VALUE")return n.value;throw(0,F1.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Fe=T(dt(),1);var vu=class{constructor(t={}){this._started=!1,this._peerId=t.peerId,this._addressManager=t.addressManager,this._peerStore=t.peerStore,this._upgrader=t.upgrader,this._metrics=t.metrics,this._registrar=t.registrar,this._connectionManager=t.connectionManager,this._transportManager=t.transportManager,this._connectionGater=t.connectionGater,this._contentRouting=t.contentRouting,this._peerRouting=t.peerRouting,this._datastore=t.datastore,this._connectionProtector=t.connectionProtector,this._dht=t.dht,this._pubsub=t.pubsub,this._dialer=t.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(t=>tn(t)).map(async t=>{t.beforeStart!=null&&await t.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(t=>tn(t)).map(async t=>{await t.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(t=>tn(t)).map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(t=>tn(t)).map(async t=>{t.beforeStop!=null&&await t.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(t=>tn(t)).map(async t=>{await t.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(t=>tn(t)).map(async t=>{t.afterStop!=null&&await t.afterStop()}))}get peerId(){if(this._peerId==null)throw(0,Fe.default)(new Error("peerId not set"),"ERR_SERVICE_MISSING");return this._peerId}set peerId(t){this._peerId=t}get addressManager(){if(this._addressManager==null)throw(0,Fe.default)(new Error("addressManager not set"),"ERR_SERVICE_MISSING");return this._addressManager}set addressManager(t){this._addressManager=t}get peerStore(){if(this._peerStore==null)throw(0,Fe.default)(new Error("peerStore not set"),"ERR_SERVICE_MISSING");return this._peerStore}set peerStore(t){this._peerStore=t}get upgrader(){if(this._upgrader==null)throw(0,Fe.default)(new Error("upgrader not set"),"ERR_SERVICE_MISSING");return this._upgrader}set upgrader(t){this._upgrader=t}get registrar(){if(this._registrar==null)throw(0,Fe.default)(new Error("registrar not set"),"ERR_SERVICE_MISSING");return this._registrar}set registrar(t){this._registrar=t}get connectionManager(){if(this._connectionManager==null)throw(0,Fe.default)(new Error("connectionManager not set"),"ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(t){this._connectionManager=t}get transportManager(){if(this._transportManager==null)throw(0,Fe.default)(new Error("transportManager not set"),"ERR_SERVICE_MISSING");return this._transportManager}set transportManager(t){this._transportManager=t}get connectionGater(){if(this._connectionGater==null)throw(0,Fe.default)(new Error("connectionGater not set"),"ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(t){this._connectionGater=t}get contentRouting(){if(this._contentRouting==null)throw(0,Fe.default)(new Error("contentRouting not set"),"ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(t){this._contentRouting=t}get peerRouting(){if(this._peerRouting==null)throw(0,Fe.default)(new Error("peerRouting not set"),"ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(t){this._peerRouting=t}get datastore(){if(this._datastore==null)throw(0,Fe.default)(new Error("datastore not set"),"ERR_SERVICE_MISSING");return this._datastore}set datastore(t){this._datastore=t}get connectionProtector(){return this._connectionProtector}set connectionProtector(t){this._connectionProtector=t}get dialer(){if(this._dialer==null)throw(0,Fe.default)(new Error("dialer not set"),"ERR_SERVICE_MISSING");return this._dialer}set dialer(t){this._dialer=t}get metrics(){return this._metrics}set metrics(t){this._metrics=t}get dht(){return this._dht}set dht(t){this._dht=t}get pubsub(){return this._pubsub}set pubsub(t){this._pubsub=t}};var pd=T(Pu(),1),md=T(q1(),1);var z1=globalThis.fetch,$1=globalThis.Headers,yM=globalThis.Request,gM=globalThis.Response;function bu(e,t,r){return`${e}?name=${t}&type=${r}`}async function H1(e,t){return await(await z1(e,{headers:new $1({accept:"application/dns-json"}),signal:t})).json()}function Oi(e,t){return`${t}_${e}`}var dd=Object.assign((0,pd.default)("dns-over-http-resolver"),{error:(0,pd.default)("dns-over-http-resolver:error")}),yd=class{constructor(t={}){this._cache=new md.default({max:t?.maxCache??100}),this._TXTcache=new md.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??H1,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>t.abort())}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let r=t.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=t[r];t[r]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,r="A"){switch(r){case"A":return await this.resolve4(t);case"AAAA":return await this.resolve6(t);case"TXT":return await this.resolveTxt(t);default:throw new Error(`${r} is not supported`)}}async resolve4(t){let r="A",n=this._cache.get(Oi(t,r));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(bu(o,t,r),s.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Oi(t,r),c,{ttl:u}),c}catch{s.signal.aborted&&(i=!0),dd.error(`${o} could not resolve ${t} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${r}`)}async resolve6(t){let r="AAAA",n=this._cache.get(Oi(t,r));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(bu(o,t,r),s.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Oi(t,r),c,{ttl:u}),c}catch{s.signal.aborted&&(i=!0),dd.error(`${o} could not resolve ${t} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${r}`)}async resolveTxt(t){let r="TXT",n=this._TXTcache.get(Oi(t,r));if(n!=null)return n;let i=!1;for(let o of this._getShuffledServers()){let s=new AbortController;this._abortControllers.push(s);try{let a=await this._request(bu(o,t,r),s.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(Oi(t,r),c,{ttl:u}),c}catch{s.signal.aborted&&(i=!0),dd.error(`${o} could not resolve ${t} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==s)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},G1=yd;var Y1=G1;var{code:QI}=wt("dnsaddr");async function W1(e,t={}){let r=new Y1;t.signal!=null&&t.signal.addEventListener("abort",()=>{r.cancel()});let n=e.getPeerId(),[,i]=e.stringTuples().find(([a])=>a===QI)??[];if(i==null)throw new Error("No hostname found in multiaddr");let s=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]);return n!=null&&(s=s.filter(a=>a.includes(n))),s}var _u=T(dt(),1);var tT={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{maxConnections:300,minConnections:50,autoDial:!0,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:W1},addressSorter:Wi},connectionGater:{},transportManager:{faultTolerance:On.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},relay:{enabled:!0,advertise:{bootDelay:9e5,enabled:!1,ttl:18e5},hop:{enabled:!1,timeout:3e4},reservationManager:{enabled:!1,maxReservations:2}},identify:{protocolPrefix:"ipfs",host:{agentVersion:Th},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1},ping:{protocolPrefix:"ipfs",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4}};function Q1(e){let t=Ge(tT,e);if(t.transports==null||t.transports.length<1)throw(0,_u.default)(new Error(J.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(t.connectionEncryption==null||t.connectionEncryption.length===0)throw(0,_u.default)(new Error(J.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,_u.default)(new Error(J.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return t.identify.host.agentVersion===Th&&(zE||VE?t.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Fs||$E||qE||HE)&&(t.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),t}var xd;(function(e){let t;e.codec=()=>(t==null&&(t=Mt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.id!=null&&r.id.byteLength>0)&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Ot(r,e.codec()),e.decode=r=>kt(r,e.codec())})(xd||(xd={}));var X1=async()=>{let e=await Za("Ed25519"),t=await eT(e);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function eT(e){return await Cn(by(e.public),_y(e))}var js=T(dt(),1);var Je=T(dt(),1);var Z1=Symbol.for("@libp2p/peer-discovery");var Su=class extends Rt{get[Z1](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}get lan(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}get(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}findProviders(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}findPeer(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}getClosestPeers(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}provide(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}put(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}async getMode(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}async setMode(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}async refreshRoutingTable(){throw(0,Je.default)(new Error(J.DHT_DISABLED),b.DHT_DISABLED)}};var un=T(dt(),1);var Au=class extends Rt{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}get multicodecs(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getPeers(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getTopics(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}subscribe(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}unsubscribe(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getSubscribers(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}async publish(){throw(0,un.default)(new Error(J.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}};var No=T(dt(),1);var px=T(Ln(),1),Sd=T(bd(),1),mx=T(rn(),1);var Js=T(dt(),1),fx=T(bd(),1),hx=T(ux(),1),_d=T(rn(),1);var lx=N("libp2p:dialer:dial-request"),Ru=class{constructor(t){let{addrs:r,dialAction:n,dialer:i}=t;this.addrs=r,this.dialer=i,this.dialAction=n}async run(t={}){let r=this.dialer.getTokens(this.addrs.length);if(r.length<1)throw(0,Js.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new hx.default;for(let a of r)n.push(a).catch(c=>{lx.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,_d.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(t.signal!=null)try{(0,_d.setMaxListeners)?.(1/0,t.signal)}catch{}let o=0,s=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let u=await n.shift();if(s)throw this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0]),(0,Js.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let l=i[c];if(l==null)throw(0,Js.default)(new Error("dialAction did not come with an AbortController"),b.ERR_INVALID_PARAMETERS);let f;try{let d=l.signal;f=await this.dialAction(a,{...t,signal:t.signal!=null?(0,fx.anySignal)([d,t.signal]):d}),i[c]=void 0}finally{o++,this.addrs.length-o>=r.length?n.push(u).catch(d=>{lx.error(d)}):this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0])}if(f==null)throw(0,Js.default)(new Error("dialAction led to empty object"),b.ERR_TRANSPORT_DIAL_FAILED);return s=!0,f}))}catch(a){throw this.addrs.length===1&&a.name==="AggregateError"?a.errors[0]:a}finally{i.forEach(a=>{a!==void 0&&a.abort()}),r.forEach(a=>this.dialer.releaseToken(a))}}};var kr=N("libp2p:dialer"),Iu=class{constructor(t,r={}){this.started=!1,this.addressSorter=r.addressSorter??Wi,this.maxAddrsToDial=r.maxAddrsToDial??25,this.timeout=r.dialTimeout??3e4,this.maxDialsPerPeer=r.maxDialsPerPeer??4,this.tokens=[...new Array(r.maxParallelDials??100)].map((n,i)=>i),this.components=t,this.pendingDials=Ds({name:"libp2p_dialler_pending_dials",metrics:t.metrics}),this.pendingDialTargets=Ds({name:"libp2p_dialler_pending_dial_targets",metrics:t.metrics});for(let[n,i]of Object.entries(r.resolvers??{}))Uf.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let t of this.pendingDials.values())try{t.controller.abort()}catch(r){kr.error(r)}this.pendingDials.clear();for(let t of this.pendingDialTargets.values())t.abort();this.pendingDialTargets.clear()}async dial(t,r={}){let{peerId:n,multiaddr:i}=Dc(t);if(n!=null){if(this.components.peerId.equals(n))throw(0,No.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(i!=null&&(kr("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,[i])),await this.components.connectionGater.denyDialPeer(n))throw(0,No.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED)}kr("creating dial target for %p",n);let o=new AbortController,s=dx();this.pendingDialTargets.set(s,o);let a=o.signal;r.signal!=null&&(a=(0,Sd.anySignal)([a,r.signal]));let c;try{c=await this._createDialTarget({peerId:n,multiaddr:i},{...r,signal:a})}finally{this.pendingDialTargets.delete(s)}if(c.addrs.length===0)throw(0,No.default)(new Error("The dial request has no valid addresses"),b.ERR_NO_VALID_ADDRESSES);let u=this.pendingDials.get(c.id)??this._createPendingDial(c,r);try{let l=await u.promise;return kr("dial succeeded to %s",c.id),l}catch(l){throw kr("dial failed to %s",c.id,l),u.controller.signal.aborted&&(l.code=b.ERR_TIMEOUT),kr.error(l),l}finally{u.destroy()}}getPendingDialTargets(){return this.pendingDialTargets}hasPendingDial(t){return Le(t)?this.pendingDials.has(t.getPeerId()??""):this.pendingDials.has(t.toString())}async _createDialTarget(t,r){let n=[];if(Le(t.multiaddr)&&n.push(t.multiaddr),!Le(t.multiaddr)&&mi(t.peerId)&&n.push(...await this._loadAddresses(t.peerId)),n=(await Promise.all(n.map(async o=>await this._resolve(o,r)))).flat().filter(o=>Boolean(this.components.transportManager.transportForMultiaddr(o))),n=[...new Set(n.map(o=>o.toString()))].map(o=>Z(o)),n.length>this.maxAddrsToDial)throw(0,No.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let i=mi(t.peerId)?t.peerId:void 0;if(i!=null){let o=`/p2p/${i.toString()}`;n=n.map(s=>{let a=s.getPeerId();return a==null||!i.equals(a)?s.encapsulate(o):s})}return{id:i==null?dx():i.toString(),addrs:n}}async _loadAddresses(t){let r=await this.components.peerStore.addressBook.get(t);return(await Promise.all(r.map(async n=>await this.components.connectionGater.denyDialMultiaddr(t,n.multiaddr)?!1:n))).filter(iT).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(t,r={}){let n=async(u,l={})=>{if(l.signal?.aborted===!0)throw(0,No.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(u,l).catch(f=>{throw kr.error("dial to %s failed",u,f),f})},i=new Ru({addrs:t.addrs,dialAction:n,dialer:this}),o=new px.TimeoutController(this.timeout),s=[o.signal];r.signal!=null&&s.push(r.signal);let a=(0,Sd.anySignal)(s);try{(0,mx.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:o,promise:i.run({...r,signal:a}),destroy:()=>{o.clear(),this.pendingDials.delete(t.id)}};return this.pendingDials.set(t.id,c),c}getTokens(t){let r=Math.min(t,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,r);return kr("%d tokens request, returning %d, %d remaining",t,r,this.tokens.length),n}releaseToken(t){this.tokens.includes(t)||(kr("token %d released",t),this.tokens.push(t))}async _resolve(t,r){if(!t.protoNames().includes("dnsaddr"))return[t];let i=await this._resolveRecord(t,r);return(await Promise.all(i.map(async a=>await this._resolve(a,r)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(t,r){try{return t=Z(t.toString()),await t.resolve(r)}catch(n){return kr.error(`multiaddr ${t.toString()} could not be resolved`,n),[]}}};function iT(e){return Boolean(e)}function dx(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Or=N("libp2p"),Ad=class extends Rt{constructor(t){super(),this.started=!1,this.peerId=t.peerId;let r=this.components=new vu({peerId:t.peerId,datastore:t.datastore??new dc,connectionGater:{denyDialPeer:async()=>await Promise.resolve(!1),denyDialMultiaddr:async()=>await Promise.resolve(!1),denyInboundConnection:async()=>await Promise.resolve(!1),denyOutboundConnection:async()=>await Promise.resolve(!1),denyInboundEncryptedConnection:async()=>await Promise.resolve(!1),denyOutboundEncryptedConnection:async()=>await Promise.resolve(!1),denyInboundUpgradedConnection:async()=>await Promise.resolve(!1),denyOutboundUpgradedConnection:async()=>await Promise.resolve(!1),filterMultiaddrForPeer:async()=>await Promise.resolve(!0),...t.connectionGater}});r.peerStore=new Eu(r,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore}),this.services=[r],t.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(t.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",s=>{let{detail:a}=s;this.dispatchEvent(new $("peer:discovery",{detail:a}))}),t.connectionProtector!=null&&(this.components.connectionProtector=t.connectionProtector(r)),this.components.upgrader=new zc(this.components,{connectionEncryption:(t.connectionEncryption??[]).map(s=>this.configureComponent(s(this.components))),muxers:(t.streamMuxers??[]).map(s=>this.configureComponent(s(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new Iu(this.components,t.connectionManager),this.connectionManager=this.components.connectionManager=new Pc(this.components,t.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",s=>{this.dispatchEvent(new $("peer:disconnect",{detail:s.detail}))}),this.components.connectionManager.addEventListener("peer:connect",s=>{this.dispatchEvent(new $("peer:connect",{detail:s.detail}))}),this.registrar=this.components.registrar=new qc(this.components),this.components.transportManager=new Kc(this.components,t.transportManager),this.components.addressManager=new bc(this.components,t.addresses),this.configureComponent(new Qc(this.components)),this.configureComponent(new Nc(this.components,{enabled:t.connectionManager.autoDial,minConnections:t.connectionManager.minConnections,autoDialInterval:t.connectionManager.autoDialInterval}));let n=Ri.generateOptions();this.keychain=this.configureComponent(new Ri(this.components,{...n,...t.keychain})),this.services.push(new Wc(this.components,t.nat)),t.transports.forEach(s=>{this.components.transportManager.add(this.configureComponent(s(this.components)))}),this.identifyService=new Do(this.components,{...t.identify}),this.configureComponent(this.identifyService),t.relay.reservationManager.enabled===!0&&(this.circuitService=new cc(this.components,{addressSorter:t.connectionManager.addressSorter,...t.relay.reservationManager}),this.services.push(this.circuitService)),t.dht!=null?this.dht=this.components.dht=t.dht(this.components):this.dht=new Su,t.pubsub!=null?this.pubsub=this.components.pubsub=t.pubsub(this.components):this.pubsub=new Au;let i=(t.peerRouters??[]).map(s=>this.configureComponent(s(this.components)));t.dht!=null&&(i.push(this.configureComponent(new Xc(this.dht))),this.dht.addEventListener("peer",s=>{this.onDiscoveryPeer(s)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new Ec(this.components,{...t.peerRouting,routers:i}));let o=(t.contentRouters??[]).map(s=>this.configureComponent(s(this.components)));t.dht!=null&&o.push(this.configureComponent(new xu(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new vc(this.components,{routers:o})),t.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new Mc(this.components,t.relay))),this.configureComponent(new Ts(this.components,{...t.relay}))),this.fetchService=this.configureComponent(new Hc(this.components,{...t.fetch})),this.pingService=this.configureComponent(new Gc(this.components,{...t.ping}));for(let s of t.peerDiscovery??[])this.configureComponent(s(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(t){return tn(t)&&this.services.push(t),t}async start(){if(this.started)return;this.started=!0,Or("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(Or("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await Promise.all(this.services.map(async r=>{r.beforeStart!=null&&await r.beforeStart()})),await Promise.all(this.services.map(async r=>await r.start())),await Promise.all(this.services.map(async r=>{r.afterStart!=null&&await r.afterStart()})),Or("libp2p has started")}catch(r){throw Or.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.started&&(Or("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(this.services.map(async t=>await t.stop())),await Promise.all(this.services.map(async t=>{t.afterStop!=null&&await t.afterStop()})),Or("libp2p has stopped"))}isStarted(){return this.started}getConnections(t){return this.components.connectionManager.getConnections(t)}getPeers(){let t=new ur;for(let r of this.components.connectionManager.getConnections())t.add(r.remotePeer);return Array.from(t)}async dial(t,r={}){return await this.components.connectionManager.openConnection(t,r)}async dialProtocol(t,r,n={}){if(r==null)throw(0,js.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw(0,js.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(t,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t){Le(t)&&(t=tt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t)}async getPublicKey(t,r={}){if(Or("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw(0,js.default)(new Error("Public key was not in the peer store and the DHT is not enabled"),b.ERR_NO_ROUTERS_AVAILABLE);let i=Gt([K("/pk/"),t.multihash.digest]);for await(let o of this.dht.get(i,r))if(o.name==="VALUE"){let s=cs(o.value);return await this.peerStore.keyBook.set(t,o.value),s.bytes}throw(0,js.default)(new Error(`Node not responding with its public key: ${t.toString()}`),b.ERR_INVALID_RECORD)}async fetch(t,r,n={}){if(Le(t)){let i=tt(t.getPeerId()??"");await this.components.peerStore.addressBook.add(i,[t]),t=i}return await this.fetchService.fetch(t,r,n)}async ping(t,r={}){if(Le(t)){let n=tt(t.getPeerId()??"");await this.components.peerStore.addressBook.add(n,[t]),t=n}return await this.pingService.ping(t,r)}async handle(t,r,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(t,r){return await this.registrar.register(t,r)}unregister(t){this.registrar.unregister(t)}onDiscoveryPeer(t){let{detail:r}=t;if(r.id.toString()===this.peerId.toString()){Or.error(new Error(b.ERR_DISCOVERED_SELF));return}r.multiaddrs.length>0&&this.components.peerStore.addressBook.add(r.id,r.multiaddrs).catch(n=>Or.error(n)),r.protocols.length>0&&this.components.peerStore.protoBook.set(r.id,r.protocols).catch(n=>Or.error(n)),this.dispatchEvent(new $("peer:discovery",{detail:r}))}};async function yx(e){if(e.peerId==null){let t=e.datastore;if(t!=null)try{let r=new Ri({datastore:t},Ge(Ri.generateOptions(),e.keychain));e.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return e.peerId==null&&(e.peerId=await X1()),new Ad(Q1(e))}async function oT(e){let t=await yx(e);return e.start!==!1&&await t.start(),t}return bx(sT);})();
49
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),AS=new RegExp(`(?:^${We}$)|(?:^${ka}$)`),RS=new RegExp(`^${We}$`),IS=new RegExp(`^${ka}$`),ef=r=>r&&r.exact?AS:new RegExp(`(?:${ln(r)}${We}${ln(r)})|(?:${ln(r)}${ka}${ln(r)})`,"g");ef.v4=r=>r&&r.exact?RS:new RegExp(`${ln(r)}${We}${ln(r)}`,"g");ef.v6=r=>r&&r.exact?IS:new RegExp(`${ln(r)}${ka}${ln(r)}`,"g");var Mg=ef;var qg=N(Fg(),1),{isValid:TS,parse:CS}=qg.default,BS=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],DS=BS.map(r=>new Vg.Netmask(r));function LS(r){for(let t of DS)if(t.contains(r))return!0;return!1}function Kg(r){return/^::$/.test(r)||/^::1$/.test(r)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}var $g=r=>{if(TS(r)){let t=CS(r);if(t.kind()==="ipv4")return LS(t.toNormalizedString());if(t.kind()==="ipv6")return Kg(r)}else if(ni(r)&&Mg.v6().test(r))return Kg(r)};var Yn=$g;function zg(r){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^::1$/.test(r)}function Hg(r){let{address:t}=r.nodeAddress();return zg(t)}var rf=U("libp2p:nat"),nf=7200;function PS(r=1024,t=65535){return Math.floor(Math.random()*(t-r+1)+r)}var Ma=class{constructor(t,e){if(this.components=t,this.started=!1,this.enabled=e.enabled,this.externalAddress=e.externalAddress,this.localAddress=e.localAddress,this.description=e.description??`${ug}@${Da} ${this.components.peerId.toString()}`,this.ttl=e.ttl??nf,this.keepAlive=e.keepAlive??!0,this.gateway=e.gateway,this.ttl<nf)throw new w(`NatManager ttl should be at least ${nf} seconds`,S.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Ks||!this.enabled||this.started||(this.started=!0,this._start().catch(t=>{rf.error(t)}))}async _start(){let t=this.components.transportManager.getAddrs();for(let e of t){let{family:n,host:i,port:s,transport:o}=e.toOptions();if(!e.isThinWaistAddress()||o!=="tcp"||Hg(e)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),l=Yn(c);if(l===!0)throw new Error(`${c} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`);if(l==null)throw new Error(`${c} is not an IP address`);let u=PS();rf(`opening uPnP connection from ${c}:${u} to ${i}:${s}`),await a.map({publicPort:u,localPort:s,localAddress:this.localAddress,protocol:o.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(zh({family:4,address:c,port:u},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await Rg({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Ks||this.client==null))try{await this.client.close(),this.client=void 0}catch(t){rf.error(t)}}};var NS=U("libp2p:peer-record-updater"),Ua=class{constructor(t){this.components=t,this.started=!1,this.update=this.update.bind(this)}isStarted(){return this.started}async start(){this.started=!0,this.components.transportManager.addEventListener("listener:listening",this.update),this.components.transportManager.addEventListener("listener:close",this.update),this.components.addressManager.addEventListener("change:addresses",this.update)}async stop(){this.started=!1,this.components.transportManager.removeEventListener("listener:listening",this.update),this.components.transportManager.removeEventListener("listener:close",this.update),this.components.addressManager.removeEventListener("change:addresses",this.update)}update(){Promise.resolve().then(async()=>{let t=new Gt({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(ot("p2p").code))}),e=await Zt.seal(t,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(e)}).catch(t=>{NS.error("Could not update self peer record: %o",t)})}};var Fa=class{constructor(t){this.dht=t}async findPeer(t,e={}){for await(let n of this.dht.findPeer(t,e))if(n.name==="FINAL_PEER")return n.peer;throw new w(W.NOT_FOUND,S.ERR_NOT_FOUND)}async*getClosestPeers(t,e={}){for await(let n of this.dht.getClosestPeers(t,e))n.name==="FINAL_PEER"&&(yield n.peer)}};var Y={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};var wt=U("libp2p:peer-store:address-book"),Ka="change:multiaddrs";async function kS(){return!0}var Va=class{constructor(t,e,n){this.dispatchEvent=t,this.store=e,this.addressFilter=n??kS}async consumePeerRecord(t){wt.trace("consumePeerRecord await write lock");let e=await this.store.lock.writeLock();wt.trace("consumePeerRecord got write lock");let n,i,s;try{let o;try{o=Gt.createFromProtobuf(t.payload)}catch{return wt.error("invalid peer record received"),!1}n=o.peerId;let a=o.multiaddrs;if(!n.equals(t.peerId))return wt("signing key does not match PeerId in the PeerRecord"),!1;if(a==null||a.length===0)return!1;if(await this.store.has(n)&&(i=await this.store.load(n),i.peerRecordEnvelope!=null)){let l=await Zt.createFromProtobuf(i.peerRecordEnvelope),u=Gt.createFromProtobuf(l.payload);if(u.seqNumber>=o.seqNumber)return wt("sequence number was lower or equal to existing sequence number - stored: %d received: %d",u.seqNumber,o.seqNumber),!1}let c=await sf(n,a,this.addressFilter,!0);s=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:t.marshal().subarray()}),wt("stored provided peer record for %p",o.peerId)}finally{wt.trace("consumePeerRecord release write lock"),e()}return this.dispatchEvent(new $(Ka,{detail:{peerId:n,multiaddrs:s.addresses.map(({multiaddr:o})=>o),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:o})=>o)}})),!0}async getRawEnvelope(t){wt.trace("getRawEnvelope await read lock");let e=await this.store.lock.readLock();wt.trace("getRawEnvelope got read lock");try{return(await this.store.load(t)).peerRecordEnvelope}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{wt.trace("getRawEnvelope release read lock"),e()}}async getPeerRecord(t){let e=await this.getRawEnvelope(t);if(e!=null)return await Zt.createFromProtobuf(e)}async get(t){t=Kt(t),wt.trace("get wait for read lock");let e=await this.store.lock.readLock();wt.trace("get got read lock");try{return(await this.store.load(t)).addresses}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{wt.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Kt(t),!Array.isArray(e))throw wt.error("multiaddrs must be an array of Multiaddrs"),new w("multiaddrs must be an array of Multiaddrs",Y.ERR_INVALID_PARAMETERS);wt.trace("set await write lock");let n=await this.store.lock.writeLock();wt.trace("set got write lock");let i=!1,s,o;try{let a=await sf(t,e,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...s.addresses.map(({multiaddr:c})=>c.toString())]).size===s.addresses.length&&a.length===s.addresses.length)return}catch(c){if(c.code!==Y.ERR_NOT_FOUND)throw c}o=await this.store.patchOrCreate(t,{addresses:a}),wt("set multiaddrs for %p",t)}finally{wt.trace("set multiaddrs for %p",t),wt("set release write lock"),n()}this.dispatchEvent(new $(Ka,{detail:{peerId:t,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new $("peer",{detail:{id:t,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async add(t,e){if(t=Kt(t),!Array.isArray(e))throw wt.error("multiaddrs must be an array of Multiaddrs"),new w("multiaddrs must be an array of Multiaddrs",Y.ERR_INVALID_PARAMETERS);wt.trace("add await write lock");let n=await this.store.lock.writeLock();wt.trace("add got write lock");let i,s,o;try{let a=await sf(t,e,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(t),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...s.addresses.map(({multiaddr:c})=>c.toString())]).size===s.addresses.length)return}catch(c){if(c.code!==Y.ERR_NOT_FOUND)throw c}o=await this.store.mergeOrCreate(t,{addresses:a}),wt("added multiaddrs for %p",t)}finally{wt.trace("set release write lock"),n()}this.dispatchEvent(new $(Ka,{detail:{peerId:t,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new $("peer",{detail:{id:t,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async delete(t){t=Kt(t),wt.trace("delete await write lock");let e=await this.store.lock.writeLock();wt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{addresses:[]})}finally{wt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new $(Ka,{detail:{peerId:t,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function sf(r,t,e,n=!1){let i=[];return await Promise.all(t.map(async s=>{if(!xe(s))throw wt.error("multiaddr must be an instance of Multiaddr"),new w("multiaddr must be an instance of Multiaddr",Y.ERR_INVALID_PARAMETERS);await e(r,s)&&i.push({multiaddr:s,isCertified:n})})),i}var pr=U("libp2p:peer-store:key-book"),Gg="change:pubkey",qa=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async set(t,e){if(t=Kt(t),!(e instanceof Uint8Array))throw pr.error("publicKey must be an instance of Uint8Array to store data"),new w("publicKey must be an instance of PublicKey",Y.ERR_INVALID_PARAMETERS);pr.trace("set await write lock");let n=await this.store.lock.writeLock();pr.trace("set got write lock");let i=!1,s;try{try{if(s=await this.store.load(t),s.pubKey!=null&&xt(s.pubKey,e))return}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}await this.store.patchOrCreate(t,{pubKey:e}),i=!0}finally{pr.trace("set release write lock"),n()}i&&this.dispatchEvent(new $(Gg,{detail:{peerId:t,publicKey:e,oldPublicKey:s?.pubKey}}))}async get(t){t=Kt(t),pr.trace("get await write lock");let e=await this.store.lock.readLock();pr.trace("get got write lock");try{return(await this.store.load(t)).pubKey}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{pr("get release write lock"),e()}}async delete(t){t=Kt(t),pr.trace("delete await write lock");let e=await this.store.lock.writeLock();pr.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{pubKey:void 0})}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}finally{pr.trace("delete release write lock"),e()}this.dispatchEvent(new $(Gg,{detail:{peerId:t,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Wt=U("libp2p:peer-store:metadata-book"),$a="change:metadata",za=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){t=Kt(t),Wt.trace("get await read lock");let e=await this.store.lock.readLock();Wt.trace("get got read lock");try{return(await this.store.load(t)).metadata}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{Wt.trace("get release read lock"),e()}return new Map}async getValue(t,e){t=Kt(t),Wt.trace("getValue await read lock");let n=await this.store.lock.readLock();Wt.trace("getValue got read lock");try{return(await this.store.load(t)).metadata.get(e)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}finally{Wt.trace("getValue release write lock"),n()}}async set(t,e){if(t=Kt(t),!(e instanceof Map))throw Wt.error("valid metadata must be provided to store data"),new w("valid metadata must be provided",Y.ERR_INVALID_PARAMETERS);Wt.trace("set await write lock");let n=await this.store.lock.writeLock();Wt.trace("set got write lock");let i;try{try{i=await this.store.load(t)}catch(s){if(s.code!==Y.ERR_NOT_FOUND)throw s}await this.store.mergeOrCreate(t,{metadata:e})}finally{Wt.trace("set release write lock"),n()}this.dispatchEvent(new $($a,{detail:{peerId:t,metadata:e,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(t,e,n){if(t=Kt(t),typeof e!="string"||!(n instanceof Uint8Array))throw Wt.error("valid key and value must be provided to store data"),new w("valid key and value must be provided",Y.ERR_INVALID_PARAMETERS);Wt.trace("setValue await write lock");let i=await this.store.lock.writeLock();Wt.trace("setValue got write lock");let s,o;try{try{s=await this.store.load(t);let a=s.metadata.get(e);if(a!=null&&xt(n,a))return}catch(a){if(a.code!==Y.ERR_NOT_FOUND)throw a}o=await this.store.mergeOrCreate(t,{metadata:new Map([[e,n]])})}finally{Wt.trace("setValue release write lock"),i()}this.dispatchEvent(new $($a,{detail:{peerId:t,metadata:o.metadata,oldMetadata:s==null?new Map:s.metadata}}))}async delete(t){t=Kt(t),Wt.trace("delete await write lock");let e=await this.store.lock.writeLock();Wt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(t,{metadata:new Map})}finally{Wt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new $($a,{detail:{peerId:t,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(t,e){t=Kt(t),Wt.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();Wt.trace("deleteValue got write lock");let i,s;try{s=await this.store.load(t),i=s.metadata,i.delete(e),await this.store.patch(t,{metadata:i})}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}finally{Wt.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new $($a,{detail:{peerId:t,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var Qt=U("libp2p:peer-store:proto-book"),Ha="change:protocols",Ga=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async get(t){Qt.trace("get wait for read lock");let e=await this.store.lock.readLock();Qt.trace("get got read lock");try{return(await this.store.load(t)).protocols}catch(n){if(n.code!==Y.ERR_NOT_FOUND)throw n}finally{Qt.trace("get release read lock"),e()}return[]}async set(t,e){if(t=Kt(t),!Array.isArray(e))throw Qt.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Qt.trace("set await write lock");let n=await this.store.lock.writeLock();Qt.trace("set got write lock");let i,s;try{try{if(i=await this.store.load(t),new Set([...e]).size===i.protocols.length)return}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(t,{protocols:e}),Qt("stored provided protocols for %p",t)}finally{Qt.trace("set release write lock"),n()}this.dispatchEvent(new $(Ha,{detail:{peerId:t,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(t,e){if(t=Kt(t),!Array.isArray(e))throw Qt.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Qt.trace("add await write lock");let n=await this.store.lock.writeLock();Qt.trace("add got write lock");let i,s;try{try{if(i=await this.store.load(t),new Set([...i.protocols,...e]).size===i.protocols.length)return}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}s=await this.store.mergeOrCreate(t,{protocols:e}),Qt("added provided protocols for %p",t)}finally{Qt.trace("add release write lock"),n()}this.dispatchEvent(new $(Ha,{detail:{peerId:t,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(t,e){if(t=Kt(t),!Array.isArray(e))throw Qt.error("protocols must be provided to store data"),new w("protocols must be provided",Y.ERR_INVALID_PARAMETERS);Qt.trace("remove await write lock");let n=await this.store.lock.writeLock();Qt.trace("remove got write lock");let i,s;try{try{i=await this.store.load(t);let o=new Set(i.protocols);for(let a of e)o.delete(a);if(i.protocols.length===o.size)return;e=Array.from(o)}catch(o){if(o.code!==Y.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(t,{protocols:e})}finally{Qt.trace("remove release write lock"),n()}this.dispatchEvent(new $(Ha,{detail:{peerId:t,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(t){t=Kt(t),Qt.trace("delete await write lock");let e=await this.store.lock.writeLock();Qt.trace("delete got write lock");let n;try{try{n=await this.store.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(t,{protocols:[]})}finally{Qt.trace("delete release write lock"),e()}n!=null&&this.dispatchEvent(new $(Ha,{detail:{peerId:t,protocols:[],oldProtocols:n.protocols}}))}};var qs;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.addresses!=null)for(let s of e.addresses)n.uint32(10),Ya.codec().encode(s,n);if(e.protocols!=null)for(let s of e.protocols)n.uint32(18),n.string(s);if(e.metadata!=null)for(let s of e.metadata)n.uint32(26),Wa.codec().encode(s,n);e.pubKey!=null&&(n.uint32(34),n.bytes(e.pubKey)),e.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(e.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={addresses:[],protocols:[],metadata:[]},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.addresses.push(Ya.codec().decode(e,e.uint32()));break;case 2:i.protocols.push(e.string());break;case 3:i.metadata.push(Wa.codec().decode(e,e.uint32()));break;case 4:i.pubKey=e.bytes();break;case 5:i.peerRecordEnvelope=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(qs||(qs={}));var Ya;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.multiaddr!=null&&e.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(e.multiaddr)),e.isCertified!=null&&(n.uint32(16),n.bool(e.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.multiaddr=e.bytes();break;case 2:i.isCertified=e.bool();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Ya||(Ya={}));var Wa;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.key!=null&&e.key!==""&&(n.uint32(10),n.string(e.key)),e.value!=null&&e.value.byteLength>0&&(n.uint32(18),n.bytes(e.value)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={key:"",value:new Uint8Array(0)},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.key=e.string();break;case 2:i.value=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Wa||(Wa={}));var nw=N(Wg(),1);var zs=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},af=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Qg=r=>globalThis.DOMException===void 0?new af(r):new DOMException(r),Xg=r=>{let t=r.reason===void 0?Qg("This operation was aborted."):r.reason;return t instanceof Error?t:Qg(t)};function cf(r,t,e,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(r);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(Xg(c)),c.addEventListener("abort",()=>{a(Xg(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof e=="function"){try{o(e())}catch(u){a(u)}return}let c=typeof e=="string"?e:`Promise timed out after ${t} milliseconds`,l=e instanceof Error?e:new zs(c);typeof r.cancel=="function"&&r.cancel(),a(l)},t),(async()=>{try{o(await r)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function lf(r,t,e){let n=0,i=r.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;e(r[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Wn=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},Mr,Hs=class{constructor(){Mr.set(this,[])}enqueue(t,e){e={priority:0,...e};let n={priority:e.priority,run:t};if(this.size&&Wn(this,Mr,"f")[this.size-1].priority>=e.priority){Wn(this,Mr,"f").push(n);return}let i=lf(Wn(this,Mr,"f"),n,(s,o)=>o.priority-s.priority);Wn(this,Mr,"f").splice(i,0,n)}dequeue(){let t=Wn(this,Mr,"f").shift();return t?.run}filter(t){return Wn(this,Mr,"f").filter(e=>e.priority===t.priority).map(e=>e.run)}get size(){return Wn(this,Mr,"f").length}};Mr=new WeakMap;var Dt=function(r,t,e,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?r!==t||!i:!t.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,e):i?i.value=e:t.set(r,e),e},k=function(r,t,e,n){if(e==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?r!==t||!n:!t.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?n:e==="a"?n.call(r):n?n.value:t.get(r)},$t,Ys,Ws,fn,ec,Qs,Xa,Qe,Gs,Re,Za,Ie,Xs,un,Ja,Zg,Jg,ew,jg,tw,ja,uf,ff,rc,rw,tc,nc=class extends Error{},Ki=class extends nw.default{constructor(t){var e,n,i,s;if(super(),$t.add(this),Ys.set(this,void 0),Ws.set(this,void 0),fn.set(this,0),ec.set(this,void 0),Qs.set(this,void 0),Xa.set(this,0),Qe.set(this,void 0),Gs.set(this,void 0),Re.set(this,void 0),Za.set(this,void 0),Ie.set(this,0),Xs.set(this,void 0),un.set(this,void 0),Ja.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Hs,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(e=t.intervalCap)===null||e===void 0?void 0:e.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Dt(this,Ys,t.carryoverConcurrencyCount,"f"),Dt(this,Ws,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Dt(this,ec,t.intervalCap,"f"),Dt(this,Qs,t.interval,"f"),Dt(this,Re,new t.queueClass,"f"),Dt(this,Za,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Dt(this,Ja,t.throwOnTimeout===!0,"f"),Dt(this,un,t.autoStart===!1,"f")}get concurrency(){return k(this,Xs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Dt(this,Xs,t,"f"),k(this,$t,"m",rc).call(this)}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:k(this,Ja,"f"),...e},new Promise((n,i)=>{k(this,Re,"f").enqueue(async()=>{var s,o,a;Dt(this,Ie,(o=k(this,Ie,"f"),o++,o),"f"),Dt(this,fn,(a=k(this,fn,"f"),a++,a),"f");try{if(!((s=e.signal)===null||s===void 0)&&s.aborted)throw new nc("The task was aborted.");let c=t({signal:e.signal});e.timeout&&(c=cf(Promise.resolve(c),e.timeout)),e.signal&&(c=Promise.race([c,k(this,$t,"m",rw).call(this,e.signal)]));let l=await c;n(l),this.emit("completed",l)}catch(c){if(c instanceof zs&&!e.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{k(this,$t,"m",ew).call(this)}},e),this.emit("add"),k(this,$t,"m",ja).call(this)})}async addAll(t,e){return Promise.all(t.map(async n=>this.add(n,e)))}start(){return k(this,un,"f")?(Dt(this,un,!1,"f"),k(this,$t,"m",rc).call(this),this):this}pause(){Dt(this,un,!0,"f")}clear(){Dt(this,Re,new(k(this,Za,"f")),"f")}async onEmpty(){k(this,Re,"f").size!==0&&await k(this,$t,"m",tc).call(this,"empty")}async onSizeLessThan(t){k(this,Re,"f").size<t||await k(this,$t,"m",tc).call(this,"next",()=>k(this,Re,"f").size<t)}async onIdle(){k(this,Ie,"f")===0&&k(this,Re,"f").size===0||await k(this,$t,"m",tc).call(this,"idle")}get size(){return k(this,Re,"f").size}sizeBy(t){return k(this,Re,"f").filter(t).length}get pending(){return k(this,Ie,"f")}get isPaused(){return k(this,un,"f")}};Ys=new WeakMap,Ws=new WeakMap,fn=new WeakMap,ec=new WeakMap,Qs=new WeakMap,Xa=new WeakMap,Qe=new WeakMap,Gs=new WeakMap,Re=new WeakMap,Za=new WeakMap,Ie=new WeakMap,Xs=new WeakMap,un=new WeakMap,Ja=new WeakMap,$t=new WeakSet,Zg=function(){return k(this,Ws,"f")||k(this,fn,"f")<k(this,ec,"f")},Jg=function(){return k(this,Ie,"f")<k(this,Xs,"f")},ew=function(){var t;Dt(this,Ie,(t=k(this,Ie,"f"),t--,t),"f"),k(this,$t,"m",ja).call(this),this.emit("next")},jg=function(){k(this,$t,"m",ff).call(this),k(this,$t,"m",uf).call(this),Dt(this,Gs,void 0,"f")},tw=function(){let t=Date.now();if(k(this,Qe,"f")===void 0){let e=k(this,Xa,"f")-t;if(e<0)Dt(this,fn,k(this,Ys,"f")?k(this,Ie,"f"):0,"f");else return k(this,Gs,"f")===void 0&&Dt(this,Gs,setTimeout(()=>{k(this,$t,"m",jg).call(this)},e),"f"),!0}return!1},ja=function(){if(k(this,Re,"f").size===0)return k(this,Qe,"f")&&clearInterval(k(this,Qe,"f")),Dt(this,Qe,void 0,"f"),this.emit("empty"),k(this,Ie,"f")===0&&this.emit("idle"),!1;if(!k(this,un,"f")){let t=!k(this,$t,"a",tw);if(k(this,$t,"a",Zg)&&k(this,$t,"a",Jg)){let e=k(this,Re,"f").dequeue();return e?(this.emit("active"),e(),t&&k(this,$t,"m",uf).call(this),!0):!1}}return!1},uf=function(){k(this,Ws,"f")||k(this,Qe,"f")!==void 0||(Dt(this,Qe,setInterval(()=>{k(this,$t,"m",ff).call(this)},k(this,Qs,"f")),"f"),Dt(this,Xa,Date.now()+k(this,Qs,"f"),"f"))},ff=function(){k(this,fn,"f")===0&&k(this,Ie,"f")===0&&k(this,Qe,"f")&&(clearInterval(k(this,Qe,"f")),Dt(this,Qe,void 0,"f")),Dt(this,fn,k(this,Ys,"f")?k(this,Ie,"f"):0,"f"),k(this,$t,"m",rc).call(this)},rc=function(){for(;k(this,$t,"m",ja).call(this););},rw=async function(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(new nc("The task was aborted."))},{once:!0})})},tc=async function(t,e){return new Promise(n=>{let i=()=>{e&&!e()||(this.off(t,i),n())};this.on(t,i)})};var hf=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},df=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},iw=r=>globalThis.DOMException===void 0?new df(r):new DOMException(r),sw=r=>{let t=r.reason===void 0?iw("This operation was aborted."):r.reason;return t instanceof Error?t:iw(t)};function pf(r,t){let{milliseconds:e,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,o,a=new Promise((c,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){c(r);return}if(t.signal){let{signal:f}=t;f.aborted&&l(sw(f)),f.addEventListener("abort",()=>{l(sw(f))})}let u=new hf;o=s.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(f){l(f)}return}typeof r.cancel=="function"&&r.cancel(),i===!1?c():i instanceof Error?l(i):(u.message=i??`Promise timed out after ${e} milliseconds`,l(u))},e),(async()=>{try{c(await r)}catch(f){l(f)}finally{s.clearTimeout.call(void 0,o)}})()});return a.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},a}var mf="lock:worker:request-read",yf="lock:worker:release-read",gf="lock:master:grant-read",wf="lock:worker:request-write",Ef="lock:worker:release-write",xf="lock:master:grant-write";var hn={},Vi=r=>{r.addEventListener("message",t=>{Vi.dispatchEvent("message",r,t)}),r.port!=null&&r.port.addEventListener("message",t=>{Vi.dispatchEvent("message",r,t)})};Vi.addEventListener=(r,t)=>{hn[r]==null&&(hn[r]=[]),hn[r].push(t)};Vi.removeEventListener=(r,t)=>{hn[r]!=null&&(hn[r]=hn[r].filter(e=>e===t))};Vi.dispatchEvent=function(r,t,e){hn[r]!=null&&hn[r].forEach(n=>n(t,e))};var vf=Vi;var ow=(r,t,e,n,i)=>(s,o)=>{if(o.data.type!==e)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};r.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let l=u=>{if(u==null||u.data==null)return;let f={type:u.data.type,name:u.data.name,identifier:u.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",l),c())};s.addEventListener("message",l)}))}}))},aw=(r,t,e,n)=>async()=>{let i=fo();return globalThis.postMessage({type:t,identifier:i,name:r}),await new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===e&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:r})}))};globalThis.addEventListener("message",o)})},US={singleProcess:!1},cw=r=>{if(r=Object.assign({},US,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return vf.addEventListener("message",ow(e,"requestReadLock",mf,yf,gf)),vf.addEventListener("message",ow(e,"requestWriteLock",wf,Ef,xf)),e}return{isWorker:!0,readLock:e=>aw(e,mf,gf,yf),writeLock:e=>aw(e,wf,xf,Ef)}};var Qn={},dn;async function bf(r,t){let e,n=new Promise(i=>{e=i});return r.add(async()=>await pf((async()=>await new Promise(i=>{e(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var FS=(r,t)=>{if(dn.isWorker===!0)return{readLock:dn.readLock(r,t),writeLock:dn.writeLock(r,t)};let e=new Ki({concurrency:1}),n;return{async readLock(){if(n!=null)return await bf(n,t);n=new Ki({concurrency:t.concurrency,autoStart:!1});let i=n,s=bf(n,t);return e.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await bf(e,t)}}},KS={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function _f(r){let t=Object.assign({},KS,r);return dn==null&&(dn=cw(t),dn.isWorker!==!0&&(dn.addEventListener("requestReadLock",e=>{Qn[e.data.name]!=null&&Qn[e.data.name].readLock().then(async n=>await e.data.handler().finally(()=>n()))}),dn.addEventListener("requestWriteLock",async e=>{Qn[e.data.name]!=null&&Qn[e.data.name].writeLock().then(async n=>await e.data.handler().finally(()=>n()))}))),Qn[t.name]==null&&(Qn[t.name]=FS(t.name,t)),Qn[t.name]}var lw=U("libp2p:peer-store:store"),uw="/peers/",ic=class{constructor(t){this.components=t,this.lock=_f({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(t){if(t.type==null)throw lw.error("peerId must be an instance of peer-id to store data"),new w("peerId must be an instance of peer-id",Y.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new Nt(`${uw}${e}`)}async has(t){return await this.components.datastore.has(this._peerIdToDatastoreKey(t))}async delete(t){await this.components.datastore.delete(this._peerIdToDatastoreKey(t))}async load(t){let e=await this.components.datastore.get(this._peerIdToDatastoreKey(t)),n=qs.decode(e),i=new Map;for(let s of n.metadata)i.set(s.key,s.value);return{...n,id:t,addresses:n.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:It(s),isCertified:o??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(t){if(t.pubKey!=null&&t.id.publicKey!=null&&!xt(t.pubKey,t.id.publicKey))throw lw.error("peer publicKey bytes do not match peer id publicKey bytes"),new w("publicKey bytes do not match peer id publicKey bytes",Y.ERR_INVALID_PARAMETERS);let e=new Set,n=t.addresses.filter(o=>e.has(o.multiaddr.toString())?!1:(e.add(o.multiaddr.toString()),!0)).sort((o,a)=>o.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:o,isCertified:a})=>({multiaddr:o.bytes,isCertified:a})),i=[];[...t.metadata.keys()].sort().forEach(o=>{let a=t.metadata.get(o);a!=null&&i.push({key:o,value:a})});let s=qs.encode({addresses:n,protocols:t.protocols.sort(),pubKey:t.pubKey,metadata:i,peerRecordEnvelope:t.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(t.id),s.subarray()),await this.load(t.id)}async patch(t,e){let n=await this.load(t);return await this._patch(t,e,n)}async patchOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._patch(t,e,n)}async _patch(t,e,n){return await this.save({...n,...e,id:t})}async merge(t,e){let n=await this.load(t);return await this._merge(t,e,n)}async mergeOrCreate(t,e){let n;try{n=await this.load(t)}catch(i){if(i.code!==Y.ERR_NOT_FOUND)throw i;n={id:t,addresses:[],protocols:[],metadata:new Map}}return await this._merge(t,e,n)}async _merge(t,e,n){let i=new Map;return n.addresses.forEach(s=>{i.set(s.multiaddr.toString(),s.isCertified)}),(e.addresses??[]).forEach(s=>{let o=s.multiaddr.toString(),c=!!i.get(o)||s.isCertified;i.set(o,c)}),await this.save({id:t,addresses:Array.from(i.entries()).map(([s,o])=>({multiaddr:It(s),isCertified:o})),protocols:Array.from(new Set([...n.protocols??[],...e.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...e.metadata?.entries()??[]]),pubKey:e.pubKey??n?.pubKey,peerRecordEnvelope:e.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let t of this.components.datastore.queryKeys({prefix:uw})){let e=t.toString().split("/")[2],n=Ee.decode(e);yield this.load(qr(n))}}};var Ur;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),e.tags!=null)for(let s of e.tags)n.uint32(10),sc.codec().encode(s,n);i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={tags:[]},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.tags.push(sc.codec().decode(e,e.uint32()));break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Ur||(Ur={}));var sc;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.name!=null&&e.name!==""&&(n.uint32(10),n.string(e.name)),e.value!=null&&(n.uint32(16),n.uint32(e.value)),e.expiry!=null&&(n.uint32(24),n.uint64(e.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={name:""},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.name=e.string();break;case 2:i.value=e.uint32();break;case 3:i.expiry=e.uint64();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(sc||(sc={}));var Oe=U("libp2p:peer-store"),oc=class extends Pt{constructor(t,e={}){super(),this.components=t,this.store=new ic(t),this.addressBook=new Va(this.dispatchEvent.bind(this),this.store,e.addressFilter),this.keyBook=new qa(this.dispatchEvent.bind(this),this.store),this.metadataBook=new za(this.dispatchEvent.bind(this),this.store),this.protoBook=new Ga(this.dispatchEvent.bind(this),this.store)}async forEach(t){Oe.trace("getPeers await read lock");let e=await this.store.lock.readLock();Oe.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||t(n)}finally{Oe.trace("getPeers release read lock"),e()}}async all(){let t=[];return await this.forEach(e=>{t.push(e)}),t}async delete(t){Oe.trace("delete await write lock");let e=await this.store.lock.writeLock();Oe.trace("delete got write lock");try{await this.store.delete(t)}finally{Oe.trace("delete release write lock"),e()}}async get(t){Oe.trace("get await read lock");let e=await this.store.lock.readLock();Oe.trace("get got read lock");try{return await this.store.load(t)}finally{Oe.trace("get release read lock"),e()}}async has(t){Oe.trace("has await read lock");let e=await this.store.lock.readLock();Oe.trace("has got read lock");try{return await this.store.has(t)}finally{Oe.trace("has release read lock"),e()}}async tagPeer(t,e,n={}){let i=n.value??0,s=Math.round(i),o=n.ttl??void 0;if(s!==i||s<0||s>100)throw new w("Tag value must be between 0-100","ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(t,"tags"),c=[];a!=null&&(c=Ur.decode(a).tags),c=c.filter(l=>l.name!==e),c.push({name:e,value:s,expiry:o==null?void 0:BigInt(Date.now()+o)}),await this.metadataBook.setValue(t,"tags",Ur.encode({tags:c}).subarray())}async unTagPeer(t,e){let n=await this.metadataBook.getValue(t,"tags"),i=[];n!=null&&(i=Ur.decode(n).tags),i=i.filter(s=>s.name!==e),await this.metadataBook.setValue(t,"tags",Ur.encode({tags:i}).subarray())}async getTags(t){let e=await this.metadataBook.getValue(t,"tags"),n=[];e!=null&&(n=Ur.decode(e).tags);let i=BigInt(Date.now()),s=n.filter(o=>o.expiry==null||o.expiry>i);return s.length!==n.length&&await this.metadataBook.setValue(t,"tags",Ur.encode({tags:s}).subarray()),s.map(o=>({name:o.name,value:o.value??0}))}};var ac=class{constructor(t){this.dht=t}async provide(t){await Ue(this.dht.provide(t))}async*findProviders(t,e={}){for await(let n of this.dht.findProviders(t,e))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,e,n){await Ue(this.dht.put(t,e,n))}async get(t,e){for await(let n of this.dht.get(t,e))if(n.name==="VALUE")return n.value;throw new w("Not found","ERR_NOT_FOUND")}};var Sf;(function(r){let t;r.codec=()=>(t==null&&(t=mt((e,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),e.id!=null&&(n.uint32(10),n.bytes(e.id)),e.pubKey!=null&&(n.uint32(18),n.bytes(e.pubKey)),e.privKey!=null&&(n.uint32(26),n.bytes(e.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(e,n)=>{let i={},s=n==null?e.len:e.pos+n;for(;e.pos<s;){let o=e.uint32();switch(o>>>3){case 1:i.id=e.bytes();break;case 2:i.pubKey=e.bytes();break;case 3:i.privKey=e.bytes();break;default:e.skipType(o&7);break}}return i})),t),r.encode=e=>pt(e,r.codec()),r.decode=e=>dt(e,r.codec())})(Sf||(Sf={}));var cc=async()=>{let r=await xa("Ed25519"),t=await VS(r);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function VS(r){return await $r(Fy(r.public),Ky(r))}var If=N(tr(),1);var lc=globalThis.CustomEvent??Event;async function*Af(r,t={}){let e=t.concurrency??1/0;e<1&&(e=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,s=[],o=cn(),a=cn(),c=!1,l,u=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let p of r){if(s.length===e&&(o=cn(),await o.promise),u)break;let m={done:!1};s.push(m),p().then(y=>{m.done=!0,m.ok=!0,m.value=y,i.dispatchEvent(new lc("task-complete"))},y=>{m.done=!0,m.err=y,i.dispatchEvent(new lc("task-complete"))})}c=!0,i.dispatchEvent(new lc("task-complete"))}catch(p){l=p,i.dispatchEvent(new lc("task-complete"))}});function f(){return n?s[0]?.done:!!s.find(p=>p.done)}function*h(){for(;s.length>0&&s[0].done;){let p=s[0];if(s.shift(),p.ok)yield p.value;else throw u=!0,o.resolve(),p.err;o.resolve()}}function*d(){for(;f();)for(let p=0;p<s.length;p++)if(s[p].done){let m=s[p];if(s.splice(p,1),p--,m.ok)yield m.value;else throw u=!0,o.resolve(),m.err;o.resolve()}}for(;;){if(f()||(a=cn(),await a.promise),l!=null)throw l;if(n?yield*h():yield*d(),c&&s.length===0)break}}var Tf=N(_r(),1);var uc="/libp2p/autonat/1.0.0";var G;(function(r){let t;(function(l){l.DIAL="DIAL",l.DIAL_RESPONSE="DIAL_RESPONSE"})(t=r.MessageType||(r.MessageType={}));let e;(function(l){l[l.DIAL=0]="DIAL",l[l.DIAL_RESPONSE=1]="DIAL_RESPONSE"})(e||(e={})),function(l){l.codec=()=>Gr(e)}(t=r.MessageType||(r.MessageType={}));let n;(function(l){l.OK="OK",l.E_DIAL_ERROR="E_DIAL_ERROR",l.E_DIAL_REFUSED="E_DIAL_REFUSED",l.E_BAD_REQUEST="E_BAD_REQUEST",l.E_INTERNAL_ERROR="E_INTERNAL_ERROR"})(n=r.ResponseStatus||(r.ResponseStatus={}));let i;(function(l){l[l.OK=0]="OK",l[l.E_DIAL_ERROR=100]="E_DIAL_ERROR",l[l.E_DIAL_REFUSED=101]="E_DIAL_REFUSED",l[l.E_BAD_REQUEST=200]="E_BAD_REQUEST",l[l.E_INTERNAL_ERROR=300]="E_INTERNAL_ERROR"})(i||(i={})),function(l){l.codec=()=>Gr(i)}(n=r.ResponseStatus||(r.ResponseStatus={}));let s;(function(l){let u;l.codec=()=>(u==null&&(u=mt((f,h,d={})=>{if(d.lengthDelimited!==!1&&h.fork(),f.id!=null&&(h.uint32(10),h.bytes(f.id)),f.addrs!=null)for(let p of f.addrs)h.uint32(18),h.bytes(p);d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={addrs:[]},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.id=f.bytes();break;case 2:d.addrs.push(f.bytes());break;default:f.skipType(m&7);break}}return d})),u),l.encode=f=>pt(f,l.codec()),l.decode=f=>dt(f,l.codec())})(s=r.PeerInfo||(r.PeerInfo={}));let o;(function(l){let u;l.codec=()=>(u==null&&(u=mt((f,h,d={})=>{d.lengthDelimited!==!1&&h.fork(),f.peer!=null&&(h.uint32(10),r.PeerInfo.codec().encode(f.peer,h)),d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.peer=r.PeerInfo.codec().decode(f,f.uint32());break;default:f.skipType(m&7);break}}return d})),u),l.encode=f=>pt(f,l.codec()),l.decode=f=>dt(f,l.codec())})(o=r.Dial||(r.Dial={}));let a;(function(l){let u;l.codec=()=>(u==null&&(u=mt((f,h,d={})=>{d.lengthDelimited!==!1&&h.fork(),f.status!=null&&(h.uint32(8),r.ResponseStatus.codec().encode(f.status,h)),f.statusText!=null&&(h.uint32(18),h.string(f.statusText)),f.addr!=null&&(h.uint32(26),h.bytes(f.addr)),d.lengthDelimited!==!1&&h.ldelim()},(f,h)=>{let d={},p=h==null?f.len:f.pos+h;for(;f.pos<p;){let m=f.uint32();switch(m>>>3){case 1:d.status=r.ResponseStatus.codec().decode(f);break;case 2:d.statusText=f.string();break;case 3:d.addr=f.bytes();break;default:f.skipType(m&7);break}}return d})),u),l.encode=f=>pt(f,l.codec()),l.decode=f=>dt(f,l.codec())})(a=r.DialResponse||(r.DialResponse={}));let c;r.codec=()=>(c==null&&(c=mt((l,u,f={})=>{f.lengthDelimited!==!1&&u.fork(),l.type!=null&&(u.uint32(8),r.MessageType.codec().encode(l.type,u)),l.dial!=null&&(u.uint32(18),r.Dial.codec().encode(l.dial,u)),l.dialResponse!=null&&(u.uint32(26),r.DialResponse.codec().encode(l.dialResponse,u)),f.lengthDelimited!==!1&&u.ldelim()},(l,u)=>{let f={},h=u==null?l.len:l.pos+u;for(;l.pos<h;){let d=l.uint32();switch(d>>>3){case 1:f.type=r.MessageType.codec().decode(l);break;case 2:f.dial=r.Dial.codec().decode(l,l.uint32());break;case 3:f.dialResponse=r.DialResponse.codec().decode(l,l.uint32());break;default:l.skipType(d&7);break}}return f})),c),r.encode=l=>pt(l,r.codec()),r.decode=l=>dt(l,r.codec())})(G||(G={}));var lt=U("libp2p:autonat"),Rf=4,qS=5e3,$S=6e4,fc=class{constructor(t,e){this.components=t,this.started=!1,this._init=e,this.startupDelay=e.startupDelay??qS,this.refreshInterval=e.refreshInterval??$S,this._verifyExternalAddresses=this._verifyExternalAddresses.bind(this)}isStarted(){return this.started}async start(){this.started||(await this.components.registrar.handle(uc,t=>{this.handleIncomingAutonatStream(t).catch(e=>{lt.error(e)})},{maxInboundStreams:this._init.maxInboundStreams,maxOutboundStreams:this._init.maxOutboundStreams}),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.startupDelay),this.started=!0)}async stop(){await this.components.registrar.unhandle(uc),clearTimeout(this.verifyAddressTimeout),this.started=!1}async handleIncomingAutonatStream(t){let e=new Tf.TimeoutController(this._init.timeout);try{(0,If.setMaxListeners)?.(1/0,e.signal)}catch{}let n=this.components.addressManager.getAddresses().map(i=>i.toOptions().host);try{let i=ye(t.stream,e.signal),s=this;await Ft(i,me(),async function*(o){let a=await se(o);if(a==null){lt("No message received"),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"No message was sent"}});return}let c;try{c=G.decode(a)}catch(m){lt.error("Could not decode message",m),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"Could not decode message"}});return}let l=c.dial;if(l==null){lt.error("Dial was missing from message"),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"No Dial message found in message"}});return}let u,f=l.peer;if(f==null||f.id==null){lt.error("PeerId missing from message"),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"missing peer info"}});return}try{u=qr(f.id)}catch(m){lt.error("Invalid PeerId",m),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"bad peer id"}});return}if(lt("Incoming request from %p",u),!t.connection.remotePeer.equals(u)){lt("Target peer %p did not equal sending peer %p",u,t.connection.remotePeer),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_BAD_REQUEST,statusText:"peer id mismatch"}});return}let h=f.addrs.map(m=>It(m)).filter(m=>{let y=m.toOptions().host===t.connection.remoteAddr.toOptions().host;return lt.trace("Request to dial %s was sent from %s is same host %s",m,t.connection.remoteAddr,y),y}).filter(m=>{let y=m.toOptions().host,g=!(Yn(y)??!1);return lt.trace("Host %s was public %s",y,g),g}).filter(m=>{let y=m.toOptions().host,g=!n.includes(y);return lt.trace("Host %s was not our host %s",y,g),g}).filter(m=>{let y=!!s.components.transportManager.transportForMultiaddr(m);return lt.trace("Transport for %s is supported %s",m,y),y}).map(m=>(m.getPeerId()==null&&(m=m.encapsulate(`/p2p/${u.toString()}`)),m));if(h.length===0){lt("No valid multiaddrs for %p in message",u),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_DIAL_REFUSED,statusText:"no dialable addresses"}});return}lt("Dial multiaddrs %s for peer %p",h.map(m=>m.toString()).join(", "),u);let d="",p=h[0];for await(let m of h){let y;p=m;try{if(y=await s.components.dialer.dial(m,{signal:e.signal}),!y.remoteAddr.equals(m))throw lt.error("Tried to dial %s but dialed %s",m,y.remoteAddr),new Error("Unexpected remote address");lt("Success %p",u),yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.OK,addr:y.remoteAddr.decapsulateCode(ot("p2p").code).bytes}});return}catch(g){lt("Could not dial %p",u,g),d=g.message}finally{y!=null&&await y.close()}}yield G.encode({type:G.MessageType.DIAL_RESPONSE,dialResponse:{status:G.ResponseStatus.E_DIAL_ERROR,statusText:d,addr:p.bytes}})},Ae(),t.stream)}finally{e.clear()}}_verifyExternalAddresses(){this.verifyExternalAddresses().catch(t=>{lt.error(t)})}async verifyExternalAddresses(){if(clearTimeout(this.verifyAddressTimeout),!this.isStarted())return;let t=this.components.addressManager,e=t.getObservedAddrs().filter(s=>{let o=s.toOptions();return!(Yn(o.host)??!1)});if(e.length===0){lt("No public addresses found, not requesting verification"),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.refreshInterval);return}let n=new Tf.TimeoutController(this._init.timeout);try{(0,If.setMaxListeners)?.(1/0,n.signal)}catch{}let i=this;try{lt("verify multiaddrs %s",e.map(f=>f.toString()).join(", "));let s=G.encode({type:G.MessageType.DIAL,dial:{peer:{id:this.components.peerId.toBytes(),addrs:e.map(f=>f.bytes)}}}),a=(await cc()).toBytes(),c={},l=[];async function u(f){try{lt("Asking %p to verify multiaddr",f.id);let h=await i.components.connectionManager.openConnection(f.id,{signal:n.signal}),d=await h.newStream(uc,{signal:n.signal}),p=ye(d,n.signal),m=await Ft([s],Ae(),p,me(),async g=>await se(g));if(m==null){lt("No response received from %s",h.remotePeer);return}let y=G.decode(m);if(y.type!==G.MessageType.DIAL_RESPONSE||y.dialResponse==null){lt("Invalid autonat response from %s",h.remotePeer);return}if(y.dialResponse.status===G.ResponseStatus.OK){let g=h.remoteAddr.toOptions(),x;if(g.family===4)x=g.host.split(".")[0];else if(g.family===6)x=g.host.split(":")[0];else{lt('Remote address "%s" was not IP4 or IP6?',g.host);return}if(l.includes(x)){lt("Already have response from network segment %d - %s",x,g.host);return}l.push(x)}return y.dialResponse}catch(h){lt.error(h)}}for await(let f of Af(Qi(this.components.peerRouting.getClosestPeers(a,{signal:n.signal}),h=>async()=>await u(h)),{concurrency:Rf}))try{if(f==null)continue;let h=f.addr==null?e[0]:It(f.addr);if(lt("Autonat response for %s is %s",h,f.status),f.status===G.ResponseStatus.E_BAD_REQUEST||f.status===G.ResponseStatus.E_DIAL_REFUSED||f.addr==null&&e.length>1)continue;if(!e.some(p=>p.equals(h))){lt("Peer reported %s as %s but it was not in our observed address list",h,f.status);continue}let d=h.toString();if(c[d]==null&&(c[d]={success:0,failure:0}),f.status===G.ResponseStatus.OK?c[d].success++:f.status===G.ResponseStatus.E_DIAL_ERROR&&c[d].failure++,c[d].success===Rf){lt("%s is externally dialable",h),t.confirmObservedAddr(h);return}if(c[d].failure===Rf){lt("%s is not externally dialable",h),t.removeObservedAddr(h);return}}catch(h){lt.error("Could not verify external address",h)}}finally{n.clear(),this.verifyAddressTimeout=setTimeout(this._verifyExternalAddresses,this.refreshInterval)}}};var hc=class{constructor(t={}){this._started=!1,this._peerId=t.peerId,this._addressManager=t.addressManager,this._peerStore=t.peerStore,this._upgrader=t.upgrader,this._metrics=t.metrics,this._registrar=t.registrar,this._connectionManager=t.connectionManager,this._transportManager=t.transportManager,this._connectionGater=t.connectionGater,this._contentRouting=t.contentRouting,this._peerRouting=t.peerRouting,this._datastore=t.datastore,this._connectionProtector=t.connectionProtector,this._dht=t.dht,this._pubsub=t.pubsub,this._dialer=t.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.beforeStart!=null&&await t.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{await t.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.beforeStop!=null&&await t.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{await t.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(t=>Er(t)).map(async t=>{t.afterStop!=null&&await t.afterStop()}))}get peerId(){if(this._peerId==null)throw new w("peerId not set","ERR_SERVICE_MISSING");return this._peerId}set peerId(t){this._peerId=t}get addressManager(){if(this._addressManager==null)throw new w("addressManager not set","ERR_SERVICE_MISSING");return this._addressManager}set addressManager(t){this._addressManager=t}get peerStore(){if(this._peerStore==null)throw new w("peerStore not set","ERR_SERVICE_MISSING");return this._peerStore}set peerStore(t){this._peerStore=t}get upgrader(){if(this._upgrader==null)throw new w("upgrader not set","ERR_SERVICE_MISSING");return this._upgrader}set upgrader(t){this._upgrader=t}get registrar(){if(this._registrar==null)throw new w("registrar not set","ERR_SERVICE_MISSING");return this._registrar}set registrar(t){this._registrar=t}get connectionManager(){if(this._connectionManager==null)throw new w("connectionManager not set","ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(t){this._connectionManager=t}get transportManager(){if(this._transportManager==null)throw new w("transportManager not set","ERR_SERVICE_MISSING");return this._transportManager}set transportManager(t){this._transportManager=t}get connectionGater(){if(this._connectionGater==null)throw new w("connectionGater not set","ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(t){this._connectionGater=t}get contentRouting(){if(this._contentRouting==null)throw new w("contentRouting not set","ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(t){this._contentRouting=t}get peerRouting(){if(this._peerRouting==null)throw new w("peerRouting not set","ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(t){this._peerRouting=t}get datastore(){if(this._datastore==null)throw new w("datastore not set","ERR_SERVICE_MISSING");return this._datastore}set datastore(t){this._datastore=t}get connectionProtector(){return this._connectionProtector}set connectionProtector(t){this._connectionProtector=t}get dialer(){if(this._dialer==null)throw new w("dialer not set","ERR_SERVICE_MISSING");return this._dialer}set dialer(t){this._dialer=t}get metrics(){return this._metrics}set metrics(t){this._metrics=t}get dht(){return this._dht}set dht(t){this._dht=t}get pubsub(){return this._pubsub}set pubsub(t){this._pubsub=t}};var Bf=N(Sc(),1),Df=N(dw(),1);var pw=globalThis.fetch,mw=globalThis.Headers,sk=globalThis.Request,ok=globalThis.Response;function dc(r,t,e){return`${r}?name=${t}&type=${e}`}async function yw(r,t){return await(await pw(r,{headers:new mw({accept:"application/dns-json"}),signal:t})).json()}function Xn(r,t){return`${t}_${r}`}var Cf=Object.assign((0,Bf.default)("dns-over-http-resolver"),{error:(0,Bf.default)("dns-over-http-resolver:error")}),Lf=class{constructor(t={}){this._cache=new Df.default({max:t?.maxCache??100}),this._TXTcache=new Df.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??yw,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>t.abort())}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*e),i=t[e];t[e]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,e="A"){switch(e){case"A":return await this.resolve4(t);case"AAAA":return await this.resolve6(t);case"TXT":return await this.resolveTxt(t);default:throw new Error(`${e} is not supported`)}}async resolve4(t){let e="A",n=this._cache.get(Xn(t,e));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(dc(s,t,e),o.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(Xn(t,e),c,{ttl:l}),c}catch{o.signal.aborted&&(i=!0),Cf.error(`${s} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolve6(t){let e="AAAA",n=this._cache.get(Xn(t,e));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(dc(s,t,e),o.signal),c=a.Answer.map(u=>u.data),l=Math.min(...a.Answer.map(u=>u.TTL));return this._cache.set(Xn(t,e),c,{ttl:l}),c}catch{o.signal.aborted&&(i=!0),Cf.error(`${s} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}async resolveTxt(t){let e="TXT",n=this._TXTcache.get(Xn(t,e));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(dc(s,t,e),o.signal),c=a.Answer.map(u=>[u.data.replace(/['"]+/g,"")]),l=Math.min(...a.Answer.map(u=>u.TTL));return this._TXTcache.set(Xn(t,e),c,{ttl:l}),c}catch{o.signal.aborted&&(i=!0),Cf.error(`${s} could not resolve ${t} record ${e}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${e}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},gw=Lf;var ww=gw;var{code:WS}=ot("dnsaddr");async function Ew(r,t={}){let e=new ww;t.signal!=null&&t.signal.addEventListener("abort",()=>{e.cancel()});let n=r.getPeerId(),[,i]=r.stringTuples().find(([a])=>a===WS)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await e.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}function Pf(r){let{address:t}=r.nodeAddress();return!!Yn(t)}function pc(r,t){let e=Pf(r.multiaddr),n=Pf(t.multiaddr);return e&&!n?1:!e&&n||r.isCertified&&!t.isCertified?-1:!r.isCertified&&t.isCertified?1:0}var ZS={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{maxConnections:300,minConnections:50,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:Ew},addressSorter:pc},connectionGater:{},transportManager:{faultTolerance:an.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},identify:{protocolPrefix:"ipfs",host:{agentVersion:ju},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1,maxObservedAddresses:10},ping:{protocolPrefix:"ipfs",maxInboundStreams:2,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},autonat:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:3e4,startupDelay:5e3,refreshInterval:6e4}};function xw(r){let t=Ce(ZS,r);if(t.transports==null||t.transports.length<1)throw new w(W.ERR_TRANSPORTS_REQUIRED,S.ERR_TRANSPORTS_REQUIRED);if(t.connectionEncryption==null||t.connectionEncryption.length===0)throw new w(W.CONN_ENCRYPTION_REQUIRED,S.CONN_ENCRYPTION_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(W.ERR_PROTECTOR_REQUIRED,S.ERR_PROTECTOR_REQUIRED);return t.identify.host.agentVersion===ju&&(Lg||Bg?t.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Ks||Pg||Dg||Ng)&&(t.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),t}var vw=Symbol.for("@libp2p/peer-discovery");var mc=class extends Pt{get[vw](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}get lan(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}get(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}findProviders(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}findPeer(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}getClosestPeers(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}provide(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}put(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async getMode(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async setMode(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}async refreshRoutingTable(){throw new w(W.DHT_DISABLED,S.DHT_DISABLED)}};var yc=class extends Pt{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}get multicodecs(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getPeers(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getTopics(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}subscribe(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}unsubscribe(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}getSubscribers(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}async publish(){throw new w(W.PUBSUB_DISABLED,S.ERR_PUBSUB_DISABLED)}};var Uw=N(_r(),1),Kf=N(Uf(),1),Fw=N(tr(),1);var kw=N(Uf(),1),Ow=N(Pw(),1),Ff=N(tr(),1);var Nw=U("libp2p:dialer:dial-request"),gc=class{constructor(t){let{addrs:e,dialAction:n,dialer:i}=t;this.addrs=e,this.dialer=i,this.dialAction=n}async run(t={}){let e=this.dialer.getTokens(this.addrs.length);if(e.length<1)throw new w("No dial tokens available",S.ERR_NO_DIAL_TOKENS);let n=new Ow.default;for(let a of e)n.push(a).catch(c=>{Nw.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,Ff.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(t.signal!=null)try{(0,Ff.setMaxListeners)?.(1/0,t.signal)}catch{}let s=0,o=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let l=await n.shift();if(o)throw this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0]),new w("dialAction already succeeded",S.ERR_ALREADY_SUCCEEDED);let u=i[c];if(u==null)throw new w("dialAction did not come with an AbortController",S.ERR_INVALID_PARAMETERS);let f;try{let h=u.signal;f=await this.dialAction(a,{...t,signal:t.signal!=null?(0,kw.anySignal)([h,t.signal]):h}),i[c]=void 0}finally{s++,this.addrs.length-s>=e.length?n.push(l).catch(h=>{Nw.error(h)}):this.dialer.releaseToken(e.splice(e.indexOf(l),1)[0])}if(f==null)throw new w("dialAction led to empty object",S.ERR_TRANSPORT_DIAL_FAILED);return o=!0,f}))}catch(a){throw this.addrs.length===1&&a.name==="AggregateError"?a.errors[0]:a}finally{i.forEach(a=>{a!==void 0&&a.abort()}),e.forEach(a=>{this.dialer.releaseToken(a)})}}};var mr=U("libp2p:dialer"),wc=class{constructor(t,e={}){this.started=!1,this.addressSorter=e.addressSorter??pc,this.maxAddrsToDial=e.maxAddrsToDial??25,this.timeout=e.dialTimeout??3e4,this.maxDialsPerPeer=e.maxDialsPerPeer??4,this.tokens=[...new Array(e.maxParallelDials??100)].map((n,i)=>i),this.components=t,this.pendingDials=Is({name:"libp2p_dialler_pending_dials",metrics:t.metrics}),this.pendingDialTargets=Is({name:"libp2p_dialler_pending_dial_targets",metrics:t.metrics});for(let[n,i]of Object.entries(e.resolvers??{}))ol.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let t of this.pendingDials.values())try{t.controller.abort()}catch(e){mr.error(e)}this.pendingDials.clear();for(let t of this.pendingDialTargets.values())t.abort();this.pendingDialTargets.clear()}async dial(t,e={}){let{peerId:n,multiaddr:i}=Lo(t);if(n!=null){if(this.components.peerId.equals(n))throw new w("Tried to dial self",S.ERR_DIALED_SELF);if(i!=null&&(mr("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,[i])),await this.components.connectionGater.denyDialPeer?.(n)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",S.ERR_PEER_DIAL_INTERCEPTED)}mr("creating dial target for %p",n);let s=new AbortController,o=Mw();this.pendingDialTargets.set(o,s);let a=s.signal;e.signal!=null&&(a=(0,Kf.anySignal)([a,e.signal]));let c;try{c=await this._createDialTarget({peerId:n,multiaddr:i},{...e,signal:a})}finally{this.pendingDialTargets.delete(o)}if(c.addrs.length===0)throw new w("The dial request has no valid addresses",S.ERR_NO_VALID_ADDRESSES);let l=this.pendingDials.get(c.id)??this._createPendingDial(c,e);try{let u=await l.promise;return mr("dial succeeded to %s",c.id),u}catch(u){throw mr("dial failed to %s",c.id,u),l.controller.signal.aborted&&(u.code=S.ERR_TIMEOUT),mr.error(u),u}finally{l.destroy()}}getPendingDialTargets(){return this.pendingDialTargets}hasPendingDial(t){return xe(t)?this.pendingDials.has(t.getPeerId()??""):this.pendingDials.has(t.toString())}async _createDialTarget(t,e){let n=[];if(xe(t.multiaddr)&&n.push(t.multiaddr),!xe(t.multiaddr)&&bn(t.peerId)&&n.push(...await this._loadAddresses(t.peerId)),n=(await Promise.all(n.map(async s=>await this._resolve(s,e)))).flat().filter(s=>!!this.components.transportManager.transportForMultiaddr(s)),n=[...new Set(n.map(s=>s.toString()))].map(s=>It(s)),n.length>this.maxAddrsToDial)throw new w("dial with more addresses than allowed",S.ERR_TOO_MANY_ADDRESSES);let i=bn(t.peerId)?t.peerId:void 0;if(i!=null){let s=`/p2p/${i.toString()}`;n=n.map(o=>{let a=o.getPeerId();return a==null||!i.equals(a)?o.encapsulate(s):o})}return{id:i==null?Mw():i.toString(),addrs:n}}async _loadAddresses(t){let e=await this.components.peerStore.addressBook.get(t);return(await Promise.all(e.map(async n=>await this.components.connectionGater.denyDialMultiaddr?.(t,n.multiaddr)===!0?!1:n))).filter(tA).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(t,e={}){let n=async(l,u={})=>{if(u.signal?.aborted===!0)throw new w("already aborted",S.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(l,u).catch(f=>{throw mr.error("dial to %s failed",l,f),f})},i=new gc({addrs:t.addrs,dialAction:n,dialer:this}),s=new Uw.TimeoutController(this.timeout),o=[s.signal];e.signal!=null&&o.push(e.signal);let a=(0,Kf.anySignal)(o);try{(0,Fw.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:s,promise:i.run({...e,signal:a}),destroy:()=>{s.clear(),this.pendingDials.delete(t.id)}};return this.pendingDials.set(t.id,c),c}getTokens(t){let e=Math.min(t,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,e);return mr("%d tokens request, returning %d, %d remaining",t,e,this.tokens.length),n}releaseToken(t){this.tokens.includes(t)||(mr("token %d released",t),this.tokens.push(t))}async _resolve(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let i=await this._resolveRecord(t,e);return(await Promise.all(i.map(async a=>await this._resolve(a,e)))).flat().reduce((a,c)=>(a.find(l=>l.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(t,e){try{return t=It(t.toString()),await t.resolve(e)}catch(n){return mr.error(`multiaddr ${t.toString()} could not be resolved`,n),[]}}};function tA(r){return!!r}function Mw(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var yr=U("libp2p"),Vf=class extends Pt{constructor(t){super(),this.started=!1,this.peerId=t.peerId;let e=this.components=new hc({peerId:t.peerId,datastore:t.datastore??new po,connectionGater:{denyDialPeer:async()=>await Promise.resolve(!1),denyDialMultiaddr:async()=>await Promise.resolve(!1),denyInboundConnection:async()=>await Promise.resolve(!1),denyOutboundConnection:async()=>await Promise.resolve(!1),denyInboundEncryptedConnection:async()=>await Promise.resolve(!1),denyOutboundEncryptedConnection:async()=>await Promise.resolve(!1),denyInboundUpgradedConnection:async()=>await Promise.resolve(!1),denyOutboundUpgradedConnection:async()=>await Promise.resolve(!1),filterMultiaddrForPeer:async()=>await Promise.resolve(!0),...t.connectionGater}});e.peerStore=new oc(e,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore}),this.services=[e],t.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(t.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",o=>{let{detail:a}=o;this.dispatchEvent(new $("peer:discovery",{detail:a}))}),t.connectionProtector!=null&&(this.components.connectionProtector=t.connectionProtector(e)),this.components.upgrader=new Ba(this.components,{connectionEncryption:(t.connectionEncryption??[]).map(o=>this.configureComponent(o(this.components))),muxers:(t.streamMuxers??[]).map(o=>this.configureComponent(o(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new wc(this.components,t.connectionManager),this.connectionManager=this.components.connectionManager=new No(this.components,t.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",o=>{this.dispatchEvent(new $("peer:disconnect",{detail:o.detail}))}),this.components.connectionManager.addEventListener("peer:connect",o=>{this.dispatchEvent(new $("peer:connect",{detail:o.detail}))}),this.registrar=this.components.registrar=new Ca(this.components),this.components.transportManager=new ba(this.components,t.transportManager),this.components.addressManager=new So(this.components,t.addresses),this.configureComponent(new Ua(this.components));let n=qn.generateOptions();this.keychain=this.configureComponent(new qn(this.components,{...n,...t.keychain})),this.services.push(new Ma(this.components,t.nat)),this.identifyService=new Fi(this.components,{...t.identify}),this.configureComponent(this.identifyService),t.dht!=null?this.dht=this.components.dht=t.dht(this.components):this.dht=new mc,t.pubsub!=null?this.pubsub=this.components.pubsub=t.pubsub(this.components):this.pubsub=new yc;let i=(t.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));t.dht!=null&&(i.push(this.configureComponent(new Fa(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new vo(this.components,{...t.peerRouting,routers:i}));let s=(t.contentRouters??[]).map(o=>this.configureComponent(o(this.components)));t.dht!=null&&s.push(this.configureComponent(new ac(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new _o(this.components,{routers:s})),this.fetchService=this.configureComponent(new La(this.components,{...t.fetch})),this.pingService=this.configureComponent(new Pa(this.components,{...t.ping})),this.autonatService=this.configureComponent(new fc(this.components,{...t.autonat})),this.configureComponent(new ko(this.components,{minConnections:t.connectionManager.minConnections,autoDialInterval:t.connectionManager.autoDialInterval})),t.relay!=null&&(this.circuitService=this.configureComponent(t.relay(this.components)));for(let o of t.peerDiscovery??[])this.configureComponent(o(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)});t.transports.forEach(o=>{this.components.transportManager.add(this.configureComponent(o(this.components)))})}configureComponent(t){return Er(t)&&this.services.push(t),t}async start(){if(this.started)return;this.started=!0,yr("libp2p is starting"),(await this.keychain.listKeys()).find(e=>e.name==="self")==null&&(yr("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await Promise.all(this.services.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(this.services.map(async e=>{await e.start()})),await Promise.all(this.services.map(async e=>{e.afterStart!=null&&await e.afterStart()})),yr("libp2p has started")}catch(e){throw yr.error("An error occurred starting libp2p",e),await this.stop(),e}}async stop(){this.started&&(yr("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(this.services.map(async t=>{await t.stop()})),await Promise.all(this.services.map(async t=>{t.afterStop!=null&&await t.afterStop()})),yr("libp2p has stopped"))}isStarted(){return this.started}getConnections(t){return this.components.connectionManager.getConnections(t)}getPeers(){let t=new Ir;for(let e of this.components.connectionManager.getConnections())t.add(e.remotePeer);return Array.from(t)}async dial(t,e={}){return await this.components.connectionManager.openConnection(t,e)}async dialProtocol(t,e,n={}){if(e==null)throw new w("no protocols were provided to open a stream",S.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(e=Array.isArray(e)?e:[e],e.length===0)throw new w("no protocols were provided to open a stream",S.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(t,n)).newStream(e,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t){xe(t)&&(t=at(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t)}async getPublicKey(t,e={}){if(yr("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw new w("Public key was not in the peer store and the DHT is not enabled",S.ERR_NO_ROUTERS_AVAILABLE);let i=Ut([F("/pk/"),t.multihash.digest]);for await(let s of this.dht.get(i,e))if(s.name==="VALUE"){let o=Ss(s.value);return await this.peerStore.keyBook.set(t,s.value),o.bytes}throw new w(`Node not responding with its public key: ${t.toString()}`,S.ERR_INVALID_RECORD)}async fetch(t,e,n={}){if(xe(t)){let i=at(t.getPeerId()??"");await this.components.peerStore.addressBook.add(i,[t]),t=i}return await this.fetchService.fetch(t,e,n)}async ping(t,e={}){if(xe(t)){let n=at(t.getPeerId()??"");await this.components.peerStore.addressBook.add(n,[t]),t=n}return await this.pingService.ping(t,e)}async handle(t,e,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,e,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async e=>{await this.components.registrar.unhandle(e)}))}async register(t,e){return await this.registrar.register(t,e)}unregister(t){this.registrar.unregister(t)}onDiscoveryPeer(t){let{detail:e}=t;if(e.id.toString()===this.peerId.toString()){yr.error(new Error(S.ERR_DISCOVERED_SELF));return}e.multiaddrs.length>0&&this.components.peerStore.addressBook.add(e.id,e.multiaddrs).catch(n=>{yr.error(n)}),e.protocols.length>0&&this.components.peerStore.protoBook.set(e.id,e.protocols).catch(n=>{yr.error(n)}),this.dispatchEvent(new $("peer:discovery",{detail:e}))}};async function Kw(r){if(r.peerId==null){let t=r.datastore;if(t!=null)try{let e=new qn({datastore:t},Ce(qn.generateOptions(),r.keychain));r.peerId=await e.exportPeerId("self")}catch(e){if(e.code!=="ERR_NOT_FOUND")throw e}}return r.peerId==null&&(r.peerId=await cc()),new Vf(xw(r))}async function eA(r){let t=await Kw(r);return r.start!==!1&&await t.start(),t}return Gw(rA);})();
50
50
  /*! Bundled license information:
51
51
 
52
52
  @noble/secp256k1/lib/esm/index.js: