@arbium/enterprise-agent-connect 0.0.0-stage → 0.1.2-dev.d2aa5ca

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 (319) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +264 -2
  3. package/dist/connectors/dell-techdirect/connector.json +39 -0
  4. package/dist/connectors/dell-techdirect/index.d.ts +8 -0
  5. package/dist/connectors/dell-techdirect/index.js +7 -0
  6. package/dist/connectors/dell-techdirect/index.js.map +1 -0
  7. package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
  8. package/dist/connectors/dell-techdirect/tools.js +49 -0
  9. package/dist/connectors/dell-techdirect/tools.js.map +1 -0
  10. package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
  11. package/dist/connectors/dell-techdirect/vendor.js +57 -0
  12. package/dist/connectors/dell-techdirect/vendor.js.map +1 -0
  13. package/dist/connectors/dynamics-365/connector.json +213 -0
  14. package/dist/connectors/dynamics-365/index.d.ts +11 -0
  15. package/dist/connectors/dynamics-365/index.js +10 -0
  16. package/dist/connectors/dynamics-365/index.js.map +1 -0
  17. package/dist/connectors/dynamics-365/tools.d.ts +35 -0
  18. package/dist/connectors/dynamics-365/tools.js +806 -0
  19. package/dist/connectors/dynamics-365/tools.js.map +1 -0
  20. package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
  21. package/dist/connectors/dynamics-365/vendor.js +110 -0
  22. package/dist/connectors/dynamics-365/vendor.js.map +1 -0
  23. package/dist/connectors/entra/connector.json +85 -0
  24. package/dist/connectors/entra/index.d.ts +2 -0
  25. package/dist/connectors/entra/index.js +4 -0
  26. package/dist/connectors/entra/index.js.map +1 -0
  27. package/dist/connectors/entra/tools.d.ts +14 -0
  28. package/dist/connectors/entra/tools.js +262 -0
  29. package/dist/connectors/entra/tools.js.map +1 -0
  30. package/dist/connectors/fedex/connector.json +118 -0
  31. package/dist/connectors/fedex/index.d.ts +8 -0
  32. package/dist/connectors/fedex/index.js +7 -0
  33. package/dist/connectors/fedex/index.js.map +1 -0
  34. package/dist/connectors/fedex/tools.d.ts +3 -0
  35. package/dist/connectors/fedex/tools.js +152 -0
  36. package/dist/connectors/fedex/tools.js.map +1 -0
  37. package/dist/connectors/fedex/vendor.d.ts +7 -0
  38. package/dist/connectors/fedex/vendor.js +98 -0
  39. package/dist/connectors/fedex/vendor.js.map +1 -0
  40. package/dist/connectors/gong/connector.json +127 -0
  41. package/dist/connectors/gong/index.d.ts +8 -0
  42. package/dist/connectors/gong/index.js +7 -0
  43. package/dist/connectors/gong/index.js.map +1 -0
  44. package/dist/connectors/gong/tools.d.ts +8 -0
  45. package/dist/connectors/gong/tools.js +424 -0
  46. package/dist/connectors/gong/tools.js.map +1 -0
  47. package/dist/connectors/gong/vendor.d.ts +4 -0
  48. package/dist/connectors/gong/vendor.js +97 -0
  49. package/dist/connectors/gong/vendor.js.map +1 -0
  50. package/dist/connectors/http/index.d.ts +38 -0
  51. package/dist/connectors/http/index.js +322 -0
  52. package/dist/connectors/http/index.js.map +1 -0
  53. package/dist/connectors/intune/connector.json +106 -0
  54. package/dist/connectors/intune/index.d.ts +2 -0
  55. package/dist/connectors/intune/index.js +4 -0
  56. package/dist/connectors/intune/index.js.map +1 -0
  57. package/dist/connectors/intune/tools.d.ts +12 -0
  58. package/dist/connectors/intune/tools.js +416 -0
  59. package/dist/connectors/intune/tools.js.map +1 -0
  60. package/dist/connectors/jamf/connector.json +182 -0
  61. package/dist/connectors/jamf/index.d.ts +8 -0
  62. package/dist/connectors/jamf/index.js +7 -0
  63. package/dist/connectors/jamf/index.js.map +1 -0
  64. package/dist/connectors/jamf/tools.d.ts +7 -0
  65. package/dist/connectors/jamf/tools.js +659 -0
  66. package/dist/connectors/jamf/tools.js.map +1 -0
  67. package/dist/connectors/jamf/vendor.d.ts +5 -0
  68. package/dist/connectors/jamf/vendor.js +66 -0
  69. package/dist/connectors/jamf/vendor.js.map +1 -0
  70. package/dist/connectors/jira/connector.json +272 -0
  71. package/dist/connectors/jira/index.d.ts +8 -0
  72. package/dist/connectors/jira/index.js +7 -0
  73. package/dist/connectors/jira/index.js.map +1 -0
  74. package/dist/connectors/jira/jql.d.ts +4 -0
  75. package/dist/connectors/jira/jql.js +67 -0
  76. package/dist/connectors/jira/jql.js.map +1 -0
  77. package/dist/connectors/jira/tools.d.ts +3 -0
  78. package/dist/connectors/jira/tools.js +464 -0
  79. package/dist/connectors/jira/tools.js.map +1 -0
  80. package/dist/connectors/jira/vendor.d.ts +3 -0
  81. package/dist/connectors/jira/vendor.js +94 -0
  82. package/dist/connectors/jira/vendor.js.map +1 -0
  83. package/dist/connectors/microsoft/client.d.ts +58 -0
  84. package/dist/connectors/microsoft/client.js +434 -0
  85. package/dist/connectors/microsoft/client.js.map +1 -0
  86. package/dist/connectors/microsoft/provider.json +118 -0
  87. package/dist/connectors/netsuite/connector.json +315 -0
  88. package/dist/connectors/netsuite/index.d.ts +8 -0
  89. package/dist/connectors/netsuite/index.js +7 -0
  90. package/dist/connectors/netsuite/index.js.map +1 -0
  91. package/dist/connectors/netsuite/tools.d.ts +24 -0
  92. package/dist/connectors/netsuite/tools.js +447 -0
  93. package/dist/connectors/netsuite/tools.js.map +1 -0
  94. package/dist/connectors/netsuite/vendor.d.ts +26 -0
  95. package/dist/connectors/netsuite/vendor.js +248 -0
  96. package/dist/connectors/netsuite/vendor.js.map +1 -0
  97. package/dist/connectors/odata/index.d.ts +36 -0
  98. package/dist/connectors/odata/index.js +460 -0
  99. package/dist/connectors/odata/index.js.map +1 -0
  100. package/dist/connectors/okta/connector.json +193 -0
  101. package/dist/connectors/okta/index.d.ts +8 -0
  102. package/dist/connectors/okta/index.js +7 -0
  103. package/dist/connectors/okta/index.js.map +1 -0
  104. package/dist/connectors/okta/tools.d.ts +6 -0
  105. package/dist/connectors/okta/tools.js +429 -0
  106. package/dist/connectors/okta/tools.js.map +1 -0
  107. package/dist/connectors/okta/vendor.d.ts +14 -0
  108. package/dist/connectors/okta/vendor.js +203 -0
  109. package/dist/connectors/okta/vendor.js.map +1 -0
  110. package/dist/connectors/outlook-calendar/connector.json +136 -0
  111. package/dist/connectors/outlook-calendar/index.d.ts +2 -0
  112. package/dist/connectors/outlook-calendar/index.js +4 -0
  113. package/dist/connectors/outlook-calendar/index.js.map +1 -0
  114. package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
  115. package/dist/connectors/outlook-calendar/tools.js +398 -0
  116. package/dist/connectors/outlook-calendar/tools.js.map +1 -0
  117. package/dist/connectors/outlook-mail/connector.json +154 -0
  118. package/dist/connectors/outlook-mail/index.d.ts +2 -0
  119. package/dist/connectors/outlook-mail/index.js +4 -0
  120. package/dist/connectors/outlook-mail/index.js.map +1 -0
  121. package/dist/connectors/outlook-mail/tools.d.ts +8 -0
  122. package/dist/connectors/outlook-mail/tools.js +236 -0
  123. package/dist/connectors/outlook-mail/tools.js.map +1 -0
  124. package/dist/connectors/salesforce/connector.json +122 -0
  125. package/dist/connectors/salesforce/index.d.ts +8 -0
  126. package/dist/connectors/salesforce/index.js +7 -0
  127. package/dist/connectors/salesforce/index.js.map +1 -0
  128. package/dist/connectors/salesforce/soql.d.ts +3 -0
  129. package/dist/connectors/salesforce/soql.js +60 -0
  130. package/dist/connectors/salesforce/soql.js.map +1 -0
  131. package/dist/connectors/salesforce/tools.d.ts +9 -0
  132. package/dist/connectors/salesforce/tools.js +234 -0
  133. package/dist/connectors/salesforce/tools.js.map +1 -0
  134. package/dist/connectors/salesforce/vendor.d.ts +3 -0
  135. package/dist/connectors/salesforce/vendor.js +107 -0
  136. package/dist/connectors/salesforce/vendor.js.map +1 -0
  137. package/dist/connectors/sap-s4hana/connector.json +263 -0
  138. package/dist/connectors/sap-s4hana/index.d.ts +8 -0
  139. package/dist/connectors/sap-s4hana/index.js +7 -0
  140. package/dist/connectors/sap-s4hana/index.js.map +1 -0
  141. package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
  142. package/dist/connectors/sap-s4hana/tools.js +761 -0
  143. package/dist/connectors/sap-s4hana/tools.js.map +1 -0
  144. package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
  145. package/dist/connectors/sap-s4hana/vendor.js +176 -0
  146. package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
  147. package/dist/connectors/servicenow/connector.json +228 -0
  148. package/dist/connectors/servicenow/index.d.ts +8 -0
  149. package/dist/connectors/servicenow/index.js +7 -0
  150. package/dist/connectors/servicenow/index.js.map +1 -0
  151. package/dist/connectors/servicenow/tools.d.ts +4 -0
  152. package/dist/connectors/servicenow/tools.js +884 -0
  153. package/dist/connectors/servicenow/tools.js.map +1 -0
  154. package/dist/connectors/servicenow/vendor.d.ts +4 -0
  155. package/dist/connectors/servicenow/vendor.js +109 -0
  156. package/dist/connectors/servicenow/vendor.js.map +1 -0
  157. package/dist/connectors/sharepoint-files/connector.json +194 -0
  158. package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
  159. package/dist/connectors/sharepoint-files/excel.js +300 -0
  160. package/dist/connectors/sharepoint-files/excel.js.map +1 -0
  161. package/dist/connectors/sharepoint-files/index.d.ts +11 -0
  162. package/dist/connectors/sharepoint-files/index.js +12 -0
  163. package/dist/connectors/sharepoint-files/index.js.map +1 -0
  164. package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
  165. package/dist/connectors/sharepoint-files/tools.js +365 -0
  166. package/dist/connectors/sharepoint-files/tools.js.map +1 -0
  167. package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
  168. package/dist/connectors/sharepoint-files/vendor.js +167 -0
  169. package/dist/connectors/sharepoint-files/vendor.js.map +1 -0
  170. package/dist/connectors/slack/connector.json +148 -0
  171. package/dist/connectors/slack/index.d.ts +8 -0
  172. package/dist/connectors/slack/index.js +7 -0
  173. package/dist/connectors/slack/index.js.map +1 -0
  174. package/dist/connectors/slack/tools.d.ts +3 -0
  175. package/dist/connectors/slack/tools.js +355 -0
  176. package/dist/connectors/slack/tools.js.map +1 -0
  177. package/dist/connectors/slack/vendor.d.ts +17 -0
  178. package/dist/connectors/slack/vendor.js +195 -0
  179. package/dist/connectors/slack/vendor.js.map +1 -0
  180. package/dist/connectors/soap/index.d.ts +19 -0
  181. package/dist/connectors/soap/index.js +248 -0
  182. package/dist/connectors/soap/index.js.map +1 -0
  183. package/dist/connectors/soap/xml.d.ts +12 -0
  184. package/dist/connectors/soap/xml.js +126 -0
  185. package/dist/connectors/soap/xml.js.map +1 -0
  186. package/dist/connectors/sql/engines.d.ts +58 -0
  187. package/dist/connectors/sql/engines.js +292 -0
  188. package/dist/connectors/sql/engines.js.map +1 -0
  189. package/dist/connectors/sql/index.d.ts +19 -0
  190. package/dist/connectors/sql/index.js +212 -0
  191. package/dist/connectors/sql/index.js.map +1 -0
  192. package/dist/connectors/teams/connector.json +298 -0
  193. package/dist/connectors/teams/index.d.ts +2 -0
  194. package/dist/connectors/teams/index.js +5 -0
  195. package/dist/connectors/teams/index.js.map +1 -0
  196. package/dist/connectors/teams/tools.d.ts +2 -0
  197. package/dist/connectors/teams/tools.js +391 -0
  198. package/dist/connectors/teams/tools.js.map +1 -0
  199. package/dist/connectors/workday/connector.json +186 -0
  200. package/dist/connectors/workday/index.d.ts +8 -0
  201. package/dist/connectors/workday/index.js +7 -0
  202. package/dist/connectors/workday/index.js.map +1 -0
  203. package/dist/connectors/workday/tools.d.ts +33 -0
  204. package/dist/connectors/workday/tools.js +410 -0
  205. package/dist/connectors/workday/tools.js.map +1 -0
  206. package/dist/connectors/workday/vendor.d.ts +18 -0
  207. package/dist/connectors/workday/vendor.js +195 -0
  208. package/dist/connectors/workday/vendor.js.map +1 -0
  209. package/dist/packages/connector-kit/src/branding.d.ts +57 -0
  210. package/dist/packages/connector-kit/src/branding.js +102 -0
  211. package/dist/packages/connector-kit/src/branding.js.map +1 -0
  212. package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
  213. package/dist/packages/connector-kit/src/certificate.js +84 -0
  214. package/dist/packages/connector-kit/src/certificate.js.map +1 -0
  215. package/dist/packages/connector-kit/src/common.d.ts +40 -0
  216. package/dist/packages/connector-kit/src/common.js +107 -0
  217. package/dist/packages/connector-kit/src/common.js.map +1 -0
  218. package/dist/packages/connector-kit/src/connector.d.ts +1346 -0
  219. package/dist/packages/connector-kit/src/connector.js +1034 -0
  220. package/dist/packages/connector-kit/src/connector.js.map +1 -0
  221. package/dist/packages/connector-kit/src/index.d.ts +5 -0
  222. package/dist/packages/connector-kit/src/index.js +5 -0
  223. package/dist/packages/connector-kit/src/index.js.map +1 -0
  224. package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
  225. package/dist/packages/connector-kit/src/oauth.js +96 -0
  226. package/dist/packages/connector-kit/src/oauth.js.map +1 -0
  227. package/dist/packages/connector-kit/src/types.d.ts +85 -0
  228. package/dist/packages/connector-kit/src/types.js +20 -0
  229. package/dist/packages/connector-kit/src/types.js.map +1 -0
  230. package/dist/packages/server/migrations/0001_tables.sql +268 -0
  231. package/dist/packages/server/migrations/0002_organizations.sql +72 -0
  232. package/dist/packages/server/migrations/0003_drop_unused.sql +3 -0
  233. package/dist/packages/server/migrations/0004_trigger_runners.sql +15 -0
  234. package/dist/packages/server/migrations/0005_run_runner.sql +3 -0
  235. package/dist/packages/server/migrations/0006_approvals.sql +36 -0
  236. package/dist/packages/server/migrations/0007_app_events.sql +110 -0
  237. package/dist/packages/server/migrations/rollback/to-legacy.sql +90 -0
  238. package/dist/packages/server/src/api.d.ts +3714 -0
  239. package/dist/packages/server/src/api.js +818 -0
  240. package/dist/packages/server/src/api.js.map +1 -0
  241. package/dist/packages/server/src/app.d.ts +23 -0
  242. package/dist/packages/server/src/app.js +467 -0
  243. package/dist/packages/server/src/app.js.map +1 -0
  244. package/dist/packages/server/src/builtin.d.ts +4 -0
  245. package/dist/packages/server/src/builtin.js +42 -0
  246. package/dist/packages/server/src/builtin.js.map +1 -0
  247. package/dist/packages/server/src/consent.d.ts +27 -0
  248. package/dist/packages/server/src/consent.js +36 -0
  249. package/dist/packages/server/src/consent.js.map +1 -0
  250. package/dist/packages/server/src/events/admin.d.ts +156 -0
  251. package/dist/packages/server/src/events/admin.js +255 -0
  252. package/dist/packages/server/src/events/admin.js.map +1 -0
  253. package/dist/packages/server/src/events/deliver.d.ts +43 -0
  254. package/dist/packages/server/src/events/deliver.js +129 -0
  255. package/dist/packages/server/src/events/deliver.js.map +1 -0
  256. package/dist/packages/server/src/events/runtime.d.ts +28 -0
  257. package/dist/packages/server/src/events/runtime.js +397 -0
  258. package/dist/packages/server/src/events/runtime.js.map +1 -0
  259. package/dist/packages/server/src/events/store.d.ts +172 -0
  260. package/dist/packages/server/src/events/store.js +275 -0
  261. package/dist/packages/server/src/events/store.js.map +1 -0
  262. package/dist/packages/server/src/index.d.ts +40 -0
  263. package/dist/packages/server/src/index.js +185 -0
  264. package/dist/packages/server/src/index.js.map +1 -0
  265. package/dist/packages/server/src/migrate.d.ts +11 -0
  266. package/dist/packages/server/src/migrate.js +134 -0
  267. package/dist/packages/server/src/migrate.js.map +1 -0
  268. package/dist/packages/server/src/openapi.d.ts +4 -0
  269. package/dist/packages/server/src/openapi.js +101 -0
  270. package/dist/packages/server/src/openapi.js.map +1 -0
  271. package/dist/packages/server/src/queue.d.ts +10 -0
  272. package/dist/packages/server/src/queue.js +45 -0
  273. package/dist/packages/server/src/queue.js.map +1 -0
  274. package/dist/packages/server/src/secrets.d.ts +19 -0
  275. package/dist/packages/server/src/secrets.js +76 -0
  276. package/dist/packages/server/src/secrets.js.map +1 -0
  277. package/dist/packages/server/src/server.d.ts +1 -0
  278. package/dist/packages/server/src/server.js +82 -0
  279. package/dist/packages/server/src/server.js.map +1 -0
  280. package/dist/packages/server/src/service.d.ts +760 -0
  281. package/dist/packages/server/src/service.js +918 -0
  282. package/dist/packages/server/src/service.js.map +1 -0
  283. package/dist/packages/server/src/store.d.ts +158 -0
  284. package/dist/packages/server/src/store.js +415 -0
  285. package/dist/packages/server/src/store.js.map +1 -0
  286. package/dist/packages/server/src/teams/activity.d.ts +123 -0
  287. package/dist/packages/server/src/teams/activity.js +188 -0
  288. package/dist/packages/server/src/teams/activity.js.map +1 -0
  289. package/dist/packages/server/src/teams/admin.d.ts +335 -0
  290. package/dist/packages/server/src/teams/admin.js +699 -0
  291. package/dist/packages/server/src/teams/admin.js.map +1 -0
  292. package/dist/packages/server/src/teams/approval.d.ts +57 -0
  293. package/dist/packages/server/src/teams/approval.js +118 -0
  294. package/dist/packages/server/src/teams/approval.js.map +1 -0
  295. package/dist/packages/server/src/teams/bot.d.ts +25 -0
  296. package/dist/packages/server/src/teams/bot.js +124 -0
  297. package/dist/packages/server/src/teams/bot.js.map +1 -0
  298. package/dist/packages/server/src/teams/claude.d.ts +46 -0
  299. package/dist/packages/server/src/teams/claude.js +165 -0
  300. package/dist/packages/server/src/teams/claude.js.map +1 -0
  301. package/dist/packages/server/src/teams/jwt.d.ts +17 -0
  302. package/dist/packages/server/src/teams/jwt.js +121 -0
  303. package/dist/packages/server/src/teams/jwt.js.map +1 -0
  304. package/dist/packages/server/src/teams/package.d.ts +79 -0
  305. package/dist/packages/server/src/teams/package.js +319 -0
  306. package/dist/packages/server/src/teams/package.js.map +1 -0
  307. package/dist/packages/server/src/teams/provision.d.ts +84 -0
  308. package/dist/packages/server/src/teams/provision.js +505 -0
  309. package/dist/packages/server/src/teams/provision.js.map +1 -0
  310. package/dist/packages/server/src/teams/runner.d.ts +80 -0
  311. package/dist/packages/server/src/teams/runner.js +187 -0
  312. package/dist/packages/server/src/teams/runner.js.map +1 -0
  313. package/dist/packages/server/src/teams/runtime.d.ts +91 -0
  314. package/dist/packages/server/src/teams/runtime.js +679 -0
  315. package/dist/packages/server/src/teams/runtime.js.map +1 -0
  316. package/dist/packages/server/src/teams/store.d.ts +233 -0
  317. package/dist/packages/server/src/teams/store.js +507 -0
  318. package/dist/packages/server/src/teams/store.js.map +1 -0
  319. package/package.json +68 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,2FAA2F;AAC3F,sFAAsF;AACtF,0FAA0F;AAC1F,+DAA+D;AAE/D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEnD,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACxC,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC5B,8BAA8B;IAC9B,OAAO,EAAE,IAAI;CACd,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,oEAAoE;AACpE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAErE,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClE,2FAA2F;IAC3F,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC9B,sDAAsD;IACtD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,4FAA4F;IAC5F,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,mFAAmF;IACnF,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,0FAA0F;IAC1F,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,2FAA2F;IAC3F,qFAAqF;IACrF,2BAA2B;IAC3B,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC5C,uFAAuF;IACvF,iCAAiC;IACjC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,mFAAmF;IACnF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,+FAA+F;IAC/F,2EAA2E;IAC3E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,cAAc,CAAC;SACrB,QAAQ,EAAE;IACb,2FAA2F;IAC3F,yBAAyB;IACzB,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,KAAK,CAAC,cAAc,CAAC;SACrB,QAAQ,EAAE;IACb,uFAAuF;IACvF,wFAAwF;IACxF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,0FAA0F;IAC1F,gDAAgD;IAChD,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,yFAAyF;AACzF,MAAM,eAAe,GAAG,UAAU;KAC/B,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,MAAM,EAAE,CAAC;AAEZ,MAAM,SAAS,GAAG;IAChB,CAAC,CAAiE,EAAE,EAAE,CACpE,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,EAAE,OAAO,EAAE,+DAA+D,EAAE;CACpE,CAAC;AACX,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;AACzD,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;AAEvD,4FAA4F;AAC5F,yFAAyF;AACzF,sBAAsB;AACtB,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KACzF,MAAM,EAAE,CAAC;AAEZ,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,uFAAuF;IACvF,sFAAsF;IACtF,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,wFAAwF;AACxF,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;CACtB,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACrD,OAAO,EAAE,qEAAqE;CAC/E,CAAC,CAAC;AAEL,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IAChC,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,wFAAwF;IACxF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,sFAAsF;IACtF,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,6FAA6F;AAC7F,iDAAiD;AACjD,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAC;AAGlE,8FAA8F;AAC9F,kGAAkG;AAClG,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACvD,sFAAsF;AACtF,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACvD,MAAM,QAAQ,GAAG;IACf,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,IAAI;QACX,+EAA+E;QAC/E,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE;KAC/B,CAAC;SACD,MAAM,EAAE;IACX,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACvE,CAAC;AACX,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAClD,GAAG,QAAQ;IACX,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACzC,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,6EAA6E;QAC7E,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,KAAK,CAAC,gCAAgC,CAAC;aACvC,QAAQ,EAAE;KACd,CAAC;SACD,MAAM,EAAE;IACX,sDAAsD;IACtD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC5C,KAAK,EAAE,IAAI;KACZ,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAIH,sFAAsF;AACtF,MAAM,UAAU,GAAG,CAAC,CAAW,EAAuB,EAAE,CACtD,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;IACvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;QACnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO;YAClB,CAAC,CAAC;gBACE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACnB,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;aACnB;YACH,CAAC,CAAC;gBACE,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACnB,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC;aACvB,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC9D,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,CAAU,EAAE,EAAE,CAC5C,IAAI,KAAK,SAAS;IAChB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;QAC5D,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI;QACnB,CAAC,CAAC,KAAK,CAAC;AAEd,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,WAAW,EAAE,IAAI;IACjB,iEAAiE;IACjE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,kFAAkF;IAClF,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,KAAK,CAAC,uBAAuB,CAAC;SAC9B,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtD,kEAAkE;IAClE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,wBAAwB;IACxB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC5B,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,oFAAoF;IACpF,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;CACvB,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACxD,OAAO,EAAE,qEAAqE;CAC/E,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;IAClE,OAAO,EAAE,uCAAuC;CACjD,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,CAAU,EAAE,EAAE,CAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS;YACtB,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO;gBACjB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACxB,CAAC;AACJ,CAAC,EACD,EAAE,OAAO,EAAE,+EAA+E,EAAE,CAC7F,CAAC;AAEJ,2FAA2F;AAC3F,4FAA4F;AAC5F,iFAAiF;AACjF,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC5E,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;KACjF,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;AAE3F,2FAA2F;AAC3F,6FAA6F;AAC7F,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACjD,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtD,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1D,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,kEAAkE;IAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,+EAA+E;IAC/E,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,yFAAyF;IACzF,2FAA2F;IAC3F,mFAAmF;IACnF,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrF,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC7E,OAAO,CACL,MAAM,CAAC,KAAK,CACV,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,MAAM;QAC1B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;QACpB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS;QACjC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EACL,sGAAsG;CACzG,CACF;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;IAC1F,OAAO,EAAE,+BAA+B;CACzC,CAAC;IACF,kFAAkF;KACjF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;IAC3D,OAAO,EAAE,qCAAqC;CAC/C,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAC3F,CAAC,EACD,EAAE,OAAO,EAAE,4EAA4E,EAAE,CAC1F;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;AAC5C,CAAC,EACD,EAAE,OAAO,EAAE,mDAAmD,EAAE,CACjE,CAAC;AAEJ,6FAA6F;AAC7F,gCAAgC;AAChC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,eAAe;IACf,qBAAqB;IACrB,QAAQ;IACR,MAAM;IACN,cAAc;IACd,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;CACb,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,gDAAgD,CAAC;AAEzE,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,4FAA4F;IAC5F,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;IAC/F,IAAI,EAAE,cAAc;IACpB,sFAAsF;IACtF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,4FAA4F;IAC5F,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9C,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,iBAAiB;IACnB,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CACzB,EACH,EAAE,OAAO,EAAE,qEAAqE,EAAE,CACnF;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAC1B,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CACpF,EACH;IACE,OAAO,EACL,iGAAiG;CACpG,CACF;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;IACvB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAM,CAAC,CAAC,IAA0B,CAAC,KAAK,CACtF,CACF,EACH,EAAE,OAAO,EAAE,mDAAmD,EAAE,CACjE,CAAC;AAGJ,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACnG,MAAM,MAAM,GAAG,CAAC,aAAsB,EAAE,GAAG,IAAc,EAAE,EAAE,CAC3D,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;AAE/D,8FAA8F;AAC9F,uFAAuF;AACvF,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,WAAW,EAAE,IAAI;IACjB,oFAAoF;IACpF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAEvD,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,OAAO;IAClB,0EAA0E;IAC1E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,KAAK,CAAC,aAAa,CAAC;SACpB,QAAQ,EAAE;IACb,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,2FAA2F;IAC3F,0DAA0D;IAC1D,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,KAAK,CAAC,gDAAgD,CAAC;SACvD,QAAQ,EAAE;IACb,8EAA8E;IAC9E,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,gEAAgE;IAChE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,YAAY,EAAE,kBAAkB;CACjC,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,CACL,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM;QAClC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC,EACD,EAAE,OAAO,EAAE,8EAA8E,EAAE,CAC5F;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAC5B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,QAAQ,IAAI,IAAI,MAAM,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CACpF,EACH,EAAE,OAAO,EAAE,oEAAoE,EAAE,CAClF;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE;IACnD,OAAO,EAAE,0CAA0C;CACpD,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;IAC7C,OAAO,EAAE,uCAAuC;CACjD,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IACxF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,0FAA0F;IAC1F,UAAU,EAAE,CAAC;SACV,MAAM,CACL,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EACvF,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CACjC;SACA,OAAO,CAAC,EAAE,CAAC;IACd,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5D,4EAA4E;IAC5E,UAAU,EAAE,CAAC;SACV,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;SAC9E,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,yFAAyF;IACzF,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,IAAI,EAAE,IAAI;KACX,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9C,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;KACzF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE;IACtD,OAAO,EAAE,yDAAyD;CACnE,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAO,CAAC,IAAI,CAAC,EAAE;IAC1E,OAAO,EAAE,yCAAyC;CACnD,CAAC,CAAC;AAIL,4FAA4F;AAC5F,8FAA8F;AAC9F,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAChE,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACX,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,UAAU;QACV,gBAAgB;KACjB,CAAC;IACF,WAAW,EAAE,IAAI;IACjB,wFAAwF;IACxF,4DAA4D;IAC5D,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,0CAA0C,CAAC;SACjD,QAAQ,EAAE;IACb,mFAAmF;IACnF,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,iBAAiB,GAAG,gBAAgB;KACvC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACzF,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;KAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;IAChF,OAAO,EAAE,wCAAwC;CAClD,CAAC,CAAC;AAEL,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7C,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE;IACxC,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;IAC9C,MAAM,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;IACrD,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;IAC/C,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;CACrC,CAAC;AAEX,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvE,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC/B,sCAAsC;IACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,gDAAgD;IAChD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,oEAAoE,CAAC;SAC3E,QAAQ,EAAE;IACb,gEAAgE;IAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,YAAY,EAAE,kBAAkB;CACjC,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;IAC9D,OAAO,CACL,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,KAAK,CAAC,KAAK,CACT,CAAC,CAAC,EAAE,EAAE,CAAE,IAAI,CAAC,KAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAClF;QACD,CAAC,CAAE,IAAI,CAAC,KAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAC7C,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EACL,qLAAqL;CACxL,CACF;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE;IAC/E,OAAO,EAAE,oEAAoE;CAC9E,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,CACL,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QACpC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,aAAa,CAAC,CAC1D,CAAC;AACJ,CAAC,EACD,EAAE,OAAO,EAAE,wEAAwE,EAAE,CACtF;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;IAChB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAC7F,EAAE,OAAO,EAAE,yEAAyE,EAAE,CACvF,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,8EAA8E;IAC9E,WAAW,EAAE,CAAC;SACX,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,EAAE,cAAc;IACpB,4EAA4E;IAC5E,OAAO,EAAE,CAAC;SACP,MAAM,CACL,UAAU,CAAC,MAAM,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,CAAC,6EAA6E,CAAC,IAAI,CAAC,CAAC,CAAC,EACxF,gDAAgD,CACjD,EACD,WAAW,CACZ;SACA,OAAO,CAAC,EAAE,CAAC;IACd,oDAAoD;IACpD,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChC,0FAA0F;IAC1F,gCAAgC;IAChC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9C,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CACJ,CAAC,CAAC,iBAAiB,EACnB,CAAC,CAAC,WAAW,EACb,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACvD,EACH,EAAE,OAAO,EAAE,yEAAyE,EAAE,CACvF;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,GAAG,EAAE;IACvD,OAAO,EAAE,+BAA+B;CACzC,CAAC,CAAC;AAIL,gFAAgF;AAChF,2FAA2F;AAC3F,gEAAgE;AAChE,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxD,WAAW,EAAE,IAAI;IACjB,gDAAgD;IAChD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,oFAAoF;IACpF,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAC;IACN,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,sFAAsF;IACtF,kEAAkE;IAClE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,6DAA6D;IAC7D,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,wFAAwF;IACxF,6EAA6E;IAC7E,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACpF,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;AAE1F,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAC3C,yCAAyC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACnD,4BAA4B;IAC5B,QAAQ,EAAE,IAAI;IACd,uEAAuE;IACvE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IACvD,oFAAoF;IACpF,sEAAsE;IACtE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,mEAAmE;IACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,8FAA8F;AAC9F,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAC5F,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC7D,gFAAgF;AAChF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACvC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1C,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC;AACZ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,0FAA0F;IAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;IACjC,0FAA0F;IAC1F,sDAAsD;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,iFAAiF;QACjF,mFAAmF;QACnF,2CAA2C;QAC3C,MAAM,EAAE,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACnC,CAAC;iBACE,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC9B,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACvC,CAAC;iBACD,MAAM,EAAE;YACX,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACnE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;SAC/C,CAAC;QACF,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACzC,IAAI,EAAE,OAAO;QACb,8EAA8E;QAC9E,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC9B,kFAAkF;QAClF,SAAS,EAAE,CAAC;aACT,MAAM,CAAC;YACN,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAChC,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,EAAE,CAAC;iBACP,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;iBACd,OAAO,CAAC,GAAG,CAAC;SAChB,CAAC;aACD,MAAM,EAAE;aACR,QAAQ,EAAE;QACb,6DAA6D;QAC7D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,wFAAwF;QACxF,uFAAuF;QACvF,yBAAyB;QACzB,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACzE,CAAC;SACD,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,aAAa,EAAE;QAC1D,OAAO,EAAE,mDAAmD;KAC7D,CAAC;SACD,QAAQ,EAAE;IACb,0FAA0F;IAC1F,2FAA2F;IAC3F,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,yFAAyF;IACzF,yFAAyF;IACzF,wFAAwF;IACxF,uFAAuF;IACvF,8FAA8F;IAC9F,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC;QACN,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;QACjD,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;QACrB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CACvF;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;KAC7F,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACnD,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAC1E,EAAE,OAAO,EAAE,0EAA0E,EAAE,CACxF,CAAC;AAGJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IACpC,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,8CAA8C;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC;IACrD,QAAQ,EAAE,IAAI;IACd,2FAA2F;IAC3F,gFAAgF;IAChF,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,yFAAyF;IACzF,wEAAwE;IACxE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,cAAc,CAAC;SACrB,QAAQ,EAAE;IACb,sFAAsF;IACtF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClC,sFAAsF;IACtF,+DAA+D;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;IAC3C,wFAAwF;IACxF,wEAAwE;IACxE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC5B,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,IAAI;QACjB,sDAAsD;QACtD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACpC,2CAA2C;QAC3C,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACvC,iFAAiF;QACjF,8DAA8D;QAC9D,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC7B,uEAAuE;QACvE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACrB,iFAAiF;QACjF,gFAAgF;QAChF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC/B,0EAA0E;QAC1E,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,iFAAiF;QACjF,oFAAoF;QACpF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC9D,kFAAkF;QAClF,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;QACrB,gFAAgF;QAChF,+DAA+D;QAC/D,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;QAC1B,gFAAgF;QAChF,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5B,CAAC;SACD,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;QAC7C,OAAO,EAAE,6CAA6C;KACvD,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE;QACxC,OAAO,EAAE,sEAAsE;KAChF,CAAC,CACL;SACA,GAAG,CAAC,CAAC,CAAC;IACT,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC5B,wFAAwF;IACxF,8FAA8F;IAC9F,+DAA+D;IAC/D,sFAAsF;IACtF,6EAA6E;IAC7E,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACjC,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,2FAA2F;IAC3F,yFAAyF;IACzF,2EAA2E;IAC3E,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpD,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,8EAA8E;QAC9E,kFAAkF;QAClF,kFAAkF;QAClF,gDAAgD;QAChD,MAAM,EAAE,CAAC;aACN,MAAM,CACL,IAAI,EACJ,CAAC;aACE,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpD,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C,CAAC;aACD,MAAM,EAAE,CACZ;aACA,OAAO,CAAC,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;KACzB,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;IACb,MAAM,EAAE,WAAW;IACnB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;IAC7B,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE;IACzB,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;CAChC,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;IAC3E,OAAO,EAAE,0DAA0D;CACpE,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,OAAO,CACL,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CACvE;QACD,CAAC,CAAC,CAAC,QAAQ;QACX,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC;AACJ,CAAC,EACD;IACE,OAAO,EACL,qMAAqM;CACxM,CACF;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAY,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAC5F,EAAE,OAAO,EAAE,8DAA8D,EAAE,CAC5E;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO,CACL,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACtF,CAAC;AACJ,CAAC,EACD,EAAE,OAAO,EAAE,+EAA+E,EAAE,CAC7F;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACzF,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CACxC;IACD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,SAAS,CAAC,EAC5F,EAAE,OAAO,EAAE,gFAAgF,EAAE,CAC9F;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAC/C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CACtD,EACH,EAAE,OAAO,EAAE,uDAAuD,EAAE,CACrE;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;IAC1E,OAAO,EAAE,0BAA0B;CACpC,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE;IACtF,OAAO,EAAE,+BAA+B;CACzC,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;AAC9C,CAAC,EACD,EAAE,OAAO,EAAE,uCAAuC,EAAE,CACrD;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAC3F,EAAE,OAAO,EAAE,iFAAiF,EAAE,CAC/F;KACA,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,CAAC,CAAmC,EAAE,MAAuB,EAAE,EAAE,CAChF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,CACL,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACvF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACpF,CAAC;AACJ,CAAC,EACD,EAAE,OAAO,EAAE,4EAA4E,EAAE,CAC1F;KACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9D,OAAO,EAAE,8CAA8C;CACxD,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,CAAC,KAAK,CACZ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAC5F,EACH,EAAE,OAAO,EAAE,0DAA0D,EAAE,CACxE,CAAC;AAEJ,6FAA6F;AAC7F,yDAAyD;AACzD,SAAS,SAAS,CAAC,CAKlB;IACC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAA0C,EAAE,EAAE,CACjE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,CAAC,IAAI;QACR,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAClC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACtC,CAAC;SACH,CAAC;IACJ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7B,OAAO;YACL,MAAM,EAAE;gBACN,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,EAAE;oBACJ,CAAC,CAAE;wBACC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;wBACpB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;qBACI;oBAC3B,CAAC,CAAC,EAAE,CAAC;aACR;YACD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAClC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACtC,CAAC;SACH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,KAAK;QACT,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAChC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;gBACjD,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACtC,CAAC;SACH,CAAC;IACJ,IAAI,CAAC,CAAC,GAAG;QACP,OAAO;YACL,MAAM,EAAE;gBACN,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;gBACxB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;aAC5B;YACD,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACtC,CAAC;SACH,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,6FAA6F;AAC7F,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;IACpC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,CAAC;IACrD,QAAQ,EAAE,IAAI;IACd,kGAAkG;IAClG,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;IAC3C,0FAA0F;IAC1F,yFAAyF;IACzF,2EAA2E;IAC3E,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,oFAAoF;IACpF,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,8FAA8F;IAC9F,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,IAAI;CACb,CAAC;KACD,MAAM,EAAE,CAAC;AAeZ,iGAAiG;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/E,SAAS,KAAK,CAAI,GAAY,EAAE,KAAa,EAAE,MAAoB;IACjE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,KAAa,EAAa,EAAE,CACvE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;AAErC,yFAAyF;AACzF,oFAAoF;AACpF,SAAS,OAAO,CAAI,GAAQ,EAAE,IAAY,EAAE,MAAqC;IAC/E,OAAO,WAAW,CAAC,GAAG,CAAC;SACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;SAC7D,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG,GAAG,cAAc;IACjD,OAAO,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAG,GAAG,cAAc;IAChD,OAAO,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE,CACnD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE7D;0DAC0D;AAC1D,MAAM,UAAU,aAAa,CAAC,SAAoB,EAAE,SAAiC,EAAE;IACrF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,YAA+B,EAC/B,SAAiC,EAAE;IAEnC,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;YAC3B,GAAG,SAAS,CAAC,YAAY;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC1C,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;YACtC,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;SACnE,CAAC;KACH,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,qBAAqB,CACnC,SAAoB,EACpB,KAAwB,EACxB,OAA0B;IAE1B,OAAO,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,kGAAkG;AAClG,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5F,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,UAAuB,EAAE,QAAgB;IACxE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,UAAU;QACxB,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;YACzB,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;gBAC7C,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC;oBAC/E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC/B,CAAC;IACP,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAe,EAAE,MAAgB;IAC1D,OAAO,KAAK;SACT,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACrF;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CACzB,IAAa,EACb,IAAY,EACZ,QAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAE,EAAE,CAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CACzB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,CACxF,CAAC;IACJ,IAAI,MAAM,GAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1F,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { audited, Denied, json, listLimit, mapLimit, textLimit, toolsets, VendorFailed, type ToolContext, type Toolset, } from "./common.js";
2
+ export type { Capability, Connector, ConnectorJson, ConnectorModule } from "./connector.js";
3
+ export { clientCredentials, vendorError } from "./oauth.js";
4
+ export { ConnectError, type CheckInput, type Fetch, type Vendor, type VendorConnection, type VendorRequest, type VendorResponse, } from "./types.js";
5
+ export type { Limits } from "../../server/src/store.js";
@@ -0,0 +1,5 @@
1
+ // What a connector written outside this repo builds on: the server package's ./kit export.
2
+ export { audited, Denied, json, listLimit, mapLimit, textLimit, toolsets, VendorFailed, } from "./common.js";
3
+ export { clientCredentials, vendorError } from "./oauth.js";
4
+ export { ConnectError, } from "./types.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,OAAO,EACL,OAAO,EACP,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,YAAY,GAOb,MAAM,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type Fetch, type VendorRequest, type VendorResponse } from "./types.js";
2
+ type Credentials = {
3
+ tokenUrl: string;
4
+ clientId: string;
5
+ clientSecret: string;
6
+ scope?: string;
7
+ };
8
+ export declare function vendorError(data: unknown): string;
9
+ export declare function clientCredentials(name: string, fetchImpl: Fetch): {
10
+ signIn: (c: Credentials) => Promise<undefined>;
11
+ token: (c: Credentials) => Promise<string>;
12
+ forget: (c: Credentials) => void;
13
+ call(c: Credentials, base: string, request: VendorRequest, headers?: Record<string, string>): Promise<VendorResponse>;
14
+ };
15
+ export {};
@@ -0,0 +1,96 @@
1
+ import { createHash } from "node:crypto";
2
+ import { ConnectError, TokenCache, } from "./types.js";
3
+ // FedEx: { errors: [{ code, message }] }; Dell and most others: { error, error_description }.
4
+ export function vendorError(data) {
5
+ if (!data || typeof data !== "object")
6
+ return typeof data === "string" ? data.slice(0, 300) : "";
7
+ const d = data;
8
+ if (Array.isArray(d.errors))
9
+ return d.errors
10
+ .map((e) => [e.code, e.message].filter(Boolean).join(": "))
11
+ .join("; ")
12
+ .slice(0, 500);
13
+ const text = d.error_description ?? d.message ?? d.error;
14
+ return typeof text === "string" ? text.split(/\r?\n/)[0].slice(0, 300) : "";
15
+ }
16
+ export function clientCredentials(name, fetchImpl) {
17
+ const tokens = new TokenCache();
18
+ const key = (c) => createHash("sha256")
19
+ .update(`${c.tokenUrl}\n${c.clientId}\n${c.clientSecret}\n${c.scope ?? ""}`)
20
+ .digest("hex");
21
+ async function mint(c) {
22
+ const res = await fetchImpl(c.tokenUrl, {
23
+ method: "POST",
24
+ headers: { "content-type": "application/x-www-form-urlencoded", accept: "application/json" },
25
+ body: new URLSearchParams({
26
+ grant_type: "client_credentials",
27
+ client_id: c.clientId,
28
+ client_secret: c.clientSecret,
29
+ ...(c.scope ? { scope: c.scope } : {}),
30
+ }),
31
+ });
32
+ const raw = await res.text();
33
+ const body = parse(raw);
34
+ if (!res.ok) {
35
+ const why = vendorError(body) || String(res.status);
36
+ throw new ConnectError(`${name} refused the sign-in: ${why}`);
37
+ }
38
+ if (typeof body !== "object" || !body || typeof body.access_token !== "string")
39
+ throw new ConnectError(`${name} answered the sign-in without a token`);
40
+ const expiresIn = Number(body.expires_in);
41
+ if (!Number.isFinite(expiresIn) || expiresIn <= 60)
42
+ throw new ConnectError(`${name} answered the sign-in without a usable token lifetime`);
43
+ return { token: body.access_token, expiresIn };
44
+ }
45
+ const token = (c) => tokens.get(key(c), () => mint(c));
46
+ async function send(base, access, request, headers = {}) {
47
+ // A string body (e.g. Jamf's Classic API XML) goes as is, under the request's own
48
+ // content-type; anything else is JSON.
49
+ const asIs = typeof request.body === "string";
50
+ const res = await fetchImpl(`${base}${request.path}`, {
51
+ method: request.method,
52
+ headers: {
53
+ authorization: `Bearer ${access}`,
54
+ accept: "application/json",
55
+ ...headers,
56
+ ...(request.body === undefined || asIs ? {} : { "content-type": "application/json" }),
57
+ ...request.headers,
58
+ },
59
+ body: request.body === undefined
60
+ ? undefined
61
+ : asIs
62
+ ? request.body
63
+ : JSON.stringify(request.body),
64
+ });
65
+ const raw = await res.text();
66
+ return {
67
+ status: res.status,
68
+ data: raw ? parse(raw) : null,
69
+ headers: Object.fromEntries(res.headers),
70
+ };
71
+ }
72
+ return {
73
+ // Proves the credentials by minting a token (and keeps it for the calls that follow).
74
+ signIn: (c) => token(c).then(() => undefined),
75
+ // For a caller sending its own requests: the token, and dropping it after a 401.
76
+ token,
77
+ forget: (c) => tokens.forget(key(c)),
78
+ async call(c, base, request, headers = {}) {
79
+ let res = await send(base, await token(c), request, headers);
80
+ if (res.status === 401) {
81
+ tokens.forget(key(c));
82
+ res = await send(base, await token(c), request, headers);
83
+ }
84
+ return res;
85
+ },
86
+ };
87
+ }
88
+ function parse(raw) {
89
+ try {
90
+ return JSON.parse(raw);
91
+ }
92
+ catch {
93
+ return raw;
94
+ }
95
+ }
96
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ export type Fetch = typeof fetch;
2
+ export type VendorConnection = {
3
+ config: Record<string, string>;
4
+ secret: Record<string, string>;
5
+ };
6
+ export type VendorRequest = {
7
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
8
+ path: string;
9
+ body?: unknown;
10
+ headers?: Record<string, string>;
11
+ responseType?: "text";
12
+ };
13
+ export type VendorResponse = {
14
+ status: number;
15
+ data: unknown;
16
+ headers?: Record<string, string>;
17
+ };
18
+ export type CheckInput = {
19
+ expected: string[];
20
+ };
21
+ export type Vendor = {
22
+ connect(fields: Record<string, string>, provider?: VendorConnection & {
23
+ accountLabel: string;
24
+ }, previous?: Record<string, string>): Promise<VendorConnection & {
25
+ accountLabel: string;
26
+ }>;
27
+ call(connection: VendorConnection, request: VendorRequest): Promise<VendorResponse>;
28
+ sites?: {
29
+ normalize(raw: string[]): string[];
30
+ access(connection: VendorConnection, site: string, write: boolean): Promise<SiteAccess>;
31
+ };
32
+ checks?: Record<string, (connection: VendorConnection, input: CheckInput) => Promise<{
33
+ values: string[];
34
+ warning?: string;
35
+ }>>;
36
+ };
37
+ export type SiteAccess = {
38
+ site: string;
39
+ status: "granted" | "not_granted" | "not_found" | "failed";
40
+ name: string | null;
41
+ message: string;
42
+ };
43
+ export type AgentAccess = {
44
+ value: string;
45
+ status: "granted" | "not_granted" | "not_found" | "failed";
46
+ message: string;
47
+ };
48
+ export type ProviderClient = {
49
+ connect(fields: Record<string, string>, existing: VendorConnection | null): Promise<VendorConnection & {
50
+ accountLabel: string;
51
+ }>;
52
+ verify(connection: VendorConnection): Promise<void>;
53
+ approval?: {
54
+ clientId: string;
55
+ consentUrl(input: {
56
+ state: string;
57
+ redirectUri: string;
58
+ }): string;
59
+ signInUrl(input: {
60
+ tenant: string;
61
+ state: string;
62
+ redirectUri: string;
63
+ nonce: string;
64
+ }): string;
65
+ proveTenant(input: {
66
+ tenant: string;
67
+ code: string;
68
+ redirectUri: string;
69
+ nonce: string;
70
+ }): Promise<void>;
71
+ connect(tenant: string): Promise<VendorConnection & {
72
+ accountLabel: string;
73
+ }>;
74
+ };
75
+ };
76
+ export declare class ConnectError extends Error {
77
+ }
78
+ export declare class TokenCache {
79
+ #private;
80
+ get(key: string, mint: () => Promise<{
81
+ token: string;
82
+ expiresIn: number;
83
+ }>): Promise<string>;
84
+ forget(key: string): void;
85
+ }
@@ -0,0 +1,20 @@
1
+ // What every app's client gives the rest of the service.
2
+ // A failure the admin can act on; its message is shown to them.
3
+ export class ConnectError extends Error {
4
+ }
5
+ // Vendor access tokens, kept until a minute before they expire.
6
+ export class TokenCache {
7
+ #tokens = new Map();
8
+ async get(key, mint) {
9
+ const hit = this.#tokens.get(key);
10
+ if (hit && hit.expiresAt > Date.now())
11
+ return hit.token;
12
+ const { token, expiresIn } = await mint();
13
+ this.#tokens.set(key, { token, expiresAt: Date.now() + (expiresIn - 60) * 1000 });
14
+ return token;
15
+ }
16
+ forget(key) {
17
+ this.#tokens.delete(key);
18
+ }
19
+ }
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/connector-kit/src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAoGzD,gEAAgE;AAChE,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,gEAAgE;AAChE,MAAM,OAAO,UAAU;IACrB,OAAO,GAAG,IAAI,GAAG,EAAgD,CAAC;IAElE,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAyD;QAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,268 @@
1
+ -- The service's tables, as ChainDB's migration 20261023200000 made them in public (so an
2
+ -- install adopted from there and a fresh one end up identical; 0002 renames them). Apps an
3
+ -- organization connected once for its agents, the agents (API keys) allowed to use them, what
4
+ -- each agent may do in each app, a record of every call, and Microsoft Teams bots for agents.
5
+ -- Only the service reads and writes these: RLS is forced. Run with search_path set to the
6
+ -- service's schema.
7
+
8
+ -- An agent authenticates with a key only it holds; we keep its SHA-256. last_used_at is
9
+ -- stamped with every audit row, so listing keys does not aggregate the log.
10
+ create table agent_connect_agents (
11
+ id uuid primary key default gen_random_uuid(),
12
+ organization_id uuid not null,
13
+ name text not null check (length(name) between 1 and 200),
14
+ key_hash text not null unique check (key_hash ~ '^[0-9a-f]{64}$'),
15
+ status text not null check (status in ('active', 'disabled')),
16
+ created_by text,
17
+ created_at timestamptz not null default now(),
18
+ last_used_at timestamptz,
19
+ unique (organization_id, name)
20
+ );
21
+
22
+ -- One sign-in per organization shared by several apps (Microsoft), and the organization's
23
+ -- Claude API key (provider 'anthropic'). The credential is AES-256-GCM sealed by the service
24
+ -- under credential_scope; credential_key_id names the key that sealed it.
25
+ create table agent_connect_providers (
26
+ id uuid primary key default gen_random_uuid(),
27
+ organization_id uuid not null,
28
+ provider text not null check (provider ~ '^[a-z0-9-]+$'),
29
+ status text not null check (status in ('pending', 'connected', 'needs_reconnect')),
30
+ config jsonb not null default '{}'::jsonb,
31
+ credential bytea not null,
32
+ credential_key_id text not null,
33
+ credential_scope text not null,
34
+ account_label text,
35
+ connected_by text,
36
+ connected_at timestamptz not null default now(),
37
+ checked_at timestamptz not null default now(),
38
+ unique (organization_id, provider)
39
+ );
40
+
41
+ -- The service's shared app reaches any tenant that approved it, so one tenant binds to one
42
+ -- organization. A customer's own app reaches only its own tenant.
43
+ create unique index agent_connect_providers_one_org_per_tenant
44
+ on agent_connect_providers (provider, (config->>'tenantId'))
45
+ where config->>'auth' = 'arbium_app';
46
+
47
+ -- One row per connected app: capabilities is the most any agent may do there; config holds
48
+ -- non-secret values. An app signs in with its own sealed credential or through a provider
49
+ -- row, never both. access_ceiling is unused (nullable, never written).
50
+ create table agent_connect_connections (
51
+ id uuid primary key default gen_random_uuid(),
52
+ organization_id uuid not null,
53
+ connector_id text not null check (connector_id ~ '^[a-z0-9-]+$'),
54
+ access_ceiling text,
55
+ config jsonb not null default '{}'::jsonb,
56
+ credential bytea,
57
+ credential_key_id text,
58
+ status text not null check (status in ('connected', 'needs_reconnect')),
59
+ account_label text,
60
+ connected_by text,
61
+ connected_at timestamptz not null default now(),
62
+ checked_at timestamptz not null default now(),
63
+ capabilities text[] not null,
64
+ provider_id uuid references agent_connect_providers(id) on delete cascade,
65
+ unique (organization_id, connector_id),
66
+ constraint agent_connect_connections_one_credential
67
+ check ((provider_id is null) = (credential is not null and credential_key_id is not null))
68
+ );
69
+
70
+ -- Each agent's ticked capabilities per app (the effective set is these within the
71
+ -- connection's), plus value limits such as {"projects": ["KAN"]}. access_level is unused.
72
+ create table agent_connect_grants (
73
+ agent_id uuid not null references agent_connect_agents(id) on delete cascade,
74
+ connector_id text not null check (connector_id ~ '^[a-z0-9-]+$'),
75
+ access_level text,
76
+ limits jsonb not null default '{}'::jsonb check (jsonb_typeof(limits) = 'object'),
77
+ updated_at timestamptz not null default now(),
78
+ capabilities text[] not null,
79
+ primary key (agent_id, connector_id)
80
+ );
81
+
82
+ -- Vendors only see the shared connection, so this is the record of which agent did what. Rows
83
+ -- keep the agent's name after the agent is removed; admin changes have no agent.
84
+ create table agent_connect_audit (
85
+ id bigint generated always as identity primary key,
86
+ at timestamptz not null default now(),
87
+ organization_id uuid not null,
88
+ agent_id uuid references agent_connect_agents(id) on delete set null,
89
+ connector_id text not null,
90
+ tool text not null,
91
+ target text,
92
+ decision text not null check (decision in ('allowed', 'denied', 'failed')),
93
+ reason text,
94
+ vendor_status integer,
95
+ agent_name text
96
+ );
97
+ create index agent_connect_audit_org_at on agent_connect_audit (organization_id, at desc);
98
+
99
+ -- Setup steps the service cannot check live, marked done by an admin; steps of different apps with
100
+ -- the same id share one mark.
101
+ create table agent_connect_confirmed (
102
+ organization_id uuid not null,
103
+ step text not null check (step ~ '^[a-z0-9-]+$'),
104
+ confirmed_by text not null,
105
+ confirmed_at timestamptz not null default now(),
106
+ primary key (organization_id, step)
107
+ );
108
+
109
+ -- Teams (design: AgentConnect/docs/teams.md). One bot per agent; its private key is made by
110
+ -- the service and sealed like other credentials.
111
+ create table agent_connect_teams_bots (
112
+ id uuid primary key default gen_random_uuid(),
113
+ organization_id uuid not null,
114
+ agent_id uuid not null unique references agent_connect_agents(id) on delete cascade,
115
+ -- The Entra application id; null until the setup script made the app and it was proven.
116
+ bot_app_id uuid unique,
117
+ -- The Teams app manifest id, minted here once.
118
+ teams_app_id uuid not null unique default gen_random_uuid(),
119
+ tenant_id uuid not null,
120
+ display_name text not null check (length(display_name) between 1 and 30),
121
+ -- The manifest's version is 1.0.<manifest_version>.
122
+ manifest_version int not null default 1 check (manifest_version >= 1),
123
+ status text not null check (status in ('awaiting_setup', 'connected', 'needs_reconnect')),
124
+ -- {certificate, nextCertificate?}; the private keys are in the sealed credential.
125
+ config jsonb not null default '{}'::jsonb,
126
+ credential bytea not null,
127
+ credential_key_id text not null,
128
+ created_by text,
129
+ created_at timestamptz not null default now(),
130
+ checked_at timestamptz,
131
+ -- The last request refused for this bot, in plain words, so the admin sees why nothing
132
+ -- arrives.
133
+ last_refused_at timestamptz,
134
+ last_refused_reason text
135
+ );
136
+
137
+ -- Where the bot is installed. A team install is one row (the bot sees all its channels);
138
+ -- team_id is Teams' thread id for the team, team_group_id its Microsoft 365 group id.
139
+ create table agent_connect_teams_conversations (
140
+ bot_id uuid not null references agent_connect_teams_bots(id) on delete cascade,
141
+ conversation_id text not null,
142
+ kind text not null check (kind in ('personal', 'groupChat', 'team')),
143
+ service_url text not null check (service_url like 'https://%'),
144
+ team_id text,
145
+ team_group_id uuid,
146
+ name text,
147
+ user_aad_id uuid,
148
+ installed_at timestamptz not null default now(),
149
+ removed_at timestamptz,
150
+ -- The last "limit reached" notice sent there, at most one an hour.
151
+ limit_notice_at timestamptz,
152
+ primary key (bot_id, conversation_id)
153
+ );
154
+
155
+ -- Dedupe and work queue. The activity is sealed (it holds the message text) and cleared once
156
+ -- processed. Pruned after 30 days by the service.
157
+ create table agent_connect_teams_events (
158
+ id bigint generated always as identity primary key,
159
+ bot_id uuid not null references agent_connect_teams_bots(id) on delete cascade,
160
+ activity_id text not null,
161
+ type text not null,
162
+ conversation_id text not null,
163
+ thread_id text,
164
+ from_aad_id text,
165
+ received_at timestamptz not null default now(),
166
+ state text not null check (state in ('pending', 'processing', 'held', 'ignored', 'run', 'done', 'failed')),
167
+ reason text,
168
+ payload bytea,
169
+ payload_key_id text,
170
+ claimed_at timestamptz,
171
+ unique (bot_id, activity_id)
172
+ );
173
+ create index agent_connect_teams_events_pending on agent_connect_teams_events (id)
174
+ where state = 'pending';
175
+ create index agent_connect_teams_events_held on agent_connect_teams_events (bot_id, thread_id)
176
+ where state = 'held';
177
+
178
+ -- Each agent's real-time response settings.
179
+ create table agent_connect_teams_triggers (
180
+ agent_id uuid primary key references agent_connect_agents(id) on delete cascade,
181
+ enabled boolean not null default false,
182
+ managed_agent_id text not null check (managed_agent_id ~ '^[A-Za-z0-9_-]{1,128}$'),
183
+ environment_id text not null check (environment_id ~ '^[A-Za-z0-9_-]{1,128}$'),
184
+ vault_ids text[] not null default '{}',
185
+ budget_cents int not null check (budget_cents between 1 and 2000),
186
+ max_runs_per_hour int not null default 20 check (max_runs_per_hour between 1 and 100),
187
+ -- What this agent's answers may cost together in any 24 hours.
188
+ max_cents_per_day int not null default 500 check (max_cents_per_day between 1 and 100000),
189
+ max_concurrent int not null default 2 check (max_concurrent between 1 and 10),
190
+ reply_mode text not null default 'mentions' check (reply_mode in ('mentions', 'all')),
191
+ allowed_teams uuid[] not null default '{}',
192
+ allowed_people uuid[] not null default '{}',
193
+ -- An empty allowed_people means nobody unless this is set: anyone in the organization (never
194
+ -- guests) may then ask the agent, which acts with everything the agent was granted.
195
+ anyone_in_organization boolean not null default false,
196
+ check (anyone_in_organization or cardinality(allowed_people) > 0 or not enabled),
197
+ updated_by text,
198
+ updated_at timestamptz not null default now()
199
+ );
200
+
201
+ -- One Claude Managed Agents session per thread, reused for later messages there. The reply
202
+ -- token is for the latest message only.
203
+ create table agent_connect_teams_runs (
204
+ id uuid primary key default gen_random_uuid(),
205
+ agent_id uuid not null references agent_connect_agents(id) on delete cascade,
206
+ bot_id uuid not null references agent_connect_teams_bots(id) on delete cascade,
207
+ conversation_id text not null,
208
+ thread_id text not null,
209
+ trigger_activity_id text not null,
210
+ session_id text,
211
+ reply_token_hash text not null unique check (reply_token_hash ~ '^[0-9a-f]{64}$'),
212
+ reply_token_at timestamptz not null default now(),
213
+ -- no_reply: the session finished without answering in Teams.
214
+ state text not null check (state in ('starting', 'running', 'idle', 'ended', 'failed', 'no_reply')),
215
+ error text,
216
+ -- Something the admin should know that did not stop the answer.
217
+ note text,
218
+ -- Who asked: a session is only reused for the same person.
219
+ requested_by_aad_id uuid,
220
+ -- Replies sent with the current reply token (a few per message at most), and the last one.
221
+ reply_count int not null default 0,
222
+ replied_at timestamptz,
223
+ cost_cents int,
224
+ turns int not null default 1,
225
+ started_at timestamptz not null default now(),
226
+ finished_at timestamptz
227
+ );
228
+ create index agent_connect_teams_runs_agent on agent_connect_teams_runs (agent_id, started_at desc);
229
+ -- One active session per thread: a second message while one runs is held, not a second run.
230
+ create unique index agent_connect_teams_runs_one_active
231
+ on agent_connect_teams_runs (bot_id, thread_id) where state in ('starting', 'running');
232
+
233
+ -- What each Teams answer cost, per turn (a run's cost_cents is its session's running total);
234
+ -- the 24-hour spend limit sums these.
235
+ create table agent_connect_teams_spend (
236
+ id bigint generated always as identity primary key,
237
+ agent_id uuid not null references agent_connect_agents(id) on delete cascade,
238
+ run_id uuid not null references agent_connect_teams_runs(id) on delete cascade,
239
+ cents int not null check (cents > 0),
240
+ spent_at timestamptz not null default now()
241
+ );
242
+ create index agent_connect_teams_spend_agent
243
+ on agent_connect_teams_spend (agent_id, spent_at desc);
244
+
245
+ alter table agent_connect_agents enable row level security;
246
+ alter table agent_connect_agents force row level security;
247
+ alter table agent_connect_providers enable row level security;
248
+ alter table agent_connect_providers force row level security;
249
+ alter table agent_connect_connections enable row level security;
250
+ alter table agent_connect_connections force row level security;
251
+ alter table agent_connect_grants enable row level security;
252
+ alter table agent_connect_grants force row level security;
253
+ alter table agent_connect_audit enable row level security;
254
+ alter table agent_connect_audit force row level security;
255
+ alter table agent_connect_confirmed enable row level security;
256
+ alter table agent_connect_confirmed force row level security;
257
+ alter table agent_connect_teams_bots enable row level security;
258
+ alter table agent_connect_teams_bots force row level security;
259
+ alter table agent_connect_teams_conversations enable row level security;
260
+ alter table agent_connect_teams_conversations force row level security;
261
+ alter table agent_connect_teams_events enable row level security;
262
+ alter table agent_connect_teams_events force row level security;
263
+ alter table agent_connect_teams_triggers enable row level security;
264
+ alter table agent_connect_teams_triggers force row level security;
265
+ alter table agent_connect_teams_runs enable row level security;
266
+ alter table agent_connect_teams_runs force row level security;
267
+ alter table agent_connect_teams_spend enable row level security;
268
+ alter table agent_connect_teams_spend force row level security;