@inco/js 0.2.16 → 0.3.0

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 (535) hide show
  1. package/dist/cjs/attestedcompute/attested-compute.d.ts +38 -0
  2. package/dist/cjs/attestedcompute/attested-compute.js +98 -0
  3. package/dist/cjs/attestedcompute/types.d.ts +34 -0
  4. package/dist/cjs/attestedcompute/types.js +46 -0
  5. package/dist/{attesteddecrypt → cjs/attesteddecrypt}/attested-decrypt.d.ts +16 -11
  6. package/dist/cjs/attesteddecrypt/attested-decrypt.js +93 -0
  7. package/dist/cjs/attesteddecrypt/index.d.ts +2 -0
  8. package/dist/{generated/abis → cjs/attesteddecrypt}/index.js +3 -3
  9. package/dist/cjs/attesteddecrypt/types.d.ts +20 -0
  10. package/dist/{attesteddecrypt → cjs/attesteddecrypt}/types.js +1 -1
  11. package/dist/cjs/binary.js +82 -0
  12. package/dist/{chain.d.ts → cjs/chain.d.ts} +3 -0
  13. package/dist/cjs/chain.js +31 -0
  14. package/dist/{encryption → cjs/encryption}/encryption.d.ts +2 -2
  15. package/dist/cjs/encryption/encryption.js +109 -0
  16. package/dist/cjs/encryption/index.d.ts +1 -0
  17. package/dist/{encryption → cjs/encryption}/index.js +2 -2
  18. package/dist/{fhevm → cjs/fhevm}/fhe-environment.d.ts +1 -1
  19. package/dist/cjs/fhevm/fhe-environment.js +11 -0
  20. package/dist/{fhevm → cjs/fhevm}/fhevm.d.ts +1 -1
  21. package/dist/cjs/fhevm/fhevm.js +145 -0
  22. package/dist/cjs/fhevm/index.d.ts +1 -0
  23. package/dist/{fhevm → cjs/fhevm}/index.js +2 -2
  24. package/dist/{fhevm → cjs/fhevm}/reencrypt.d.ts +3 -3
  25. package/dist/cjs/fhevm/reencrypt.js +127 -0
  26. package/dist/{fhevm → cjs/fhevm}/tfhe.d.ts +1 -1
  27. package/dist/cjs/fhevm/tfhe.js +336 -0
  28. package/dist/{fhevm → cjs/fhevm}/types.d.ts +1 -1
  29. package/dist/cjs/fhevm/types.js +29 -0
  30. package/dist/cjs/generated/abis/addTwo.js +62 -0
  31. package/dist/cjs/generated/abis/inco-fhevm.js +681 -0
  32. package/dist/{generated → cjs/generated}/abis/lightning.d.ts +4 -0
  33. package/dist/cjs/generated/abis/lightning.js +1609 -0
  34. package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.d.ts +1 -1
  35. package/dist/{generated → cjs/generated}/es/cosmos/msg/v1/msg_pb.js +6 -6
  36. package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.d.ts +1 -1
  37. package/dist/{generated → cjs/generated}/es/cosmos_proto/cosmos_pb.js +16 -16
  38. package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.d.ts +1 -1
  39. package/dist/{generated → cjs/generated}/es/google/api/annotations_pb.js +4 -4
  40. package/dist/{generated → cjs/generated}/es/google/api/http_pb.d.ts +1 -1
  41. package/dist/{generated → cjs/generated}/es/google/api/http_pb.js +6 -6
  42. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.d.ts +1 -1
  43. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/events_pb.js +6 -6
  44. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.d.ts +1 -1
  45. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/genesis_pb.js +11 -11
  46. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.d.ts +1 -1
  47. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/query_pb.js +23 -23
  48. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.d.ts +1 -1
  49. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/tx_pb.js +23 -23
  50. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.d.ts +1 -1
  51. package/dist/{generated → cjs/generated}/es/inco/fhe/v1/types_pb.js +17 -17
  52. package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/kms_service_pb.d.ts +239 -33
  53. package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +161 -0
  54. package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.d.ts +1 -1
  55. package/dist/{generated → cjs/generated}/es/inco/kms/lite/v1/types_pb.js +11 -11
  56. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.d.ts +1 -1
  57. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/genesis_pb.js +6 -6
  58. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.d.ts +1 -1
  59. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/query_pb.js +9 -9
  60. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.d.ts +1 -1
  61. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/tx_pb.js +11 -11
  62. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.d.ts +1 -1
  63. package/dist/{generated → cjs/generated}/es/inco/preflight/v1/types_pb.js +9 -9
  64. package/dist/{generated → cjs/generated}/fhe-environments.js +1 -1
  65. package/dist/{generated → cjs/generated}/lightning.d.ts +42 -0
  66. package/dist/{generated → cjs/generated}/lightning.js +45 -1
  67. package/dist/cjs/generated/local-node.d.ts +34 -0
  68. package/dist/cjs/generated/local-node.js +38 -0
  69. package/dist/{generated → cjs/generated}/ts/amino/amino.js +2 -2
  70. package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.js +49 -49
  71. package/dist/cjs/generated/ts/cometbft/crypto/v1/keys.js +108 -0
  72. package/dist/cjs/generated/ts/cometbft/crypto/v1/proof.js +433 -0
  73. package/dist/cjs/generated/ts/cometbft/types/v1/params.js +716 -0
  74. package/dist/cjs/generated/ts/cometbft/types/v1/validator.js +358 -0
  75. package/dist/cjs/generated/ts/cosmos/app/v1alpha1/module.js +221 -0
  76. package/dist/{generated → cjs/generated}/ts/cosmos/msg/v1/msg.js +2 -2
  77. package/dist/cjs/generated/ts/cosmos_proto/cosmos.js +216 -0
  78. package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.js +2 -2
  79. package/dist/{generated → cjs/generated}/ts/google/api/annotations.js +2 -2
  80. package/dist/cjs/generated/ts/google/api/http.js +356 -0
  81. package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.js +35 -35
  82. package/dist/cjs/generated/ts/google/protobuf/duration.js +93 -0
  83. package/dist/cjs/generated/ts/google/protobuf/timestamp.js +93 -0
  84. package/dist/cjs/generated/ts/google/protobuf/wrappers.js +509 -0
  85. package/dist/cjs/generated/ts/inco/abci/v1/types.js +73 -0
  86. package/dist/cjs/generated/ts/inco/fhe/module/v1/module.js +66 -0
  87. package/dist/cjs/generated/ts/inco/fhe/v1/events.js +190 -0
  88. package/dist/cjs/generated/ts/inco/fhe/v1/genesis.js +714 -0
  89. package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/query.d.ts +19 -19
  90. package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/query.js +20 -20
  91. package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/tx.d.ts +19 -19
  92. package/dist/cjs/generated/ts/inco/fhe/v1/tx.js +1236 -0
  93. package/dist/cjs/generated/ts/inco/fhe/v1/types.js +990 -0
  94. package/dist/cjs/generated/ts/inco/originchain/module/v1/module.js +66 -0
  95. package/dist/cjs/generated/ts/inco/originchain/v1/abci.js +331 -0
  96. package/dist/cjs/generated/ts/inco/originchain/v1/events.js +216 -0
  97. package/dist/cjs/generated/ts/inco/originchain/v1/genesis.js +69 -0
  98. package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/query.d.ts +5 -5
  99. package/dist/cjs/generated/ts/inco/originchain/v1/query.js +280 -0
  100. package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/tx.d.ts +3 -3
  101. package/dist/cjs/generated/ts/inco/originchain/v1/tx.js +140 -0
  102. package/dist/cjs/generated/ts/inco/originchain/v1/types.js +203 -0
  103. package/dist/cjs/generated/ts/inco/preflight/module/v1/module.js +66 -0
  104. package/dist/cjs/generated/ts/inco/preflight/v1/genesis.js +185 -0
  105. package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/query.d.ts +5 -5
  106. package/dist/cjs/generated/ts/inco/preflight/v1/query.js +259 -0
  107. package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/tx.d.ts +7 -7
  108. package/dist/cjs/generated/ts/inco/preflight/v1/tx.js +448 -0
  109. package/dist/cjs/generated/ts/inco/preflight/v1/types.js +398 -0
  110. package/dist/{handle.d.ts → cjs/handle.d.ts} +1 -1
  111. package/dist/{handle.js → cjs/handle.js} +5 -5
  112. package/dist/cjs/index.d.ts +5 -0
  113. package/dist/{index.js → cjs/index.js} +5 -5
  114. package/dist/{kms → cjs/kms}/client.d.ts +2 -2
  115. package/dist/{kms → cjs/kms}/client.js +3 -3
  116. package/dist/{l1 → cjs/l1}/client.d.ts +6 -6
  117. package/dist/{l1 → cjs/l1}/client.js +8 -8
  118. package/dist/cjs/l1/index.d.ts +2 -0
  119. package/dist/{l1 → cjs/l1}/index.js +3 -3
  120. package/dist/{l1 → cjs/l1}/preflight.d.ts +3 -3
  121. package/dist/cjs/l1/preflight.js +42 -0
  122. package/dist/cjs/lite/attested-compute.d.ts +4 -0
  123. package/dist/cjs/lite/attested-compute.js +6 -0
  124. package/dist/{lite → cjs/lite}/attested-decrypt.d.ts +1 -1
  125. package/dist/cjs/lite/attested-decrypt.js +6 -0
  126. package/dist/{lite → cjs/lite}/deployments.d.ts +2 -2
  127. package/dist/cjs/lite/deployments.js +21 -0
  128. package/dist/{lite → cjs/lite}/ecies.d.ts +6 -6
  129. package/dist/cjs/lite/ecies.js +135 -0
  130. package/dist/{lite → cjs/lite}/hadu.d.ts +1 -1
  131. package/dist/cjs/lite/hadu.js +41 -0
  132. package/dist/cjs/lite/index.d.ts +7 -0
  133. package/dist/{attesteddecrypt → cjs/lite}/index.js +7 -3
  134. package/dist/{lite → cjs/lite}/lightning.d.ts +20 -9
  135. package/dist/cjs/lite/lightning.js +217 -0
  136. package/dist/{lite → cjs/lite}/reencrypt.d.ts +7 -6
  137. package/dist/cjs/lite/reencrypt.js +142 -0
  138. package/dist/cjs/local/index.d.ts +1 -0
  139. package/dist/{local → cjs/local}/index.js +2 -2
  140. package/dist/{local → cjs/local}/local-node.d.ts +4 -1
  141. package/dist/cjs/local/local-node.js +33 -0
  142. package/dist/{reencryption → cjs/reencryption}/eip712.js +9 -7
  143. package/dist/cjs/reencryption/index.d.ts +2 -0
  144. package/dist/cjs/reencryption/index.js +19 -0
  145. package/dist/{reencryption → cjs/reencryption}/types.d.ts +6 -8
  146. package/dist/{reencryption → cjs/reencryption}/types.js +1 -1
  147. package/dist/{retry.js → cjs/retry.js} +1 -1
  148. package/dist/{schema.js → cjs/schema.js} +1 -1
  149. package/dist/{viem.d.ts → cjs/viem.d.ts} +363 -1
  150. package/dist/cjs/viem.js +12 -0
  151. package/dist/esm/attestedcompute/attested-compute.d.ts +38 -0
  152. package/dist/esm/attestedcompute/attested-compute.js +95 -0
  153. package/dist/esm/attestedcompute/types.d.ts +34 -0
  154. package/dist/esm/attestedcompute/types.js +42 -0
  155. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +40 -0
  156. package/dist/esm/attesteddecrypt/attested-decrypt.js +89 -0
  157. package/dist/esm/attesteddecrypt/index.d.ts +2 -0
  158. package/dist/esm/attesteddecrypt/index.js +3 -0
  159. package/dist/esm/attesteddecrypt/types.d.ts +20 -0
  160. package/dist/esm/attesteddecrypt/types.js +12 -0
  161. package/dist/esm/binary.d.ts +21 -0
  162. package/dist/esm/binary.js +67 -0
  163. package/dist/esm/chain.d.ts +25 -0
  164. package/dist/esm/chain.js +27 -0
  165. package/dist/esm/encryption/encryption.d.ts +119 -0
  166. package/dist/esm/encryption/encryption.js +101 -0
  167. package/dist/esm/encryption/index.d.ts +1 -0
  168. package/dist/esm/encryption/index.js +2 -0
  169. package/dist/esm/fhevm/fhe-environment.d.ts +9 -0
  170. package/dist/esm/fhevm/fhe-environment.js +8 -0
  171. package/dist/esm/fhevm/fhevm.d.ts +41 -0
  172. package/dist/esm/fhevm/fhevm.js +139 -0
  173. package/dist/esm/fhevm/index.d.ts +1 -0
  174. package/dist/esm/fhevm/index.js +2 -0
  175. package/dist/esm/fhevm/reencrypt.d.ts +20 -0
  176. package/dist/esm/fhevm/reencrypt.js +123 -0
  177. package/dist/esm/fhevm/tfhe.d.ts +74 -0
  178. package/dist/esm/fhevm/tfhe.js +328 -0
  179. package/dist/esm/fhevm/types.d.ts +3 -0
  180. package/dist/esm/fhevm/types.js +26 -0
  181. package/dist/esm/generated/abis/addTwo.d.ts +83 -0
  182. package/dist/{generated → esm/generated}/abis/addTwo.js +2 -5
  183. package/dist/esm/generated/abis/inco-fhevm.d.ts +874 -0
  184. package/dist/{generated → esm/generated}/abis/inco-fhevm.js +3 -6
  185. package/dist/esm/generated/abis/lightning.d.ts +2230 -0
  186. package/dist/{generated → esm/generated}/abis/lightning.js +6 -6
  187. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.d.ts +29 -0
  188. package/dist/esm/generated/es/cosmos/msg/v1/msg_pb.js +33 -0
  189. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.d.ts +174 -0
  190. package/dist/esm/generated/es/cosmos_proto/cosmos_pb.js +115 -0
  191. package/dist/esm/generated/es/google/api/annotations_pb.d.ts +13 -0
  192. package/dist/esm/generated/es/google/api/annotations_pb.js +27 -0
  193. package/dist/esm/generated/es/google/api/http_pb.d.ts +440 -0
  194. package/dist/esm/generated/es/google/api/http_pb.js +34 -0
  195. package/dist/esm/generated/es/inco/fhe/v1/events_pb.d.ts +79 -0
  196. package/dist/esm/generated/es/inco/fhe/v1/events_pb.js +21 -0
  197. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.d.ts +252 -0
  198. package/dist/esm/generated/es/inco/fhe/v1/genesis_pb.js +46 -0
  199. package/dist/esm/generated/es/inco/fhe/v1/query_pb.d.ts +569 -0
  200. package/dist/esm/generated/es/inco/fhe/v1/query_pb.js +108 -0
  201. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.d.ts +494 -0
  202. package/dist/esm/generated/es/inco/fhe/v1/tx_pb.js +108 -0
  203. package/dist/esm/generated/es/inco/fhe/v1/types_pb.d.ts +419 -0
  204. package/dist/esm/generated/es/inco/fhe/v1/types_pb.js +133 -0
  205. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +526 -0
  206. package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +158 -0
  207. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.d.ts +212 -0
  208. package/dist/esm/generated/es/inco/kms/lite/v1/types_pb.js +44 -0
  209. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.d.ts +56 -0
  210. package/dist/esm/generated/es/inco/preflight/v1/genesis_pb.js +20 -0
  211. package/dist/esm/generated/es/inco/preflight/v1/query_pb.d.ts +100 -0
  212. package/dist/esm/generated/es/inco/preflight/v1/query_pb.js +38 -0
  213. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.d.ts +193 -0
  214. package/dist/esm/generated/es/inco/preflight/v1/tx_pb.js +48 -0
  215. package/dist/esm/generated/es/inco/preflight/v1/types_pb.d.ts +144 -0
  216. package/dist/esm/generated/es/inco/preflight/v1/types_pb.js +34 -0
  217. package/dist/esm/generated/fhe-environments.d.ts +14 -0
  218. package/dist/esm/generated/fhe-environments.js +15 -0
  219. package/dist/esm/generated/lightning.d.ts +253 -0
  220. package/dist/esm/generated/lightning.js +267 -0
  221. package/dist/esm/generated/local-node.d.ts +34 -0
  222. package/dist/esm/generated/local-node.js +35 -0
  223. package/dist/esm/generated/ts/amino/amino.d.ts +1 -0
  224. package/dist/esm/generated/ts/amino/amino.js +8 -0
  225. package/dist/esm/generated/ts/cometbft/abci/v1/types.d.ts +597 -0
  226. package/dist/esm/generated/ts/cometbft/abci/v1/types.js +5063 -0
  227. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.d.ts +27 -0
  228. package/dist/esm/generated/ts/cometbft/crypto/v1/keys.js +105 -0
  229. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.d.ts +60 -0
  230. package/dist/esm/generated/ts/cometbft/crypto/v1/proof.js +430 -0
  231. package/dist/esm/generated/ts/cometbft/types/v1/params.d.ts +179 -0
  232. package/dist/esm/generated/ts/cometbft/types/v1/params.js +713 -0
  233. package/dist/esm/generated/ts/cometbft/types/v1/validator.d.ts +61 -0
  234. package/dist/esm/generated/ts/cometbft/types/v1/validator.js +353 -0
  235. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.d.ts +104 -0
  236. package/dist/esm/generated/ts/cosmos/app/v1alpha1/module.js +218 -0
  237. package/dist/esm/generated/ts/cosmos/msg/v1/msg.d.ts +1 -0
  238. package/dist/esm/generated/ts/cosmos/msg/v1/msg.js +8 -0
  239. package/dist/esm/generated/ts/cosmos_proto/cosmos.d.ts +80 -0
  240. package/dist/esm/generated/ts/cosmos_proto/cosmos.js +211 -0
  241. package/dist/esm/generated/ts/gogoproto/gogo.d.ts +1 -0
  242. package/dist/esm/generated/ts/gogoproto/gogo.js +8 -0
  243. package/dist/esm/generated/ts/google/api/annotations.d.ts +1 -0
  244. package/dist/esm/generated/ts/google/api/annotations.js +8 -0
  245. package/dist/esm/generated/ts/google/api/http.d.ts +371 -0
  246. package/dist/esm/generated/ts/google/api/http.js +353 -0
  247. package/dist/esm/generated/ts/google/protobuf/descriptor.d.ts +1228 -0
  248. package/dist/esm/generated/ts/google/protobuf/descriptor.js +5070 -0
  249. package/dist/esm/generated/ts/google/protobuf/duration.d.ts +99 -0
  250. package/dist/esm/generated/ts/google/protobuf/duration.js +90 -0
  251. package/dist/esm/generated/ts/google/protobuf/timestamp.d.ts +128 -0
  252. package/dist/esm/generated/ts/google/protobuf/timestamp.js +90 -0
  253. package/dist/esm/generated/ts/google/protobuf/wrappers.d.ts +111 -0
  254. package/dist/esm/generated/ts/google/protobuf/wrappers.js +506 -0
  255. package/dist/esm/generated/ts/inco/abci/v1/types.d.ts +35 -0
  256. package/dist/esm/generated/ts/inco/abci/v1/types.js +70 -0
  257. package/dist/esm/generated/ts/inco/fhe/module/v1/module.d.ts +31 -0
  258. package/dist/esm/generated/ts/inco/fhe/module/v1/module.js +63 -0
  259. package/dist/esm/generated/ts/inco/fhe/v1/events.d.ts +66 -0
  260. package/dist/esm/generated/ts/inco/fhe/v1/events.js +187 -0
  261. package/dist/esm/generated/ts/inco/fhe/v1/genesis.d.ts +117 -0
  262. package/dist/esm/generated/ts/inco/fhe/v1/genesis.js +711 -0
  263. package/dist/esm/generated/ts/inco/fhe/v1/query.d.ts +366 -0
  264. package/dist/esm/generated/ts/inco/fhe/v1/query.js +1391 -0
  265. package/dist/esm/generated/ts/inco/fhe/v1/tx.d.ts +409 -0
  266. package/dist/esm/generated/ts/inco/fhe/v1/tx.js +1233 -0
  267. package/dist/esm/generated/ts/inco/fhe/v1/types.d.ts +225 -0
  268. package/dist/esm/generated/ts/inco/fhe/v1/types.js +985 -0
  269. package/dist/esm/generated/ts/inco/originchain/module/v1/module.d.ts +30 -0
  270. package/dist/esm/generated/ts/inco/originchain/module/v1/module.js +63 -0
  271. package/dist/esm/generated/ts/inco/originchain/v1/abci.d.ts +80 -0
  272. package/dist/esm/generated/ts/inco/originchain/v1/abci.js +328 -0
  273. package/dist/esm/generated/ts/inco/originchain/v1/events.d.ts +60 -0
  274. package/dist/esm/generated/ts/inco/originchain/v1/events.js +213 -0
  275. package/dist/esm/generated/ts/inco/originchain/v1/genesis.d.ts +28 -0
  276. package/dist/esm/generated/ts/inco/originchain/v1/genesis.js +66 -0
  277. package/dist/esm/generated/ts/inco/originchain/v1/query.d.ts +116 -0
  278. package/dist/esm/generated/ts/inco/originchain/v1/query.js +277 -0
  279. package/dist/esm/generated/ts/inco/originchain/v1/tx.d.ts +89 -0
  280. package/dist/esm/generated/ts/inco/originchain/v1/tx.js +137 -0
  281. package/dist/esm/generated/ts/inco/originchain/v1/types.d.ts +58 -0
  282. package/dist/esm/generated/ts/inco/originchain/v1/types.js +200 -0
  283. package/dist/esm/generated/ts/inco/preflight/module/v1/module.d.ts +31 -0
  284. package/dist/esm/generated/ts/inco/preflight/module/v1/module.js +63 -0
  285. package/dist/esm/generated/ts/inco/preflight/v1/genesis.d.ts +41 -0
  286. package/dist/esm/generated/ts/inco/preflight/v1/genesis.js +182 -0
  287. package/dist/esm/generated/ts/inco/preflight/v1/query.d.ts +93 -0
  288. package/dist/esm/generated/ts/inco/preflight/v1/query.js +256 -0
  289. package/dist/esm/generated/ts/inco/preflight/v1/tx.d.ts +187 -0
  290. package/dist/esm/generated/ts/inco/preflight/v1/tx.js +445 -0
  291. package/dist/esm/generated/ts/inco/preflight/v1/types.d.ts +84 -0
  292. package/dist/esm/generated/ts/inco/preflight/v1/types.js +395 -0
  293. package/dist/esm/handle.d.ts +41 -0
  294. package/dist/esm/handle.js +94 -0
  295. package/dist/esm/index.d.ts +5 -0
  296. package/dist/esm/index.js +6 -0
  297. package/dist/esm/kms/client.d.ts +8 -0
  298. package/dist/esm/kms/client.js +35 -0
  299. package/dist/esm/l1/client.d.ts +35 -0
  300. package/dist/esm/l1/client.js +93 -0
  301. package/dist/esm/l1/index.d.ts +2 -0
  302. package/dist/esm/l1/index.js +3 -0
  303. package/dist/esm/l1/preflight.d.ts +20 -0
  304. package/dist/esm/l1/preflight.js +39 -0
  305. package/dist/esm/lite/attested-compute.d.ts +4 -0
  306. package/dist/esm/lite/attested-compute.js +3 -0
  307. package/dist/esm/lite/attested-decrypt.d.ts +3 -0
  308. package/dist/esm/lite/attested-decrypt.js +3 -0
  309. package/dist/esm/lite/deployments.d.ts +6 -0
  310. package/dist/esm/lite/deployments.js +17 -0
  311. package/dist/esm/lite/ecies.d.ts +26 -0
  312. package/dist/esm/lite/ecies.js +124 -0
  313. package/dist/esm/lite/hadu.d.ts +24 -0
  314. package/dist/esm/lite/hadu.js +36 -0
  315. package/dist/esm/lite/index.d.ts +7 -0
  316. package/dist/esm/lite/index.js +7 -0
  317. package/dist/esm/lite/lightning.d.ts +132 -0
  318. package/dist/esm/lite/lightning.js +213 -0
  319. package/dist/esm/lite/reencrypt.d.ts +24 -0
  320. package/dist/esm/lite/reencrypt.js +132 -0
  321. package/dist/esm/local/index.d.ts +1 -0
  322. package/dist/esm/local/index.js +2 -0
  323. package/dist/esm/local/local-node.d.ts +22 -0
  324. package/dist/esm/local/local-node.js +29 -0
  325. package/dist/esm/reencryption/eip712.d.ts +29 -0
  326. package/dist/esm/reencryption/eip712.js +83 -0
  327. package/dist/esm/reencryption/index.d.ts +2 -0
  328. package/dist/esm/reencryption/index.js +3 -0
  329. package/dist/esm/reencryption/types.d.ts +25 -0
  330. package/dist/esm/reencryption/types.js +2 -0
  331. package/dist/esm/retry.d.ts +15 -0
  332. package/dist/esm/retry.js +25 -0
  333. package/dist/esm/schema.d.ts +4 -0
  334. package/dist/esm/schema.js +15 -0
  335. package/dist/esm/viem.d.ts +789 -0
  336. package/dist/esm/viem.js +8 -0
  337. package/dist/types/attestedcompute/attested-compute.d.ts +38 -0
  338. package/dist/types/attestedcompute/types.d.ts +34 -0
  339. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +40 -0
  340. package/dist/types/attesteddecrypt/index.d.ts +2 -0
  341. package/dist/types/attesteddecrypt/types.d.ts +20 -0
  342. package/dist/types/binary.d.ts +21 -0
  343. package/dist/types/chain.d.ts +25 -0
  344. package/dist/types/encryption/encryption.d.ts +119 -0
  345. package/dist/types/encryption/index.d.ts +1 -0
  346. package/dist/types/fhevm/fhe-environment.d.ts +9 -0
  347. package/dist/types/fhevm/fhevm.d.ts +41 -0
  348. package/dist/types/fhevm/index.d.ts +1 -0
  349. package/dist/types/fhevm/reencrypt.d.ts +20 -0
  350. package/dist/types/fhevm/tfhe.d.ts +74 -0
  351. package/dist/types/fhevm/types.d.ts +3 -0
  352. package/dist/types/generated/abis/addTwo.d.ts +83 -0
  353. package/dist/types/generated/abis/inco-fhevm.d.ts +874 -0
  354. package/dist/types/generated/abis/lightning.d.ts +2230 -0
  355. package/dist/types/generated/es/cosmos/msg/v1/msg_pb.d.ts +29 -0
  356. package/dist/types/generated/es/cosmos_proto/cosmos_pb.d.ts +174 -0
  357. package/dist/types/generated/es/google/api/annotations_pb.d.ts +13 -0
  358. package/dist/types/generated/es/google/api/http_pb.d.ts +440 -0
  359. package/dist/types/generated/es/inco/fhe/v1/events_pb.d.ts +79 -0
  360. package/dist/types/generated/es/inco/fhe/v1/genesis_pb.d.ts +252 -0
  361. package/dist/types/generated/es/inco/fhe/v1/query_pb.d.ts +569 -0
  362. package/dist/types/generated/es/inco/fhe/v1/tx_pb.d.ts +494 -0
  363. package/dist/types/generated/es/inco/fhe/v1/types_pb.d.ts +419 -0
  364. package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +526 -0
  365. package/dist/types/generated/es/inco/kms/lite/v1/types_pb.d.ts +212 -0
  366. package/dist/types/generated/es/inco/preflight/v1/genesis_pb.d.ts +56 -0
  367. package/dist/types/generated/es/inco/preflight/v1/query_pb.d.ts +100 -0
  368. package/dist/types/generated/es/inco/preflight/v1/tx_pb.d.ts +193 -0
  369. package/dist/types/generated/es/inco/preflight/v1/types_pb.d.ts +144 -0
  370. package/dist/types/generated/fhe-environments.d.ts +14 -0
  371. package/dist/types/generated/lightning.d.ts +253 -0
  372. package/dist/types/generated/local-node.d.ts +34 -0
  373. package/dist/types/generated/ts/amino/amino.d.ts +1 -0
  374. package/dist/types/generated/ts/cometbft/abci/v1/types.d.ts +597 -0
  375. package/dist/types/generated/ts/cometbft/crypto/v1/keys.d.ts +27 -0
  376. package/dist/types/generated/ts/cometbft/crypto/v1/proof.d.ts +60 -0
  377. package/dist/types/generated/ts/cometbft/types/v1/params.d.ts +179 -0
  378. package/dist/types/generated/ts/cometbft/types/v1/validator.d.ts +61 -0
  379. package/dist/types/generated/ts/cosmos/app/v1alpha1/module.d.ts +104 -0
  380. package/dist/types/generated/ts/cosmos/msg/v1/msg.d.ts +1 -0
  381. package/dist/types/generated/ts/cosmos_proto/cosmos.d.ts +80 -0
  382. package/dist/types/generated/ts/gogoproto/gogo.d.ts +1 -0
  383. package/dist/types/generated/ts/google/api/annotations.d.ts +1 -0
  384. package/dist/types/generated/ts/google/api/http.d.ts +371 -0
  385. package/dist/types/generated/ts/google/protobuf/descriptor.d.ts +1228 -0
  386. package/dist/types/generated/ts/google/protobuf/duration.d.ts +99 -0
  387. package/dist/types/generated/ts/google/protobuf/timestamp.d.ts +128 -0
  388. package/dist/types/generated/ts/google/protobuf/wrappers.d.ts +111 -0
  389. package/dist/types/generated/ts/inco/abci/v1/types.d.ts +35 -0
  390. package/dist/types/generated/ts/inco/fhe/module/v1/module.d.ts +31 -0
  391. package/dist/types/generated/ts/inco/fhe/v1/events.d.ts +66 -0
  392. package/dist/types/generated/ts/inco/fhe/v1/genesis.d.ts +117 -0
  393. package/dist/types/generated/ts/inco/fhe/v1/query.d.ts +366 -0
  394. package/dist/types/generated/ts/inco/fhe/v1/tx.d.ts +409 -0
  395. package/dist/types/generated/ts/inco/fhe/v1/types.d.ts +225 -0
  396. package/dist/types/generated/ts/inco/originchain/module/v1/module.d.ts +30 -0
  397. package/dist/types/generated/ts/inco/originchain/v1/abci.d.ts +80 -0
  398. package/dist/types/generated/ts/inco/originchain/v1/events.d.ts +60 -0
  399. package/dist/types/generated/ts/inco/originchain/v1/genesis.d.ts +28 -0
  400. package/dist/types/generated/ts/inco/originchain/v1/query.d.ts +116 -0
  401. package/dist/types/generated/ts/inco/originchain/v1/tx.d.ts +89 -0
  402. package/dist/types/generated/ts/inco/originchain/v1/types.d.ts +58 -0
  403. package/dist/types/generated/ts/inco/preflight/module/v1/module.d.ts +31 -0
  404. package/dist/types/generated/ts/inco/preflight/v1/genesis.d.ts +41 -0
  405. package/dist/types/generated/ts/inco/preflight/v1/query.d.ts +93 -0
  406. package/dist/types/generated/ts/inco/preflight/v1/tx.d.ts +187 -0
  407. package/dist/types/generated/ts/inco/preflight/v1/types.d.ts +84 -0
  408. package/dist/types/handle.d.ts +41 -0
  409. package/dist/types/index.d.ts +5 -0
  410. package/dist/types/kms/client.d.ts +8 -0
  411. package/dist/types/l1/client.d.ts +35 -0
  412. package/dist/types/l1/index.d.ts +2 -0
  413. package/dist/types/l1/preflight.d.ts +20 -0
  414. package/dist/types/lite/attested-compute.d.ts +4 -0
  415. package/dist/types/lite/attested-decrypt.d.ts +3 -0
  416. package/dist/types/lite/deployments.d.ts +6 -0
  417. package/dist/types/lite/ecies.d.ts +26 -0
  418. package/dist/types/lite/hadu.d.ts +24 -0
  419. package/dist/types/lite/index.d.ts +7 -0
  420. package/dist/types/lite/lightning.d.ts +132 -0
  421. package/dist/types/lite/reencrypt.d.ts +24 -0
  422. package/dist/types/local/index.d.ts +1 -0
  423. package/dist/types/local/local-node.d.ts +22 -0
  424. package/dist/types/reencryption/eip712.d.ts +29 -0
  425. package/dist/types/reencryption/index.d.ts +2 -0
  426. package/dist/types/reencryption/types.d.ts +25 -0
  427. package/dist/types/retry.d.ts +15 -0
  428. package/dist/types/schema.d.ts +4 -0
  429. package/dist/types/viem.d.ts +789 -0
  430. package/package.json +67 -15
  431. package/dist/attesteddecrypt/attested-decrypt.js +0 -79
  432. package/dist/attesteddecrypt/index.d.ts +0 -2
  433. package/dist/attesteddecrypt/types.d.ts +0 -28
  434. package/dist/binary.js +0 -82
  435. package/dist/chain.js +0 -28
  436. package/dist/encryption/encryption.js +0 -109
  437. package/dist/encryption/index.d.ts +0 -1
  438. package/dist/fhevm/fhe-environment.js +0 -11
  439. package/dist/fhevm/fhevm.js +0 -145
  440. package/dist/fhevm/index.d.ts +0 -1
  441. package/dist/fhevm/reencrypt.js +0 -127
  442. package/dist/fhevm/tfhe.js +0 -336
  443. package/dist/fhevm/types.js +0 -29
  444. package/dist/generated/abis/index.d.ts +0 -2
  445. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.d.ts +0 -593
  446. package/dist/generated/es/cosmos/ics23/v1/proofs_pb.js +0 -201
  447. package/dist/generated/es/inco/kms/lite/v1/kms_service_pb.js +0 -66
  448. package/dist/generated/es/kms/base_pb.d.ts +0 -765
  449. package/dist/generated/es/kms/base_pb.js +0 -241
  450. package/dist/generated/es/sf/ethereum/type/v2/type_pb.d.ts +0 -1736
  451. package/dist/generated/es/sf/ethereum/type/v2/type_pb.js +0 -574
  452. package/dist/generated/local-node.d.ts +0 -7
  453. package/dist/generated/local-node.js +0 -11
  454. package/dist/generated/ts/cometbft/crypto/v1/keys.js +0 -108
  455. package/dist/generated/ts/cometbft/crypto/v1/proof.js +0 -433
  456. package/dist/generated/ts/cometbft/types/v1/params.js +0 -716
  457. package/dist/generated/ts/cometbft/types/v1/validator.js +0 -358
  458. package/dist/generated/ts/cosmos/app/v1alpha1/module.js +0 -221
  459. package/dist/generated/ts/cosmos_proto/cosmos.js +0 -216
  460. package/dist/generated/ts/google/api/http.js +0 -356
  461. package/dist/generated/ts/google/protobuf/duration.js +0 -93
  462. package/dist/generated/ts/google/protobuf/timestamp.js +0 -93
  463. package/dist/generated/ts/google/protobuf/wrappers.js +0 -509
  464. package/dist/generated/ts/inco/abci/v1/types.js +0 -73
  465. package/dist/generated/ts/inco/fhe/module/v1/module.js +0 -66
  466. package/dist/generated/ts/inco/fhe/v1/events.js +0 -190
  467. package/dist/generated/ts/inco/fhe/v1/genesis.js +0 -714
  468. package/dist/generated/ts/inco/fhe/v1/tx.js +0 -1236
  469. package/dist/generated/ts/inco/fhe/v1/types.js +0 -990
  470. package/dist/generated/ts/inco/originchain/module/v1/module.js +0 -66
  471. package/dist/generated/ts/inco/originchain/v1/abci.js +0 -331
  472. package/dist/generated/ts/inco/originchain/v1/events.js +0 -216
  473. package/dist/generated/ts/inco/originchain/v1/genesis.js +0 -69
  474. package/dist/generated/ts/inco/originchain/v1/query.js +0 -280
  475. package/dist/generated/ts/inco/originchain/v1/tx.js +0 -140
  476. package/dist/generated/ts/inco/originchain/v1/types.js +0 -203
  477. package/dist/generated/ts/inco/preflight/module/v1/module.js +0 -66
  478. package/dist/generated/ts/inco/preflight/v1/genesis.js +0 -185
  479. package/dist/generated/ts/inco/preflight/v1/query.js +0 -259
  480. package/dist/generated/ts/inco/preflight/v1/tx.js +0 -448
  481. package/dist/generated/ts/inco/preflight/v1/types.js +0 -398
  482. package/dist/index.d.ts +0 -5
  483. package/dist/l1/index.d.ts +0 -2
  484. package/dist/l1/preflight.js +0 -42
  485. package/dist/lite/attested-decrypt.js +0 -6
  486. package/dist/lite/deployments.js +0 -21
  487. package/dist/lite/ecies.js +0 -135
  488. package/dist/lite/hadu.js +0 -41
  489. package/dist/lite/index.d.ts +0 -7
  490. package/dist/lite/index.js +0 -23
  491. package/dist/lite/lightning.js +0 -198
  492. package/dist/lite/reencrypt.js +0 -142
  493. package/dist/local/index.d.ts +0 -1
  494. package/dist/local/local-node.js +0 -28
  495. package/dist/reencryption/index.d.ts +0 -2
  496. package/dist/reencryption/index.js +0 -19
  497. package/dist/types.d.ts +0 -20
  498. package/dist/types.js +0 -3
  499. package/dist/viem.js +0 -12
  500. /package/dist/{binary.d.ts → cjs/binary.d.ts} +0 -0
  501. /package/dist/{generated → cjs/generated}/abis/addTwo.d.ts +0 -0
  502. /package/dist/{generated → cjs/generated}/abis/inco-fhevm.d.ts +0 -0
  503. /package/dist/{generated → cjs/generated}/fhe-environments.d.ts +0 -0
  504. /package/dist/{generated → cjs/generated}/ts/amino/amino.d.ts +0 -0
  505. /package/dist/{generated → cjs/generated}/ts/cometbft/abci/v1/types.d.ts +0 -0
  506. /package/dist/{generated → cjs/generated}/ts/cometbft/crypto/v1/keys.d.ts +0 -0
  507. /package/dist/{generated → cjs/generated}/ts/cometbft/crypto/v1/proof.d.ts +0 -0
  508. /package/dist/{generated → cjs/generated}/ts/cometbft/types/v1/params.d.ts +0 -0
  509. /package/dist/{generated → cjs/generated}/ts/cometbft/types/v1/validator.d.ts +0 -0
  510. /package/dist/{generated → cjs/generated}/ts/cosmos/app/v1alpha1/module.d.ts +0 -0
  511. /package/dist/{generated → cjs/generated}/ts/cosmos/msg/v1/msg.d.ts +0 -0
  512. /package/dist/{generated → cjs/generated}/ts/cosmos_proto/cosmos.d.ts +0 -0
  513. /package/dist/{generated → cjs/generated}/ts/gogoproto/gogo.d.ts +0 -0
  514. /package/dist/{generated → cjs/generated}/ts/google/api/annotations.d.ts +0 -0
  515. /package/dist/{generated → cjs/generated}/ts/google/api/http.d.ts +0 -0
  516. /package/dist/{generated → cjs/generated}/ts/google/protobuf/descriptor.d.ts +0 -0
  517. /package/dist/{generated → cjs/generated}/ts/google/protobuf/duration.d.ts +0 -0
  518. /package/dist/{generated → cjs/generated}/ts/google/protobuf/timestamp.d.ts +0 -0
  519. /package/dist/{generated → cjs/generated}/ts/google/protobuf/wrappers.d.ts +0 -0
  520. /package/dist/{generated → cjs/generated}/ts/inco/abci/v1/types.d.ts +0 -0
  521. /package/dist/{generated → cjs/generated}/ts/inco/fhe/module/v1/module.d.ts +0 -0
  522. /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/events.d.ts +0 -0
  523. /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/genesis.d.ts +0 -0
  524. /package/dist/{generated → cjs/generated}/ts/inco/fhe/v1/types.d.ts +0 -0
  525. /package/dist/{generated → cjs/generated}/ts/inco/originchain/module/v1/module.d.ts +0 -0
  526. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/abci.d.ts +0 -0
  527. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/events.d.ts +0 -0
  528. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/genesis.d.ts +0 -0
  529. /package/dist/{generated → cjs/generated}/ts/inco/originchain/v1/types.d.ts +0 -0
  530. /package/dist/{generated → cjs/generated}/ts/inco/preflight/module/v1/module.d.ts +0 -0
  531. /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/genesis.d.ts +0 -0
  532. /package/dist/{generated → cjs/generated}/ts/inco/preflight/v1/types.d.ts +0 -0
  533. /package/dist/{reencryption → cjs/reencryption}/eip712.d.ts +0 -0
  534. /package/dist/{retry.d.ts → cjs/retry.d.ts} +0 -0
  535. /package/dist/{schema.d.ts → cjs/schema.d.ts} +0 -0
@@ -0,0 +1,1236 @@
1
+ "use strict";
2
+ // Code generated by protoc-gen-ts_proto. DO NOT EDIT.
3
+ // versions:
4
+ // protoc-gen-ts_proto v2.7.5
5
+ // protoc unknown
6
+ // source: inco/fhe/v1/tx.proto
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.MsgClient = exports.MsgService = exports.MsgRemoveFheEnvResponse = exports.MsgRemoveFheEnv = exports.MsgAddFheEnvResponse = exports.MsgAddFheEnv = exports.MsgRemoveKeysetResponse = exports.MsgRemoveKeyset = exports.MsgAddKeysetResponse = exports.MsgAddKeyset = exports.MsgRemoveCovalidatorResponse = exports.MsgRemoveCovalidator = exports.MsgEditCovalidatorResponse = exports.MsgEditCovalidator = exports.MsgAddCovalidatorResponse = exports.MsgAddCovalidator = exports.MsgVoteBindingsResponse = exports.MsgVoteBindings = exports.MsgVoteResponse = exports.MsgVote = exports.protobufPackage = void 0;
9
+ /* eslint-disable */
10
+ const wire_1 = require("@bufbuild/protobuf/wire");
11
+ const grpc_js_1 = require("@grpc/grpc-js");
12
+ const types_1 = require("./types");
13
+ exports.protobufPackage = "inco.fhe.v1";
14
+ function createBaseMsgVote() {
15
+ return { covalidator: "", fheEnvBlock: undefined, caRoot: undefined };
16
+ }
17
+ exports.MsgVote = {
18
+ encode(message, writer = new wire_1.BinaryWriter()) {
19
+ if (message.covalidator !== "") {
20
+ writer.uint32(10).string(message.covalidator);
21
+ }
22
+ if (message.fheEnvBlock !== undefined) {
23
+ types_1.FheEnvBlock.encode(message.fheEnvBlock, writer.uint32(18).fork()).join();
24
+ }
25
+ if (message.caRoot !== undefined) {
26
+ types_1.CARoot.encode(message.caRoot, writer.uint32(26).fork()).join();
27
+ }
28
+ return writer;
29
+ },
30
+ decode(input, length) {
31
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
32
+ const end = length === undefined ? reader.len : reader.pos + length;
33
+ const message = createBaseMsgVote();
34
+ while (reader.pos < end) {
35
+ const tag = reader.uint32();
36
+ switch (tag >>> 3) {
37
+ case 1: {
38
+ if (tag !== 10) {
39
+ break;
40
+ }
41
+ message.covalidator = reader.string();
42
+ continue;
43
+ }
44
+ case 2: {
45
+ if (tag !== 18) {
46
+ break;
47
+ }
48
+ message.fheEnvBlock = types_1.FheEnvBlock.decode(reader, reader.uint32());
49
+ continue;
50
+ }
51
+ case 3: {
52
+ if (tag !== 26) {
53
+ break;
54
+ }
55
+ message.caRoot = types_1.CARoot.decode(reader, reader.uint32());
56
+ continue;
57
+ }
58
+ }
59
+ if ((tag & 7) === 4 || tag === 0) {
60
+ break;
61
+ }
62
+ reader.skip(tag & 7);
63
+ }
64
+ return message;
65
+ },
66
+ fromJSON(object) {
67
+ return {
68
+ covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
69
+ fheEnvBlock: isSet(object.fheEnvBlock) ? types_1.FheEnvBlock.fromJSON(object.fheEnvBlock) : undefined,
70
+ caRoot: isSet(object.caRoot) ? types_1.CARoot.fromJSON(object.caRoot) : undefined,
71
+ };
72
+ },
73
+ toJSON(message) {
74
+ const obj = {};
75
+ if (message.covalidator !== "") {
76
+ obj.covalidator = message.covalidator;
77
+ }
78
+ if (message.fheEnvBlock !== undefined) {
79
+ obj.fheEnvBlock = types_1.FheEnvBlock.toJSON(message.fheEnvBlock);
80
+ }
81
+ if (message.caRoot !== undefined) {
82
+ obj.caRoot = types_1.CARoot.toJSON(message.caRoot);
83
+ }
84
+ return obj;
85
+ },
86
+ create(base) {
87
+ return exports.MsgVote.fromPartial(base ?? {});
88
+ },
89
+ fromPartial(object) {
90
+ const message = createBaseMsgVote();
91
+ message.covalidator = object.covalidator ?? "";
92
+ message.fheEnvBlock = (object.fheEnvBlock !== undefined && object.fheEnvBlock !== null)
93
+ ? types_1.FheEnvBlock.fromPartial(object.fheEnvBlock)
94
+ : undefined;
95
+ message.caRoot = (object.caRoot !== undefined && object.caRoot !== null)
96
+ ? types_1.CARoot.fromPartial(object.caRoot)
97
+ : undefined;
98
+ return message;
99
+ },
100
+ };
101
+ function createBaseMsgVoteResponse() {
102
+ return { consensusReached: false };
103
+ }
104
+ exports.MsgVoteResponse = {
105
+ encode(message, writer = new wire_1.BinaryWriter()) {
106
+ if (message.consensusReached !== false) {
107
+ writer.uint32(8).bool(message.consensusReached);
108
+ }
109
+ return writer;
110
+ },
111
+ decode(input, length) {
112
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
113
+ const end = length === undefined ? reader.len : reader.pos + length;
114
+ const message = createBaseMsgVoteResponse();
115
+ while (reader.pos < end) {
116
+ const tag = reader.uint32();
117
+ switch (tag >>> 3) {
118
+ case 1: {
119
+ if (tag !== 8) {
120
+ break;
121
+ }
122
+ message.consensusReached = reader.bool();
123
+ continue;
124
+ }
125
+ }
126
+ if ((tag & 7) === 4 || tag === 0) {
127
+ break;
128
+ }
129
+ reader.skip(tag & 7);
130
+ }
131
+ return message;
132
+ },
133
+ fromJSON(object) {
134
+ return { consensusReached: isSet(object.consensusReached) ? globalThis.Boolean(object.consensusReached) : false };
135
+ },
136
+ toJSON(message) {
137
+ const obj = {};
138
+ if (message.consensusReached !== false) {
139
+ obj.consensusReached = message.consensusReached;
140
+ }
141
+ return obj;
142
+ },
143
+ create(base) {
144
+ return exports.MsgVoteResponse.fromPartial(base ?? {});
145
+ },
146
+ fromPartial(object) {
147
+ const message = createBaseMsgVoteResponse();
148
+ message.consensusReached = object.consensusReached ?? false;
149
+ return message;
150
+ },
151
+ };
152
+ function createBaseMsgVoteBindings() {
153
+ return { covalidator: "", fheEnvBlock: undefined, parentHashes: [], bindingEntries: [] };
154
+ }
155
+ exports.MsgVoteBindings = {
156
+ encode(message, writer = new wire_1.BinaryWriter()) {
157
+ if (message.covalidator !== "") {
158
+ writer.uint32(10).string(message.covalidator);
159
+ }
160
+ if (message.fheEnvBlock !== undefined) {
161
+ types_1.FheEnvBlock.encode(message.fheEnvBlock, writer.uint32(18).fork()).join();
162
+ }
163
+ for (const v of message.parentHashes) {
164
+ writer.uint32(26).string(v);
165
+ }
166
+ for (const v of message.bindingEntries) {
167
+ types_1.HandleBindingEntry.encode(v, writer.uint32(34).fork()).join();
168
+ }
169
+ return writer;
170
+ },
171
+ decode(input, length) {
172
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
173
+ const end = length === undefined ? reader.len : reader.pos + length;
174
+ const message = createBaseMsgVoteBindings();
175
+ while (reader.pos < end) {
176
+ const tag = reader.uint32();
177
+ switch (tag >>> 3) {
178
+ case 1: {
179
+ if (tag !== 10) {
180
+ break;
181
+ }
182
+ message.covalidator = reader.string();
183
+ continue;
184
+ }
185
+ case 2: {
186
+ if (tag !== 18) {
187
+ break;
188
+ }
189
+ message.fheEnvBlock = types_1.FheEnvBlock.decode(reader, reader.uint32());
190
+ continue;
191
+ }
192
+ case 3: {
193
+ if (tag !== 26) {
194
+ break;
195
+ }
196
+ message.parentHashes.push(reader.string());
197
+ continue;
198
+ }
199
+ case 4: {
200
+ if (tag !== 34) {
201
+ break;
202
+ }
203
+ message.bindingEntries.push(types_1.HandleBindingEntry.decode(reader, reader.uint32()));
204
+ continue;
205
+ }
206
+ }
207
+ if ((tag & 7) === 4 || tag === 0) {
208
+ break;
209
+ }
210
+ reader.skip(tag & 7);
211
+ }
212
+ return message;
213
+ },
214
+ fromJSON(object) {
215
+ return {
216
+ covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
217
+ fheEnvBlock: isSet(object.fheEnvBlock) ? types_1.FheEnvBlock.fromJSON(object.fheEnvBlock) : undefined,
218
+ parentHashes: globalThis.Array.isArray(object?.parentHashes)
219
+ ? object.parentHashes.map((e) => globalThis.String(e))
220
+ : [],
221
+ bindingEntries: globalThis.Array.isArray(object?.bindingEntries)
222
+ ? object.bindingEntries.map((e) => types_1.HandleBindingEntry.fromJSON(e))
223
+ : [],
224
+ };
225
+ },
226
+ toJSON(message) {
227
+ const obj = {};
228
+ if (message.covalidator !== "") {
229
+ obj.covalidator = message.covalidator;
230
+ }
231
+ if (message.fheEnvBlock !== undefined) {
232
+ obj.fheEnvBlock = types_1.FheEnvBlock.toJSON(message.fheEnvBlock);
233
+ }
234
+ if (message.parentHashes?.length) {
235
+ obj.parentHashes = message.parentHashes;
236
+ }
237
+ if (message.bindingEntries?.length) {
238
+ obj.bindingEntries = message.bindingEntries.map((e) => types_1.HandleBindingEntry.toJSON(e));
239
+ }
240
+ return obj;
241
+ },
242
+ create(base) {
243
+ return exports.MsgVoteBindings.fromPartial(base ?? {});
244
+ },
245
+ fromPartial(object) {
246
+ const message = createBaseMsgVoteBindings();
247
+ message.covalidator = object.covalidator ?? "";
248
+ message.fheEnvBlock = (object.fheEnvBlock !== undefined && object.fheEnvBlock !== null)
249
+ ? types_1.FheEnvBlock.fromPartial(object.fheEnvBlock)
250
+ : undefined;
251
+ message.parentHashes = object.parentHashes?.map((e) => e) || [];
252
+ message.bindingEntries = object.bindingEntries?.map((e) => types_1.HandleBindingEntry.fromPartial(e)) || [];
253
+ return message;
254
+ },
255
+ };
256
+ function createBaseMsgVoteBindingsResponse() {
257
+ return { blockConsensusReached: false, parentConsensusReached: [], bindingConsensusReached: [] };
258
+ }
259
+ exports.MsgVoteBindingsResponse = {
260
+ encode(message, writer = new wire_1.BinaryWriter()) {
261
+ if (message.blockConsensusReached !== false) {
262
+ writer.uint32(8).bool(message.blockConsensusReached);
263
+ }
264
+ writer.uint32(18).fork();
265
+ for (const v of message.parentConsensusReached) {
266
+ writer.bool(v);
267
+ }
268
+ writer.join();
269
+ writer.uint32(26).fork();
270
+ for (const v of message.bindingConsensusReached) {
271
+ writer.bool(v);
272
+ }
273
+ writer.join();
274
+ return writer;
275
+ },
276
+ decode(input, length) {
277
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
278
+ const end = length === undefined ? reader.len : reader.pos + length;
279
+ const message = createBaseMsgVoteBindingsResponse();
280
+ while (reader.pos < end) {
281
+ const tag = reader.uint32();
282
+ switch (tag >>> 3) {
283
+ case 1: {
284
+ if (tag !== 8) {
285
+ break;
286
+ }
287
+ message.blockConsensusReached = reader.bool();
288
+ continue;
289
+ }
290
+ case 2: {
291
+ if (tag === 16) {
292
+ message.parentConsensusReached.push(reader.bool());
293
+ continue;
294
+ }
295
+ if (tag === 18) {
296
+ const end2 = reader.uint32() + reader.pos;
297
+ while (reader.pos < end2) {
298
+ message.parentConsensusReached.push(reader.bool());
299
+ }
300
+ continue;
301
+ }
302
+ break;
303
+ }
304
+ case 3: {
305
+ if (tag === 24) {
306
+ message.bindingConsensusReached.push(reader.bool());
307
+ continue;
308
+ }
309
+ if (tag === 26) {
310
+ const end2 = reader.uint32() + reader.pos;
311
+ while (reader.pos < end2) {
312
+ message.bindingConsensusReached.push(reader.bool());
313
+ }
314
+ continue;
315
+ }
316
+ break;
317
+ }
318
+ }
319
+ if ((tag & 7) === 4 || tag === 0) {
320
+ break;
321
+ }
322
+ reader.skip(tag & 7);
323
+ }
324
+ return message;
325
+ },
326
+ fromJSON(object) {
327
+ return {
328
+ blockConsensusReached: isSet(object.blockConsensusReached)
329
+ ? globalThis.Boolean(object.blockConsensusReached)
330
+ : false,
331
+ parentConsensusReached: globalThis.Array.isArray(object?.parentConsensusReached)
332
+ ? object.parentConsensusReached.map((e) => globalThis.Boolean(e))
333
+ : [],
334
+ bindingConsensusReached: globalThis.Array.isArray(object?.bindingConsensusReached)
335
+ ? object.bindingConsensusReached.map((e) => globalThis.Boolean(e))
336
+ : [],
337
+ };
338
+ },
339
+ toJSON(message) {
340
+ const obj = {};
341
+ if (message.blockConsensusReached !== false) {
342
+ obj.blockConsensusReached = message.blockConsensusReached;
343
+ }
344
+ if (message.parentConsensusReached?.length) {
345
+ obj.parentConsensusReached = message.parentConsensusReached;
346
+ }
347
+ if (message.bindingConsensusReached?.length) {
348
+ obj.bindingConsensusReached = message.bindingConsensusReached;
349
+ }
350
+ return obj;
351
+ },
352
+ create(base) {
353
+ return exports.MsgVoteBindingsResponse.fromPartial(base ?? {});
354
+ },
355
+ fromPartial(object) {
356
+ const message = createBaseMsgVoteBindingsResponse();
357
+ message.blockConsensusReached = object.blockConsensusReached ?? false;
358
+ message.parentConsensusReached = object.parentConsensusReached?.map((e) => e) || [];
359
+ message.bindingConsensusReached = object.bindingConsensusReached?.map((e) => e) || [];
360
+ return message;
361
+ },
362
+ };
363
+ function createBaseMsgAddCovalidator() {
364
+ return { authority: "", covalidator: undefined };
365
+ }
366
+ exports.MsgAddCovalidator = {
367
+ encode(message, writer = new wire_1.BinaryWriter()) {
368
+ if (message.authority !== "") {
369
+ writer.uint32(10).string(message.authority);
370
+ }
371
+ if (message.covalidator !== undefined) {
372
+ types_1.Covalidator.encode(message.covalidator, writer.uint32(18).fork()).join();
373
+ }
374
+ return writer;
375
+ },
376
+ decode(input, length) {
377
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
378
+ const end = length === undefined ? reader.len : reader.pos + length;
379
+ const message = createBaseMsgAddCovalidator();
380
+ while (reader.pos < end) {
381
+ const tag = reader.uint32();
382
+ switch (tag >>> 3) {
383
+ case 1: {
384
+ if (tag !== 10) {
385
+ break;
386
+ }
387
+ message.authority = reader.string();
388
+ continue;
389
+ }
390
+ case 2: {
391
+ if (tag !== 18) {
392
+ break;
393
+ }
394
+ message.covalidator = types_1.Covalidator.decode(reader, reader.uint32());
395
+ continue;
396
+ }
397
+ }
398
+ if ((tag & 7) === 4 || tag === 0) {
399
+ break;
400
+ }
401
+ reader.skip(tag & 7);
402
+ }
403
+ return message;
404
+ },
405
+ fromJSON(object) {
406
+ return {
407
+ authority: isSet(object.authority) ? globalThis.String(object.authority) : "",
408
+ covalidator: isSet(object.covalidator) ? types_1.Covalidator.fromJSON(object.covalidator) : undefined,
409
+ };
410
+ },
411
+ toJSON(message) {
412
+ const obj = {};
413
+ if (message.authority !== "") {
414
+ obj.authority = message.authority;
415
+ }
416
+ if (message.covalidator !== undefined) {
417
+ obj.covalidator = types_1.Covalidator.toJSON(message.covalidator);
418
+ }
419
+ return obj;
420
+ },
421
+ create(base) {
422
+ return exports.MsgAddCovalidator.fromPartial(base ?? {});
423
+ },
424
+ fromPartial(object) {
425
+ const message = createBaseMsgAddCovalidator();
426
+ message.authority = object.authority ?? "";
427
+ message.covalidator = (object.covalidator !== undefined && object.covalidator !== null)
428
+ ? types_1.Covalidator.fromPartial(object.covalidator)
429
+ : undefined;
430
+ return message;
431
+ },
432
+ };
433
+ function createBaseMsgAddCovalidatorResponse() {
434
+ return {};
435
+ }
436
+ exports.MsgAddCovalidatorResponse = {
437
+ encode(_, writer = new wire_1.BinaryWriter()) {
438
+ return writer;
439
+ },
440
+ decode(input, length) {
441
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
442
+ const end = length === undefined ? reader.len : reader.pos + length;
443
+ const message = createBaseMsgAddCovalidatorResponse();
444
+ while (reader.pos < end) {
445
+ const tag = reader.uint32();
446
+ switch (tag >>> 3) {
447
+ }
448
+ if ((tag & 7) === 4 || tag === 0) {
449
+ break;
450
+ }
451
+ reader.skip(tag & 7);
452
+ }
453
+ return message;
454
+ },
455
+ fromJSON(_) {
456
+ return {};
457
+ },
458
+ toJSON(_) {
459
+ const obj = {};
460
+ return obj;
461
+ },
462
+ create(base) {
463
+ return exports.MsgAddCovalidatorResponse.fromPartial(base ?? {});
464
+ },
465
+ fromPartial(_) {
466
+ const message = createBaseMsgAddCovalidatorResponse();
467
+ return message;
468
+ },
469
+ };
470
+ function createBaseMsgEditCovalidator() {
471
+ return { covalidator: "", grpcUrl: "" };
472
+ }
473
+ exports.MsgEditCovalidator = {
474
+ encode(message, writer = new wire_1.BinaryWriter()) {
475
+ if (message.covalidator !== "") {
476
+ writer.uint32(10).string(message.covalidator);
477
+ }
478
+ if (message.grpcUrl !== "") {
479
+ writer.uint32(18).string(message.grpcUrl);
480
+ }
481
+ return writer;
482
+ },
483
+ decode(input, length) {
484
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
485
+ const end = length === undefined ? reader.len : reader.pos + length;
486
+ const message = createBaseMsgEditCovalidator();
487
+ while (reader.pos < end) {
488
+ const tag = reader.uint32();
489
+ switch (tag >>> 3) {
490
+ case 1: {
491
+ if (tag !== 10) {
492
+ break;
493
+ }
494
+ message.covalidator = reader.string();
495
+ continue;
496
+ }
497
+ case 2: {
498
+ if (tag !== 18) {
499
+ break;
500
+ }
501
+ message.grpcUrl = reader.string();
502
+ continue;
503
+ }
504
+ }
505
+ if ((tag & 7) === 4 || tag === 0) {
506
+ break;
507
+ }
508
+ reader.skip(tag & 7);
509
+ }
510
+ return message;
511
+ },
512
+ fromJSON(object) {
513
+ return {
514
+ covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
515
+ grpcUrl: isSet(object.grpcUrl) ? globalThis.String(object.grpcUrl) : "",
516
+ };
517
+ },
518
+ toJSON(message) {
519
+ const obj = {};
520
+ if (message.covalidator !== "") {
521
+ obj.covalidator = message.covalidator;
522
+ }
523
+ if (message.grpcUrl !== "") {
524
+ obj.grpcUrl = message.grpcUrl;
525
+ }
526
+ return obj;
527
+ },
528
+ create(base) {
529
+ return exports.MsgEditCovalidator.fromPartial(base ?? {});
530
+ },
531
+ fromPartial(object) {
532
+ const message = createBaseMsgEditCovalidator();
533
+ message.covalidator = object.covalidator ?? "";
534
+ message.grpcUrl = object.grpcUrl ?? "";
535
+ return message;
536
+ },
537
+ };
538
+ function createBaseMsgEditCovalidatorResponse() {
539
+ return {};
540
+ }
541
+ exports.MsgEditCovalidatorResponse = {
542
+ encode(_, writer = new wire_1.BinaryWriter()) {
543
+ return writer;
544
+ },
545
+ decode(input, length) {
546
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
547
+ const end = length === undefined ? reader.len : reader.pos + length;
548
+ const message = createBaseMsgEditCovalidatorResponse();
549
+ while (reader.pos < end) {
550
+ const tag = reader.uint32();
551
+ switch (tag >>> 3) {
552
+ }
553
+ if ((tag & 7) === 4 || tag === 0) {
554
+ break;
555
+ }
556
+ reader.skip(tag & 7);
557
+ }
558
+ return message;
559
+ },
560
+ fromJSON(_) {
561
+ return {};
562
+ },
563
+ toJSON(_) {
564
+ const obj = {};
565
+ return obj;
566
+ },
567
+ create(base) {
568
+ return exports.MsgEditCovalidatorResponse.fromPartial(base ?? {});
569
+ },
570
+ fromPartial(_) {
571
+ const message = createBaseMsgEditCovalidatorResponse();
572
+ return message;
573
+ },
574
+ };
575
+ function createBaseMsgRemoveCovalidator() {
576
+ return { authority: "", covalidator: "" };
577
+ }
578
+ exports.MsgRemoveCovalidator = {
579
+ encode(message, writer = new wire_1.BinaryWriter()) {
580
+ if (message.authority !== "") {
581
+ writer.uint32(10).string(message.authority);
582
+ }
583
+ if (message.covalidator !== "") {
584
+ writer.uint32(18).string(message.covalidator);
585
+ }
586
+ return writer;
587
+ },
588
+ decode(input, length) {
589
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
590
+ const end = length === undefined ? reader.len : reader.pos + length;
591
+ const message = createBaseMsgRemoveCovalidator();
592
+ while (reader.pos < end) {
593
+ const tag = reader.uint32();
594
+ switch (tag >>> 3) {
595
+ case 1: {
596
+ if (tag !== 10) {
597
+ break;
598
+ }
599
+ message.authority = reader.string();
600
+ continue;
601
+ }
602
+ case 2: {
603
+ if (tag !== 18) {
604
+ break;
605
+ }
606
+ message.covalidator = reader.string();
607
+ continue;
608
+ }
609
+ }
610
+ if ((tag & 7) === 4 || tag === 0) {
611
+ break;
612
+ }
613
+ reader.skip(tag & 7);
614
+ }
615
+ return message;
616
+ },
617
+ fromJSON(object) {
618
+ return {
619
+ authority: isSet(object.authority) ? globalThis.String(object.authority) : "",
620
+ covalidator: isSet(object.covalidator) ? globalThis.String(object.covalidator) : "",
621
+ };
622
+ },
623
+ toJSON(message) {
624
+ const obj = {};
625
+ if (message.authority !== "") {
626
+ obj.authority = message.authority;
627
+ }
628
+ if (message.covalidator !== "") {
629
+ obj.covalidator = message.covalidator;
630
+ }
631
+ return obj;
632
+ },
633
+ create(base) {
634
+ return exports.MsgRemoveCovalidator.fromPartial(base ?? {});
635
+ },
636
+ fromPartial(object) {
637
+ const message = createBaseMsgRemoveCovalidator();
638
+ message.authority = object.authority ?? "";
639
+ message.covalidator = object.covalidator ?? "";
640
+ return message;
641
+ },
642
+ };
643
+ function createBaseMsgRemoveCovalidatorResponse() {
644
+ return {};
645
+ }
646
+ exports.MsgRemoveCovalidatorResponse = {
647
+ encode(_, writer = new wire_1.BinaryWriter()) {
648
+ return writer;
649
+ },
650
+ decode(input, length) {
651
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
652
+ const end = length === undefined ? reader.len : reader.pos + length;
653
+ const message = createBaseMsgRemoveCovalidatorResponse();
654
+ while (reader.pos < end) {
655
+ const tag = reader.uint32();
656
+ switch (tag >>> 3) {
657
+ }
658
+ if ((tag & 7) === 4 || tag === 0) {
659
+ break;
660
+ }
661
+ reader.skip(tag & 7);
662
+ }
663
+ return message;
664
+ },
665
+ fromJSON(_) {
666
+ return {};
667
+ },
668
+ toJSON(_) {
669
+ const obj = {};
670
+ return obj;
671
+ },
672
+ create(base) {
673
+ return exports.MsgRemoveCovalidatorResponse.fromPartial(base ?? {});
674
+ },
675
+ fromPartial(_) {
676
+ const message = createBaseMsgRemoveCovalidatorResponse();
677
+ return message;
678
+ },
679
+ };
680
+ function createBaseMsgAddKeyset() {
681
+ return { authority: "", keyset: undefined };
682
+ }
683
+ exports.MsgAddKeyset = {
684
+ encode(message, writer = new wire_1.BinaryWriter()) {
685
+ if (message.authority !== "") {
686
+ writer.uint32(10).string(message.authority);
687
+ }
688
+ if (message.keyset !== undefined) {
689
+ types_1.KeysetInfo.encode(message.keyset, writer.uint32(18).fork()).join();
690
+ }
691
+ return writer;
692
+ },
693
+ decode(input, length) {
694
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
695
+ const end = length === undefined ? reader.len : reader.pos + length;
696
+ const message = createBaseMsgAddKeyset();
697
+ while (reader.pos < end) {
698
+ const tag = reader.uint32();
699
+ switch (tag >>> 3) {
700
+ case 1: {
701
+ if (tag !== 10) {
702
+ break;
703
+ }
704
+ message.authority = reader.string();
705
+ continue;
706
+ }
707
+ case 2: {
708
+ if (tag !== 18) {
709
+ break;
710
+ }
711
+ message.keyset = types_1.KeysetInfo.decode(reader, reader.uint32());
712
+ continue;
713
+ }
714
+ }
715
+ if ((tag & 7) === 4 || tag === 0) {
716
+ break;
717
+ }
718
+ reader.skip(tag & 7);
719
+ }
720
+ return message;
721
+ },
722
+ fromJSON(object) {
723
+ return {
724
+ authority: isSet(object.authority) ? globalThis.String(object.authority) : "",
725
+ keyset: isSet(object.keyset) ? types_1.KeysetInfo.fromJSON(object.keyset) : undefined,
726
+ };
727
+ },
728
+ toJSON(message) {
729
+ const obj = {};
730
+ if (message.authority !== "") {
731
+ obj.authority = message.authority;
732
+ }
733
+ if (message.keyset !== undefined) {
734
+ obj.keyset = types_1.KeysetInfo.toJSON(message.keyset);
735
+ }
736
+ return obj;
737
+ },
738
+ create(base) {
739
+ return exports.MsgAddKeyset.fromPartial(base ?? {});
740
+ },
741
+ fromPartial(object) {
742
+ const message = createBaseMsgAddKeyset();
743
+ message.authority = object.authority ?? "";
744
+ message.keyset = (object.keyset !== undefined && object.keyset !== null)
745
+ ? types_1.KeysetInfo.fromPartial(object.keyset)
746
+ : undefined;
747
+ return message;
748
+ },
749
+ };
750
+ function createBaseMsgAddKeysetResponse() {
751
+ return {};
752
+ }
753
+ exports.MsgAddKeysetResponse = {
754
+ encode(_, writer = new wire_1.BinaryWriter()) {
755
+ return writer;
756
+ },
757
+ decode(input, length) {
758
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
759
+ const end = length === undefined ? reader.len : reader.pos + length;
760
+ const message = createBaseMsgAddKeysetResponse();
761
+ while (reader.pos < end) {
762
+ const tag = reader.uint32();
763
+ switch (tag >>> 3) {
764
+ }
765
+ if ((tag & 7) === 4 || tag === 0) {
766
+ break;
767
+ }
768
+ reader.skip(tag & 7);
769
+ }
770
+ return message;
771
+ },
772
+ fromJSON(_) {
773
+ return {};
774
+ },
775
+ toJSON(_) {
776
+ const obj = {};
777
+ return obj;
778
+ },
779
+ create(base) {
780
+ return exports.MsgAddKeysetResponse.fromPartial(base ?? {});
781
+ },
782
+ fromPartial(_) {
783
+ const message = createBaseMsgAddKeysetResponse();
784
+ return message;
785
+ },
786
+ };
787
+ function createBaseMsgRemoveKeyset() {
788
+ return { authority: "", keysetId: "" };
789
+ }
790
+ exports.MsgRemoveKeyset = {
791
+ encode(message, writer = new wire_1.BinaryWriter()) {
792
+ if (message.authority !== "") {
793
+ writer.uint32(10).string(message.authority);
794
+ }
795
+ if (message.keysetId !== "") {
796
+ writer.uint32(18).string(message.keysetId);
797
+ }
798
+ return writer;
799
+ },
800
+ decode(input, length) {
801
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
802
+ const end = length === undefined ? reader.len : reader.pos + length;
803
+ const message = createBaseMsgRemoveKeyset();
804
+ while (reader.pos < end) {
805
+ const tag = reader.uint32();
806
+ switch (tag >>> 3) {
807
+ case 1: {
808
+ if (tag !== 10) {
809
+ break;
810
+ }
811
+ message.authority = reader.string();
812
+ continue;
813
+ }
814
+ case 2: {
815
+ if (tag !== 18) {
816
+ break;
817
+ }
818
+ message.keysetId = reader.string();
819
+ continue;
820
+ }
821
+ }
822
+ if ((tag & 7) === 4 || tag === 0) {
823
+ break;
824
+ }
825
+ reader.skip(tag & 7);
826
+ }
827
+ return message;
828
+ },
829
+ fromJSON(object) {
830
+ return {
831
+ authority: isSet(object.authority) ? globalThis.String(object.authority) : "",
832
+ keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
833
+ };
834
+ },
835
+ toJSON(message) {
836
+ const obj = {};
837
+ if (message.authority !== "") {
838
+ obj.authority = message.authority;
839
+ }
840
+ if (message.keysetId !== "") {
841
+ obj.keysetId = message.keysetId;
842
+ }
843
+ return obj;
844
+ },
845
+ create(base) {
846
+ return exports.MsgRemoveKeyset.fromPartial(base ?? {});
847
+ },
848
+ fromPartial(object) {
849
+ const message = createBaseMsgRemoveKeyset();
850
+ message.authority = object.authority ?? "";
851
+ message.keysetId = object.keysetId ?? "";
852
+ return message;
853
+ },
854
+ };
855
+ function createBaseMsgRemoveKeysetResponse() {
856
+ return {};
857
+ }
858
+ exports.MsgRemoveKeysetResponse = {
859
+ encode(_, writer = new wire_1.BinaryWriter()) {
860
+ return writer;
861
+ },
862
+ decode(input, length) {
863
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
864
+ const end = length === undefined ? reader.len : reader.pos + length;
865
+ const message = createBaseMsgRemoveKeysetResponse();
866
+ while (reader.pos < end) {
867
+ const tag = reader.uint32();
868
+ switch (tag >>> 3) {
869
+ }
870
+ if ((tag & 7) === 4 || tag === 0) {
871
+ break;
872
+ }
873
+ reader.skip(tag & 7);
874
+ }
875
+ return message;
876
+ },
877
+ fromJSON(_) {
878
+ return {};
879
+ },
880
+ toJSON(_) {
881
+ const obj = {};
882
+ return obj;
883
+ },
884
+ create(base) {
885
+ return exports.MsgRemoveKeysetResponse.fromPartial(base ?? {});
886
+ },
887
+ fromPartial(_) {
888
+ const message = createBaseMsgRemoveKeysetResponse();
889
+ return message;
890
+ },
891
+ };
892
+ function createBaseMsgAddFheEnv() {
893
+ return { authority: "", fheEnv: undefined };
894
+ }
895
+ exports.MsgAddFheEnv = {
896
+ encode(message, writer = new wire_1.BinaryWriter()) {
897
+ if (message.authority !== "") {
898
+ writer.uint32(10).string(message.authority);
899
+ }
900
+ if (message.fheEnv !== undefined) {
901
+ types_1.FheEnv.encode(message.fheEnv, writer.uint32(18).fork()).join();
902
+ }
903
+ return writer;
904
+ },
905
+ decode(input, length) {
906
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
907
+ const end = length === undefined ? reader.len : reader.pos + length;
908
+ const message = createBaseMsgAddFheEnv();
909
+ while (reader.pos < end) {
910
+ const tag = reader.uint32();
911
+ switch (tag >>> 3) {
912
+ case 1: {
913
+ if (tag !== 10) {
914
+ break;
915
+ }
916
+ message.authority = reader.string();
917
+ continue;
918
+ }
919
+ case 2: {
920
+ if (tag !== 18) {
921
+ break;
922
+ }
923
+ message.fheEnv = types_1.FheEnv.decode(reader, reader.uint32());
924
+ continue;
925
+ }
926
+ }
927
+ if ((tag & 7) === 4 || tag === 0) {
928
+ break;
929
+ }
930
+ reader.skip(tag & 7);
931
+ }
932
+ return message;
933
+ },
934
+ fromJSON(object) {
935
+ return {
936
+ authority: isSet(object.authority) ? globalThis.String(object.authority) : "",
937
+ fheEnv: isSet(object.fheEnv) ? types_1.FheEnv.fromJSON(object.fheEnv) : undefined,
938
+ };
939
+ },
940
+ toJSON(message) {
941
+ const obj = {};
942
+ if (message.authority !== "") {
943
+ obj.authority = message.authority;
944
+ }
945
+ if (message.fheEnv !== undefined) {
946
+ obj.fheEnv = types_1.FheEnv.toJSON(message.fheEnv);
947
+ }
948
+ return obj;
949
+ },
950
+ create(base) {
951
+ return exports.MsgAddFheEnv.fromPartial(base ?? {});
952
+ },
953
+ fromPartial(object) {
954
+ const message = createBaseMsgAddFheEnv();
955
+ message.authority = object.authority ?? "";
956
+ message.fheEnv = (object.fheEnv !== undefined && object.fheEnv !== null)
957
+ ? types_1.FheEnv.fromPartial(object.fheEnv)
958
+ : undefined;
959
+ return message;
960
+ },
961
+ };
962
+ function createBaseMsgAddFheEnvResponse() {
963
+ return {};
964
+ }
965
+ exports.MsgAddFheEnvResponse = {
966
+ encode(_, writer = new wire_1.BinaryWriter()) {
967
+ return writer;
968
+ },
969
+ decode(input, length) {
970
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
971
+ const end = length === undefined ? reader.len : reader.pos + length;
972
+ const message = createBaseMsgAddFheEnvResponse();
973
+ while (reader.pos < end) {
974
+ const tag = reader.uint32();
975
+ switch (tag >>> 3) {
976
+ }
977
+ if ((tag & 7) === 4 || tag === 0) {
978
+ break;
979
+ }
980
+ reader.skip(tag & 7);
981
+ }
982
+ return message;
983
+ },
984
+ fromJSON(_) {
985
+ return {};
986
+ },
987
+ toJSON(_) {
988
+ const obj = {};
989
+ return obj;
990
+ },
991
+ create(base) {
992
+ return exports.MsgAddFheEnvResponse.fromPartial(base ?? {});
993
+ },
994
+ fromPartial(_) {
995
+ const message = createBaseMsgAddFheEnvResponse();
996
+ return message;
997
+ },
998
+ };
999
+ function createBaseMsgRemoveFheEnv() {
1000
+ return { authority: "", hostChainId: "", keysetId: "" };
1001
+ }
1002
+ exports.MsgRemoveFheEnv = {
1003
+ encode(message, writer = new wire_1.BinaryWriter()) {
1004
+ if (message.authority !== "") {
1005
+ writer.uint32(10).string(message.authority);
1006
+ }
1007
+ if (message.hostChainId !== "") {
1008
+ writer.uint32(18).string(message.hostChainId);
1009
+ }
1010
+ if (message.keysetId !== "") {
1011
+ writer.uint32(26).string(message.keysetId);
1012
+ }
1013
+ return writer;
1014
+ },
1015
+ decode(input, length) {
1016
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1017
+ const end = length === undefined ? reader.len : reader.pos + length;
1018
+ const message = createBaseMsgRemoveFheEnv();
1019
+ while (reader.pos < end) {
1020
+ const tag = reader.uint32();
1021
+ switch (tag >>> 3) {
1022
+ case 1: {
1023
+ if (tag !== 10) {
1024
+ break;
1025
+ }
1026
+ message.authority = reader.string();
1027
+ continue;
1028
+ }
1029
+ case 2: {
1030
+ if (tag !== 18) {
1031
+ break;
1032
+ }
1033
+ message.hostChainId = reader.string();
1034
+ continue;
1035
+ }
1036
+ case 3: {
1037
+ if (tag !== 26) {
1038
+ break;
1039
+ }
1040
+ message.keysetId = reader.string();
1041
+ continue;
1042
+ }
1043
+ }
1044
+ if ((tag & 7) === 4 || tag === 0) {
1045
+ break;
1046
+ }
1047
+ reader.skip(tag & 7);
1048
+ }
1049
+ return message;
1050
+ },
1051
+ fromJSON(object) {
1052
+ return {
1053
+ authority: isSet(object.authority) ? globalThis.String(object.authority) : "",
1054
+ hostChainId: isSet(object.hostChainId) ? globalThis.String(object.hostChainId) : "",
1055
+ keysetId: isSet(object.keysetId) ? globalThis.String(object.keysetId) : "",
1056
+ };
1057
+ },
1058
+ toJSON(message) {
1059
+ const obj = {};
1060
+ if (message.authority !== "") {
1061
+ obj.authority = message.authority;
1062
+ }
1063
+ if (message.hostChainId !== "") {
1064
+ obj.hostChainId = message.hostChainId;
1065
+ }
1066
+ if (message.keysetId !== "") {
1067
+ obj.keysetId = message.keysetId;
1068
+ }
1069
+ return obj;
1070
+ },
1071
+ create(base) {
1072
+ return exports.MsgRemoveFheEnv.fromPartial(base ?? {});
1073
+ },
1074
+ fromPartial(object) {
1075
+ const message = createBaseMsgRemoveFheEnv();
1076
+ message.authority = object.authority ?? "";
1077
+ message.hostChainId = object.hostChainId ?? "";
1078
+ message.keysetId = object.keysetId ?? "";
1079
+ return message;
1080
+ },
1081
+ };
1082
+ function createBaseMsgRemoveFheEnvResponse() {
1083
+ return {};
1084
+ }
1085
+ exports.MsgRemoveFheEnvResponse = {
1086
+ encode(_, writer = new wire_1.BinaryWriter()) {
1087
+ return writer;
1088
+ },
1089
+ decode(input, length) {
1090
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
1091
+ const end = length === undefined ? reader.len : reader.pos + length;
1092
+ const message = createBaseMsgRemoveFheEnvResponse();
1093
+ while (reader.pos < end) {
1094
+ const tag = reader.uint32();
1095
+ switch (tag >>> 3) {
1096
+ }
1097
+ if ((tag & 7) === 4 || tag === 0) {
1098
+ break;
1099
+ }
1100
+ reader.skip(tag & 7);
1101
+ }
1102
+ return message;
1103
+ },
1104
+ fromJSON(_) {
1105
+ return {};
1106
+ },
1107
+ toJSON(_) {
1108
+ const obj = {};
1109
+ return obj;
1110
+ },
1111
+ create(base) {
1112
+ return exports.MsgRemoveFheEnvResponse.fromPartial(base ?? {});
1113
+ },
1114
+ fromPartial(_) {
1115
+ const message = createBaseMsgRemoveFheEnvResponse();
1116
+ return message;
1117
+ },
1118
+ };
1119
+ exports.MsgService = {
1120
+ /** Vote is a covalidator's vote on the CA root. */
1121
+ vote: {
1122
+ path: "/inco.fhe.v1.Msg/Vote",
1123
+ requestStream: false,
1124
+ responseStream: false,
1125
+ requestSerialize: (value) => Buffer.from(exports.MsgVote.encode(value).finish()),
1126
+ requestDeserialize: (value) => exports.MsgVote.decode(value),
1127
+ responseSerialize: (value) => Buffer.from(exports.MsgVoteResponse.encode(value).finish()),
1128
+ responseDeserialize: (value) => exports.MsgVoteResponse.decode(value),
1129
+ },
1130
+ /** VoteBindings is a covalidator vote for handle bindings. */
1131
+ voteBindings: {
1132
+ path: "/inco.fhe.v1.Msg/VoteBindings",
1133
+ requestStream: false,
1134
+ responseStream: false,
1135
+ requestSerialize: (value) => Buffer.from(exports.MsgVoteBindings.encode(value).finish()),
1136
+ requestDeserialize: (value) => exports.MsgVoteBindings.decode(value),
1137
+ responseSerialize: (value) => Buffer.from(exports.MsgVoteBindingsResponse.encode(value).finish()),
1138
+ responseDeserialize: (value) => exports.MsgVoteBindingsResponse.decode(value),
1139
+ },
1140
+ /**
1141
+ * AddCovalidator adds a new covalidator to x/fhe. Only the authority can
1142
+ * call this method.
1143
+ */
1144
+ addCovalidator: {
1145
+ path: "/inco.fhe.v1.Msg/AddCovalidator",
1146
+ requestStream: false,
1147
+ responseStream: false,
1148
+ requestSerialize: (value) => Buffer.from(exports.MsgAddCovalidator.encode(value).finish()),
1149
+ requestDeserialize: (value) => exports.MsgAddCovalidator.decode(value),
1150
+ responseSerialize: (value) => Buffer.from(exports.MsgAddCovalidatorResponse.encode(value).finish()),
1151
+ responseDeserialize: (value) => exports.MsgAddCovalidatorResponse.decode(value),
1152
+ },
1153
+ /**
1154
+ * EditCovalidator edits an existing covalidator. Only the covalidator can
1155
+ * call this method.
1156
+ */
1157
+ editCovalidator: {
1158
+ path: "/inco.fhe.v1.Msg/EditCovalidator",
1159
+ requestStream: false,
1160
+ responseStream: false,
1161
+ requestSerialize: (value) => Buffer.from(exports.MsgEditCovalidator.encode(value).finish()),
1162
+ requestDeserialize: (value) => exports.MsgEditCovalidator.decode(value),
1163
+ responseSerialize: (value) => Buffer.from(exports.MsgEditCovalidatorResponse.encode(value).finish()),
1164
+ responseDeserialize: (value) => exports.MsgEditCovalidatorResponse.decode(value),
1165
+ },
1166
+ /**
1167
+ * RemoveCovalidator removes a covalidator from x/fhe. Only the authority can
1168
+ * call this method.
1169
+ */
1170
+ removeCovalidator: {
1171
+ path: "/inco.fhe.v1.Msg/RemoveCovalidator",
1172
+ requestStream: false,
1173
+ responseStream: false,
1174
+ requestSerialize: (value) => Buffer.from(exports.MsgRemoveCovalidator.encode(value).finish()),
1175
+ requestDeserialize: (value) => exports.MsgRemoveCovalidator.decode(value),
1176
+ responseSerialize: (value) => Buffer.from(exports.MsgRemoveCovalidatorResponse.encode(value).finish()),
1177
+ responseDeserialize: (value) => exports.MsgRemoveCovalidatorResponse.decode(value),
1178
+ },
1179
+ /**
1180
+ * AddKeyset adds a new keyset to x/fhe. Only the authority can call this
1181
+ * method.
1182
+ */
1183
+ addKeyset: {
1184
+ path: "/inco.fhe.v1.Msg/AddKeyset",
1185
+ requestStream: false,
1186
+ responseStream: false,
1187
+ requestSerialize: (value) => Buffer.from(exports.MsgAddKeyset.encode(value).finish()),
1188
+ requestDeserialize: (value) => exports.MsgAddKeyset.decode(value),
1189
+ responseSerialize: (value) => Buffer.from(exports.MsgAddKeysetResponse.encode(value).finish()),
1190
+ responseDeserialize: (value) => exports.MsgAddKeysetResponse.decode(value),
1191
+ },
1192
+ /**
1193
+ * RemoveKeyset removes a keyset from x/fhe. Only the authority can call this
1194
+ * method.
1195
+ */
1196
+ removeKeyset: {
1197
+ path: "/inco.fhe.v1.Msg/RemoveKeyset",
1198
+ requestStream: false,
1199
+ responseStream: false,
1200
+ requestSerialize: (value) => Buffer.from(exports.MsgRemoveKeyset.encode(value).finish()),
1201
+ requestDeserialize: (value) => exports.MsgRemoveKeyset.decode(value),
1202
+ responseSerialize: (value) => Buffer.from(exports.MsgRemoveKeysetResponse.encode(value).finish()),
1203
+ responseDeserialize: (value) => exports.MsgRemoveKeysetResponse.decode(value),
1204
+ },
1205
+ /**
1206
+ * AddFheEnv adds a new FHE environment to x/fhe. Only the authority can
1207
+ * call this method.
1208
+ */
1209
+ addFheEnv: {
1210
+ path: "/inco.fhe.v1.Msg/AddFheEnv",
1211
+ requestStream: false,
1212
+ responseStream: false,
1213
+ requestSerialize: (value) => Buffer.from(exports.MsgAddFheEnv.encode(value).finish()),
1214
+ requestDeserialize: (value) => exports.MsgAddFheEnv.decode(value),
1215
+ responseSerialize: (value) => Buffer.from(exports.MsgAddFheEnvResponse.encode(value).finish()),
1216
+ responseDeserialize: (value) => exports.MsgAddFheEnvResponse.decode(value),
1217
+ },
1218
+ /**
1219
+ * RemoveFheEnv removes a FHE environment from x/fhe. Only the authority can
1220
+ * call this method.
1221
+ */
1222
+ removeFheEnv: {
1223
+ path: "/inco.fhe.v1.Msg/RemoveFheEnv",
1224
+ requestStream: false,
1225
+ responseStream: false,
1226
+ requestSerialize: (value) => Buffer.from(exports.MsgRemoveFheEnv.encode(value).finish()),
1227
+ requestDeserialize: (value) => exports.MsgRemoveFheEnv.decode(value),
1228
+ responseSerialize: (value) => Buffer.from(exports.MsgRemoveFheEnvResponse.encode(value).finish()),
1229
+ responseDeserialize: (value) => exports.MsgRemoveFheEnvResponse.decode(value),
1230
+ },
1231
+ };
1232
+ exports.MsgClient = (0, grpc_js_1.makeGenericClientConstructor)(exports.MsgService, "inco.fhe.v1.Msg");
1233
+ function isSet(value) {
1234
+ return value !== null && value !== undefined;
1235
+ }
1236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3RzL2luY28vZmhlL3YxL3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzREFBc0Q7QUFDdEQsWUFBWTtBQUNaLGdDQUFnQztBQUNoQyxpQ0FBaUM7QUFDakMsK0JBQStCOzs7QUFFL0Isb0JBQW9CO0FBQ3BCLGtEQUFxRTtBQUNyRSwyQ0FXdUI7QUFDdkIsbUNBQW1HO0FBRXRGLFFBQUEsZUFBZSxHQUFHLGFBQWEsQ0FBQztBQTRLN0MsU0FBUyxpQkFBaUI7SUFDeEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVZLFFBQUEsT0FBTyxHQUF3QjtJQUMxQyxNQUFNLENBQUMsT0FBZ0IsRUFBRSxTQUF1QixJQUFJLG1CQUFZLEVBQUU7UUFDaEUsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsY0FBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdEMsU0FBUztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsY0FBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ3hELFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25GLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDN0YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWdCO1FBQ3JCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsR0FBRyxDQUFDLFdBQVcsR0FBRyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsTUFBTSxHQUFHLGNBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQTJDLElBQVE7UUFDdkQsT0FBTyxlQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSyxFQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsV0FBVyxDQUEyQyxNQUFTO1FBQzdELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUM7WUFDckYsQ0FBQyxDQUFDLG1CQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztZQUN0RSxDQUFDLENBQUMsY0FBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMseUJBQXlCO0lBQ2hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBRVksUUFBQSxlQUFlLEdBQWdDO0lBQzFELE1BQU0sQ0FBQyxPQUF3QixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUN4RSxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFDNUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNkLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN6QyxTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEgsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUF3QjtRQUM3QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDdkMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFtRCxJQUFRO1FBQy9ELE9BQU8sdUJBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxXQUFXLENBQW1ELE1BQVM7UUFDckUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQztRQUM1RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMseUJBQXlCO0lBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDM0YsQ0FBQztBQUVZLFFBQUEsZUFBZSxHQUFnQztJQUMxRCxNQUFNLENBQUMsT0FBd0IsRUFBRSxTQUF1QixJQUFJLG1CQUFZLEVBQUU7UUFDeEUsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNFLENBQUM7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkMsMEJBQWtCLENBQUMsTUFBTSxDQUFDLENBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0MsRUFBRSxNQUFlO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxtQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxXQUFXLEdBQUcsbUJBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNsRSxTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDM0MsU0FBUztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsMEJBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNoRixTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRixXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzdGLFlBQVksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO2dCQUMxRCxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsQ0FBQyxFQUFFO1lBQ04sY0FBYyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7Z0JBQzlELENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsMEJBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxDQUFDLENBQUMsRUFBRTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXdCO1FBQzdCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsR0FBRyxDQUFDLFdBQVcsR0FBRyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuQyxHQUFHLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQywwQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFtRCxJQUFRO1FBQy9ELE9BQU8sdUJBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxXQUFXLENBQW1ELE1BQVM7UUFDckUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQztZQUNyRixDQUFDLENBQUMsbUJBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM3QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsT0FBTyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDBCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsaUNBQWlDO0lBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxFQUFFLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ25HLENBQUM7QUFFWSxRQUFBLHVCQUF1QixHQUF3QztJQUMxRSxNQUFNLENBQUMsT0FBZ0MsRUFBRSxTQUF1QixJQUFJLG1CQUFZLEVBQUU7UUFDaEYsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNkLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUM5QyxTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRW5ELFNBQVM7b0JBQ1gsQ0FBQztvQkFFRCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQzt3QkFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDOzRCQUN6QixPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUNyRCxDQUFDO3dCQUVELFNBQVM7b0JBQ1gsQ0FBQztvQkFFRCxNQUFNO2dCQUNSLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7d0JBRXBELFNBQVM7b0JBQ1gsQ0FBQztvQkFFRCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQzt3QkFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDOzRCQUN6QixPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUN0RCxDQUFDO3dCQUVELFNBQVM7b0JBQ1gsQ0FBQztvQkFFRCxNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztnQkFDbEQsQ0FBQyxDQUFDLEtBQUs7WUFDVCxzQkFBc0IsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUM7Z0JBQzlFLENBQUMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDLENBQUMsRUFBRTtZQUNOLHVCQUF1QixFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQztnQkFDaEYsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZ0M7UUFDckMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLHFCQUFxQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzVDLEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzVDLEdBQUcsQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBMkQsSUFBUTtRQUN2RSxPQUFPLCtCQUF1QixDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUssRUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFdBQVcsQ0FBMkQsTUFBUztRQUM3RSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEYsT0FBTyxDQUFDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0RixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsMkJBQTJCO0lBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNuRCxDQUFDO0FBRVksUUFBQSxpQkFBaUIsR0FBa0M7SUFDOUQsTUFBTSxDQUFDLE9BQTBCLEVBQUUsU0FBdUIsSUFBSSxtQkFBWSxFQUFFO1FBQzFFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEMsU0FBUztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2xFLFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDOUYsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBMEI7UUFDL0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxHQUFHLENBQUMsV0FBVyxHQUFHLG1CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFxRCxJQUFRO1FBQ2pFLE9BQU8seUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSyxFQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsV0FBVyxDQUFxRCxNQUFTO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDOUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUM7WUFDckYsQ0FBQyxDQUFDLG1CQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxtQ0FBbUM7SUFDMUMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRVksUUFBQSx5QkFBeUIsR0FBMEM7SUFDOUUsTUFBTSxDQUFDLENBQTRCLEVBQUUsU0FBdUIsSUFBSSxtQkFBWSxFQUFFO1FBQzVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0MsRUFBRSxNQUFlO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxtQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQTRCO1FBQ2pDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQTZELElBQVE7UUFDekUsT0FBTyxpQ0FBeUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXLENBQTZELENBQUk7UUFDMUUsTUFBTSxPQUFPLEdBQUcsbUNBQW1DLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsNEJBQTRCO0lBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUMxQyxDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBbUM7SUFDaEUsTUFBTSxDQUFDLE9BQTJCLEVBQUUsU0FBdUIsSUFBSSxtQkFBWSxFQUFFO1FBQzNFLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0MsRUFBRSxNQUFlO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxtQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyw0QkFBNEIsRUFBRSxDQUFDO1FBQy9DLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBMkI7UUFDaEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixHQUFHLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMzQixHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBc0QsSUFBUTtRQUNsRSxPQUFPLDBCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUssRUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELFdBQVcsQ0FBc0QsTUFBUztRQUN4RSxNQUFNLE9BQU8sR0FBRyw0QkFBNEIsRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsb0NBQW9DO0lBQzNDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVZLFFBQUEsMEJBQTBCLEdBQTJDO0lBQ2hGLE1BQU0sQ0FBQyxDQUE2QixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUM3RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdDLEVBQUUsTUFBZTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksbUJBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLEVBQUUsQ0FBQztRQUN2RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBTTtRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUE2QjtRQUNsQyxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUE4RCxJQUFRO1FBQzFFLE9BQU8sa0NBQTBCLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSyxFQUFVLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsV0FBVyxDQUE4RCxDQUFJO1FBQzNFLE1BQU0sT0FBTyxHQUFHLG9DQUFvQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDhCQUE4QjtJQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVZLFFBQUEsb0JBQW9CLEdBQXFDO0lBQ3BFLE1BQU0sQ0FBQyxPQUE2QixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUM3RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdDLEVBQUUsTUFBZTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksbUJBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztRQUNqRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwQyxTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdEMsU0FBUztnQkFDWCxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0UsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3BGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQTZCO1FBQ2xDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQXdELElBQVE7UUFDcEUsT0FBTyw0QkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxXQUFXLENBQXdELE1BQVM7UUFDMUUsTUFBTSxPQUFPLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztRQUNqRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDL0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLHNDQUFzQztJQUM3QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLDRCQUE0QixHQUE2QztJQUNwRixNQUFNLENBQUMsQ0FBK0IsRUFBRSxTQUF1QixJQUFJLG1CQUFZLEVBQUU7UUFDL0UsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLHNDQUFzQyxFQUFFLENBQUM7UUFDekQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBK0I7UUFDcEMsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBZ0UsSUFBUTtRQUM1RSxPQUFPLG9DQUE0QixDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUssRUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELFdBQVcsQ0FBZ0UsQ0FBSTtRQUM3RSxNQUFNLE9BQU8sR0FBRyxzQ0FBc0MsRUFBRSxDQUFDO1FBQ3pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxzQkFBc0I7SUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQzlDLENBQUM7QUFFWSxRQUFBLFlBQVksR0FBNkI7SUFDcEQsTUFBTSxDQUFDLE9BQXFCLEVBQUUsU0FBdUIsSUFBSSxtQkFBWSxFQUFFO1FBQ3JFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEMsU0FBUztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxrQkFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQzVELFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDOUUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBcUI7UUFDMUIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxHQUFHLENBQUMsTUFBTSxHQUFHLGtCQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFnRCxJQUFRO1FBQzVELE9BQU8sb0JBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxXQUFXLENBQWdELE1BQVM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztZQUN0RSxDQUFDLENBQUMsa0JBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLDhCQUE4QjtJQUNyQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLG9CQUFvQixHQUFxQztJQUNwRSxNQUFNLENBQUMsQ0FBdUIsRUFBRSxTQUF1QixJQUFJLG1CQUFZLEVBQUU7UUFDdkUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLDhCQUE4QixFQUFFLENBQUM7UUFDakQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBdUI7UUFDNUIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBd0QsSUFBUTtRQUNwRSxPQUFPLDRCQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUssRUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELFdBQVcsQ0FBd0QsQ0FBSTtRQUNyRSxNQUFNLE9BQU8sR0FBRyw4QkFBOEIsRUFBRSxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyx5QkFBeUI7SUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO0FBQ3pDLENBQUM7QUFFWSxRQUFBLGVBQWUsR0FBZ0M7SUFDMUQsTUFBTSxDQUFDLE9BQXdCLEVBQUUsU0FBdUIsSUFBSSxtQkFBWSxFQUFFO1FBQ3hFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0MsRUFBRSxNQUFlO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxtQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQyxTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQVc7UUFDbEIsT0FBTztZQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3RSxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBd0I7UUFDN0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBbUQsSUFBUTtRQUMvRCxPQUFPLHVCQUFlLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSyxFQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVyxDQUFtRCxNQUFTO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFDNUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBRUYsU0FBUyxpQ0FBaUM7SUFDeEMsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRVksUUFBQSx1QkFBdUIsR0FBd0M7SUFDMUUsTUFBTSxDQUFDLENBQTBCLEVBQUUsU0FBdUIsSUFBSSxtQkFBWSxFQUFFO1FBQzFFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0MsRUFBRSxNQUFlO1FBQ3RELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxtQkFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFNO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLENBQTBCO1FBQy9CLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLENBQTJELElBQVE7UUFDdkUsT0FBTywrQkFBdUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxXQUFXLENBQTJELENBQUk7UUFDeEUsTUFBTSxPQUFPLEdBQUcsaUNBQWlDLEVBQUUsQ0FBQztRQUNwRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsc0JBQXNCO0lBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBRVksUUFBQSxZQUFZLEdBQTZCO0lBQ3BELE1BQU0sQ0FBQyxPQUFxQixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUNyRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsY0FBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEMsU0FBUztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxjQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDeEQsU0FBUztnQkFDWCxDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTTtZQUNSLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU87WUFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0UsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXFCO1FBQzFCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLE1BQU0sR0FBRyxjQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFnRCxJQUFRO1FBQzVELE9BQU8sb0JBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFLLEVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxXQUFXLENBQWdELE1BQVM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztZQUN0RSxDQUFDLENBQUMsY0FBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsOEJBQThCO0lBQ3JDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVZLFFBQUEsb0JBQW9CLEdBQXFDO0lBQ3BFLE1BQU0sQ0FBQyxDQUF1QixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUN2RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdDLEVBQUUsTUFBZTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksbUJBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztRQUNqRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBTTtRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUF1QjtRQUM1QixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUF3RCxJQUFRO1FBQ3BFLE9BQU8sNEJBQW9CLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSyxFQUFVLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsV0FBVyxDQUF3RCxDQUFJO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLDhCQUE4QixFQUFFLENBQUM7UUFDakQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLHlCQUF5QjtJQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUMxRCxDQUFDO0FBRVksUUFBQSxlQUFlLEdBQWdDO0lBQzFELE1BQU0sQ0FBQyxPQUF3QixFQUFFLFNBQXVCLElBQUksbUJBQVksRUFBRTtRQUN4RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdDLEVBQUUsTUFBZTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxLQUFLLFlBQVksbUJBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLG1CQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQ2YsTUFBTTtvQkFDUixDQUFDO29CQUVELE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwQyxTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNQLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztvQkFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdEMsU0FBUztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDUCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDZixNQUFNO29CQUNSLENBQUM7b0JBRUQsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ25DLFNBQVM7Z0JBQ1gsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVztRQUNsQixPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdFLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDM0UsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBd0I7UUFDN0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixHQUFHLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBbUQsSUFBUTtRQUMvRCxPQUFPLHVCQUFlLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSyxFQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVyxDQUFtRCxNQUFTO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFDNUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDekMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGlDQUFpQztJQUN4QyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFWSxRQUFBLHVCQUF1QixHQUF3QztJQUMxRSxNQUFNLENBQUMsQ0FBMEIsRUFBRSxTQUF1QixJQUFJLG1CQUFZLEVBQUU7UUFDMUUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQyxFQUFFLE1BQWU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxZQUFZLG1CQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLGlDQUFpQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU07UUFDYixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBMEI7UUFDL0IsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBMkQsSUFBUTtRQUN2RSxPQUFPLCtCQUF1QixDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUssRUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFdBQVcsQ0FBMkQsQ0FBSTtRQUN4RSxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3BELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDO0FBSVcsUUFBQSxVQUFVLEdBQUc7SUFDeEIsbURBQW1EO0lBQ25ELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSx1QkFBdUI7UUFDN0IsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFjLEVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6RixrQkFBa0IsRUFBRSxDQUFDLEtBQWEsRUFBVyxFQUFFLENBQUMsZUFBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDckUsaUJBQWlCLEVBQUUsQ0FBQyxLQUFzQixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFHLG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUFtQixFQUFFLENBQUMsdUJBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQ3ZGO0lBQ0QsOERBQThEO0lBQzlELFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSwrQkFBK0I7UUFDckMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFzQixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pHLGtCQUFrQixFQUFFLENBQUMsS0FBYSxFQUFtQixFQUFFLENBQUMsdUJBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3JGLGlCQUFpQixFQUFFLENBQUMsS0FBOEIsRUFBVSxFQUFFLENBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUEyQixFQUFFLENBQUMsK0JBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUN2RztJQUNEOzs7T0FHRztJQUNILGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxpQ0FBaUM7UUFDdkMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUF3QixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3RyxrQkFBa0IsRUFBRSxDQUFDLEtBQWEsRUFBcUIsRUFBRSxDQUFDLHlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDekYsaUJBQWlCLEVBQUUsQ0FBQyxLQUFnQyxFQUFVLEVBQUUsQ0FDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0QsbUJBQW1CLEVBQUUsQ0FBQyxLQUFhLEVBQTZCLEVBQUUsQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQzNHO0lBQ0Q7OztPQUdHO0lBQ0gsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxhQUFhLEVBQUUsS0FBSztRQUNwQixjQUFjLEVBQUUsS0FBSztRQUNyQixnQkFBZ0IsRUFBRSxDQUFDLEtBQXlCLEVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9HLGtCQUFrQixFQUFFLENBQUMsS0FBYSxFQUFzQixFQUFFLENBQUMsMEJBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzRixpQkFBaUIsRUFBRSxDQUFDLEtBQWlDLEVBQVUsRUFBRSxDQUMvRCxNQUFNLENBQUMsSUFBSSxDQUFDLGtDQUEwQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxtQkFBbUIsRUFBRSxDQUFDLEtBQWEsRUFBOEIsRUFBRSxDQUFDLGtDQUEwQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDN0c7SUFDRDs7O09BR0c7SUFDSCxpQkFBaUIsRUFBRTtRQUNqQixJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLGNBQWMsRUFBRSxLQUFLO1FBQ3JCLGdCQUFnQixFQUFFLENBQUMsS0FBMkIsRUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkgsa0JBQWtCLEVBQUUsQ0FBQyxLQUFhLEVBQXdCLEVBQUUsQ0FBQyw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9GLGlCQUFpQixFQUFFLENBQUMsS0FBbUMsRUFBVSxFQUFFLENBQ2pFLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0NBQTRCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUFnQyxFQUFFLENBQUMsb0NBQTRCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUNqSDtJQUNEOzs7T0FHRztJQUNILFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSw0QkFBNEI7UUFDbEMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFtQixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25HLGtCQUFrQixFQUFFLENBQUMsS0FBYSxFQUFnQixFQUFFLENBQUMsb0JBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9FLGlCQUFpQixFQUFFLENBQUMsS0FBMkIsRUFBVSxFQUFFLENBQ3pELE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFELG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUF3QixFQUFFLENBQUMsNEJBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUNqRztJQUNEOzs7T0FHRztJQUNILFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSwrQkFBK0I7UUFDckMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFzQixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pHLGtCQUFrQixFQUFFLENBQUMsS0FBYSxFQUFtQixFQUFFLENBQUMsdUJBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3JGLGlCQUFpQixFQUFFLENBQUMsS0FBOEIsRUFBVSxFQUFFLENBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUEyQixFQUFFLENBQUMsK0JBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUN2RztJQUNEOzs7T0FHRztJQUNILFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSw0QkFBNEI7UUFDbEMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFtQixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25HLGtCQUFrQixFQUFFLENBQUMsS0FBYSxFQUFnQixFQUFFLENBQUMsb0JBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9FLGlCQUFpQixFQUFFLENBQUMsS0FBMkIsRUFBVSxFQUFFLENBQ3pELE1BQU0sQ0FBQyxJQUFJLENBQUMsNEJBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFELG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUF3QixFQUFFLENBQUMsNEJBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUNqRztJQUNEOzs7T0FHRztJQUNILFlBQVksRUFBRTtRQUNaLElBQUksRUFBRSwrQkFBK0I7UUFDckMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsY0FBYyxFQUFFLEtBQUs7UUFDckIsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFzQixFQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pHLGtCQUFrQixFQUFFLENBQUMsS0FBYSxFQUFtQixFQUFFLENBQUMsdUJBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3JGLGlCQUFpQixFQUFFLENBQUMsS0FBOEIsRUFBVSxFQUFFLENBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELG1CQUFtQixFQUFFLENBQUMsS0FBYSxFQUEyQixFQUFFLENBQUMsK0JBQXVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUN2RztDQUNPLENBQUM7QUFpTkUsUUFBQSxTQUFTLEdBQUcsSUFBQSxzQ0FBNEIsRUFBQyxrQkFBVSxFQUFFLGlCQUFpQixDQUlsRixDQUFDO0FBY0YsU0FBUyxLQUFLLENBQUMsS0FBVTtJQUN2QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDIn0=