@adaptive-ds/zitadel-cli 0.1.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 (2053) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +304 -0
  3. package/dist/api/apiCall.d.ts +18 -0
  4. package/dist/api/apiCall.d.ts.map +1 -0
  5. package/dist/api/apiCall.js +54 -0
  6. package/dist/api/apiCall.js.map +1 -0
  7. package/dist/api/apiCatalogList.d.ts +15 -0
  8. package/dist/api/apiCatalogList.d.ts.map +1 -0
  9. package/dist/api/apiCatalogList.js +22 -0
  10. package/dist/api/apiCatalogList.js.map +1 -0
  11. package/dist/api/apiMessageDescribe.d.ts +19 -0
  12. package/dist/api/apiMessageDescribe.d.ts.map +1 -0
  13. package/dist/api/apiMessageDescribe.js +47 -0
  14. package/dist/api/apiMessageDescribe.js.map +1 -0
  15. package/dist/api/apiMetadataSerialize.d.ts +4 -0
  16. package/dist/api/apiMetadataSerialize.d.ts.map +1 -0
  17. package/dist/api/apiMetadataSerialize.js +19 -0
  18. package/dist/api/apiMetadataSerialize.js.map +1 -0
  19. package/dist/api/apiMethodDescribe.d.ts +29 -0
  20. package/dist/api/apiMethodDescribe.d.ts.map +1 -0
  21. package/dist/api/apiMethodDescribe.js +30 -0
  22. package/dist/api/apiMethodDescribe.js.map +1 -0
  23. package/dist/api/apiMethodFind.d.ts +4 -0
  24. package/dist/api/apiMethodFind.d.ts.map +1 -0
  25. package/dist/api/apiMethodFind.js +33 -0
  26. package/dist/api/apiMethodFind.js.map +1 -0
  27. package/dist/api/apiPolicy.d.ts +13 -0
  28. package/dist/api/apiPolicy.d.ts.map +1 -0
  29. package/dist/api/apiPolicy.js +13 -0
  30. package/dist/api/apiPolicy.js.map +1 -0
  31. package/dist/api/apiServiceDescribe.d.ts +35 -0
  32. package/dist/api/apiServiceDescribe.d.ts.map +1 -0
  33. package/dist/api/apiServiceDescribe.js +38 -0
  34. package/dist/api/apiServiceDescribe.js.map +1 -0
  35. package/dist/api/apiServiceFind.d.ts +4 -0
  36. package/dist/api/apiServiceFind.d.ts.map +1 -0
  37. package/dist/api/apiServiceFind.js +22 -0
  38. package/dist/api/apiServiceFind.js.map +1 -0
  39. package/dist/api/index.d.ts +16 -0
  40. package/dist/api/index.d.ts.map +1 -0
  41. package/dist/api/index.js +10 -0
  42. package/dist/api/index.js.map +1 -0
  43. package/dist/catalog/index.d.ts +6 -0
  44. package/dist/catalog/index.d.ts.map +1 -0
  45. package/dist/catalog/index.js +5 -0
  46. package/dist/catalog/index.js.map +1 -0
  47. package/dist/catalog/legacyServiceCatalog.d.ts +2 -0
  48. package/dist/catalog/legacyServiceCatalog.d.ts.map +1 -0
  49. package/dist/catalog/legacyServiceCatalog.js +4 -0
  50. package/dist/catalog/legacyServiceCatalog.js.map +1 -0
  51. package/dist/catalog/methodCatalog.d.ts +3 -0
  52. package/dist/catalog/methodCatalog.d.ts.map +1 -0
  53. package/dist/catalog/methodCatalog.js +3 -0
  54. package/dist/catalog/methodCatalog.js.map +1 -0
  55. package/dist/catalog/serviceCatalog.d.ts +2 -0
  56. package/dist/catalog/serviceCatalog.d.ts.map +1 -0
  57. package/dist/catalog/serviceCatalog.js +4 -0
  58. package/dist/catalog/serviceCatalog.js.map +1 -0
  59. package/dist/catalog/serviceCatalogCreate.d.ts +22 -0
  60. package/dist/catalog/serviceCatalogCreate.d.ts.map +1 -0
  61. package/dist/catalog/serviceCatalogCreate.js +26 -0
  62. package/dist/catalog/serviceCatalogCreate.js.map +1 -0
  63. package/dist/catalog/v2ServiceCatalog.d.ts +2 -0
  64. package/dist/catalog/v2ServiceCatalog.d.ts.map +1 -0
  65. package/dist/catalog/v2ServiceCatalog.js +16 -0
  66. package/dist/catalog/v2ServiceCatalog.js.map +1 -0
  67. package/dist/cli/actionsExecutionFunctionsListCommand.d.ts +7 -0
  68. package/dist/cli/actionsExecutionFunctionsListCommand.d.ts.map +1 -0
  69. package/dist/cli/actionsExecutionFunctionsListCommand.js +21 -0
  70. package/dist/cli/actionsExecutionFunctionsListCommand.js.map +1 -0
  71. package/dist/cli/actionsExecutionMethodsListCommand.d.ts +7 -0
  72. package/dist/cli/actionsExecutionMethodsListCommand.d.ts.map +1 -0
  73. package/dist/cli/actionsExecutionMethodsListCommand.js +21 -0
  74. package/dist/cli/actionsExecutionMethodsListCommand.js.map +1 -0
  75. package/dist/cli/actionsExecutionServicesListCommand.d.ts +7 -0
  76. package/dist/cli/actionsExecutionServicesListCommand.d.ts.map +1 -0
  77. package/dist/cli/actionsExecutionServicesListCommand.js +21 -0
  78. package/dist/cli/actionsExecutionServicesListCommand.js.map +1 -0
  79. package/dist/cli/actionsExecutionsListCommand.d.ts +7 -0
  80. package/dist/cli/actionsExecutionsListCommand.d.ts.map +1 -0
  81. package/dist/cli/actionsExecutionsListCommand.js +21 -0
  82. package/dist/cli/actionsExecutionsListCommand.js.map +1 -0
  83. package/dist/cli/actionsExecutionsSetCommand.d.ts +7 -0
  84. package/dist/cli/actionsExecutionsSetCommand.d.ts.map +1 -0
  85. package/dist/cli/actionsExecutionsSetCommand.js +21 -0
  86. package/dist/cli/actionsExecutionsSetCommand.js.map +1 -0
  87. package/dist/cli/actionsPublicKeysListCommand.d.ts +7 -0
  88. package/dist/cli/actionsPublicKeysListCommand.d.ts.map +1 -0
  89. package/dist/cli/actionsPublicKeysListCommand.js +21 -0
  90. package/dist/cli/actionsPublicKeysListCommand.js.map +1 -0
  91. package/dist/cli/actionsRemovePublicKeyCommand.d.ts +7 -0
  92. package/dist/cli/actionsRemovePublicKeyCommand.d.ts.map +1 -0
  93. package/dist/cli/actionsRemovePublicKeyCommand.js +21 -0
  94. package/dist/cli/actionsRemovePublicKeyCommand.js.map +1 -0
  95. package/dist/cli/actionsTargetsActivatePublicKeyCommand.d.ts +7 -0
  96. package/dist/cli/actionsTargetsActivatePublicKeyCommand.d.ts.map +1 -0
  97. package/dist/cli/actionsTargetsActivatePublicKeyCommand.js +21 -0
  98. package/dist/cli/actionsTargetsActivatePublicKeyCommand.js.map +1 -0
  99. package/dist/cli/actionsTargetsAddPublicKeyCommand.d.ts +7 -0
  100. package/dist/cli/actionsTargetsAddPublicKeyCommand.d.ts.map +1 -0
  101. package/dist/cli/actionsTargetsAddPublicKeyCommand.js +21 -0
  102. package/dist/cli/actionsTargetsAddPublicKeyCommand.js.map +1 -0
  103. package/dist/cli/actionsTargetsCreateCommand.d.ts +7 -0
  104. package/dist/cli/actionsTargetsCreateCommand.d.ts.map +1 -0
  105. package/dist/cli/actionsTargetsCreateCommand.js +21 -0
  106. package/dist/cli/actionsTargetsCreateCommand.js.map +1 -0
  107. package/dist/cli/actionsTargetsDeactivatePublicKeyCommand.d.ts +7 -0
  108. package/dist/cli/actionsTargetsDeactivatePublicKeyCommand.d.ts.map +1 -0
  109. package/dist/cli/actionsTargetsDeactivatePublicKeyCommand.js +21 -0
  110. package/dist/cli/actionsTargetsDeactivatePublicKeyCommand.js.map +1 -0
  111. package/dist/cli/actionsTargetsDeleteCommand.d.ts +7 -0
  112. package/dist/cli/actionsTargetsDeleteCommand.d.ts.map +1 -0
  113. package/dist/cli/actionsTargetsDeleteCommand.js +21 -0
  114. package/dist/cli/actionsTargetsDeleteCommand.js.map +1 -0
  115. package/dist/cli/actionsTargetsGetCommand.d.ts +7 -0
  116. package/dist/cli/actionsTargetsGetCommand.d.ts.map +1 -0
  117. package/dist/cli/actionsTargetsGetCommand.js +21 -0
  118. package/dist/cli/actionsTargetsGetCommand.js.map +1 -0
  119. package/dist/cli/actionsTargetsListCommand.d.ts +7 -0
  120. package/dist/cli/actionsTargetsListCommand.d.ts.map +1 -0
  121. package/dist/cli/actionsTargetsListCommand.js +21 -0
  122. package/dist/cli/actionsTargetsListCommand.js.map +1 -0
  123. package/dist/cli/actionsTargetsUpdateCommand.d.ts +7 -0
  124. package/dist/cli/actionsTargetsUpdateCommand.d.ts.map +1 -0
  125. package/dist/cli/actionsTargetsUpdateCommand.js +21 -0
  126. package/dist/cli/actionsTargetsUpdateCommand.js.map +1 -0
  127. package/dist/cli/adminAddGoogleProviderCommand.d.ts +8 -0
  128. package/dist/cli/adminAddGoogleProviderCommand.d.ts.map +1 -0
  129. package/dist/cli/adminAddGoogleProviderCommand.js +21 -0
  130. package/dist/cli/adminAddGoogleProviderCommand.js.map +1 -0
  131. package/dist/cli/apiCallCommand.d.ts +3 -0
  132. package/dist/cli/apiCallCommand.d.ts.map +1 -0
  133. package/dist/cli/apiCallCommand.js +94 -0
  134. package/dist/cli/apiCallCommand.js.map +1 -0
  135. package/dist/cli/apiDescribeCommand.d.ts +3 -0
  136. package/dist/cli/apiDescribeCommand.d.ts.map +1 -0
  137. package/dist/cli/apiDescribeCommand.js +55 -0
  138. package/dist/cli/apiDescribeCommand.js.map +1 -0
  139. package/dist/cli/apiListCommand.d.ts +3 -0
  140. package/dist/cli/apiListCommand.d.ts.map +1 -0
  141. package/dist/cli/apiListCommand.js +44 -0
  142. package/dist/cli/apiListCommand.js.map +1 -0
  143. package/dist/cli/applicationsCreateCommand.d.ts +7 -0
  144. package/dist/cli/applicationsCreateCommand.d.ts.map +1 -0
  145. package/dist/cli/applicationsCreateCommand.js +21 -0
  146. package/dist/cli/applicationsCreateCommand.js.map +1 -0
  147. package/dist/cli/applicationsCreateKeyCommand.d.ts +7 -0
  148. package/dist/cli/applicationsCreateKeyCommand.d.ts.map +1 -0
  149. package/dist/cli/applicationsCreateKeyCommand.js +21 -0
  150. package/dist/cli/applicationsCreateKeyCommand.js.map +1 -0
  151. package/dist/cli/applicationsDeactivateCommand.d.ts +7 -0
  152. package/dist/cli/applicationsDeactivateCommand.d.ts.map +1 -0
  153. package/dist/cli/applicationsDeactivateCommand.js +21 -0
  154. package/dist/cli/applicationsDeactivateCommand.js.map +1 -0
  155. package/dist/cli/applicationsDeleteApplicationKeyCommand.d.ts +7 -0
  156. package/dist/cli/applicationsDeleteApplicationKeyCommand.d.ts.map +1 -0
  157. package/dist/cli/applicationsDeleteApplicationKeyCommand.js +21 -0
  158. package/dist/cli/applicationsDeleteApplicationKeyCommand.js.map +1 -0
  159. package/dist/cli/applicationsDeleteCommand.d.ts +7 -0
  160. package/dist/cli/applicationsDeleteCommand.d.ts.map +1 -0
  161. package/dist/cli/applicationsDeleteCommand.js +21 -0
  162. package/dist/cli/applicationsDeleteCommand.js.map +1 -0
  163. package/dist/cli/applicationsGenerateClientSecretCommand.d.ts +7 -0
  164. package/dist/cli/applicationsGenerateClientSecretCommand.d.ts.map +1 -0
  165. package/dist/cli/applicationsGenerateClientSecretCommand.js +21 -0
  166. package/dist/cli/applicationsGenerateClientSecretCommand.js.map +1 -0
  167. package/dist/cli/applicationsGetApplicationKeyCommand.d.ts +7 -0
  168. package/dist/cli/applicationsGetApplicationKeyCommand.d.ts.map +1 -0
  169. package/dist/cli/applicationsGetApplicationKeyCommand.js +21 -0
  170. package/dist/cli/applicationsGetApplicationKeyCommand.js.map +1 -0
  171. package/dist/cli/applicationsGetCommand.d.ts +7 -0
  172. package/dist/cli/applicationsGetCommand.d.ts.map +1 -0
  173. package/dist/cli/applicationsGetCommand.js +21 -0
  174. package/dist/cli/applicationsGetCommand.js.map +1 -0
  175. package/dist/cli/applicationsKeysListCommand.d.ts +7 -0
  176. package/dist/cli/applicationsKeysListCommand.d.ts.map +1 -0
  177. package/dist/cli/applicationsKeysListCommand.js +21 -0
  178. package/dist/cli/applicationsKeysListCommand.js.map +1 -0
  179. package/dist/cli/applicationsListCommand.d.ts +7 -0
  180. package/dist/cli/applicationsListCommand.d.ts.map +1 -0
  181. package/dist/cli/applicationsListCommand.js +21 -0
  182. package/dist/cli/applicationsListCommand.js.map +1 -0
  183. package/dist/cli/applicationsReactivateCommand.d.ts +7 -0
  184. package/dist/cli/applicationsReactivateCommand.d.ts.map +1 -0
  185. package/dist/cli/applicationsReactivateCommand.js +21 -0
  186. package/dist/cli/applicationsReactivateCommand.js.map +1 -0
  187. package/dist/cli/applicationsUpdateCommand.d.ts +7 -0
  188. package/dist/cli/applicationsUpdateCommand.d.ts.map +1 -0
  189. package/dist/cli/applicationsUpdateCommand.js +21 -0
  190. package/dist/cli/applicationsUpdateCommand.js.map +1 -0
  191. package/dist/cli/endpointCommandBuild.d.ts +28 -0
  192. package/dist/cli/endpointCommandBuild.d.ts.map +1 -0
  193. package/dist/cli/endpointCommandBuild.js +92 -0
  194. package/dist/cli/endpointCommandBuild.js.map +1 -0
  195. package/dist/cli/internalPermissionsCreateAdministratorCommand.d.ts +7 -0
  196. package/dist/cli/internalPermissionsCreateAdministratorCommand.d.ts.map +1 -0
  197. package/dist/cli/internalPermissionsCreateAdministratorCommand.js +21 -0
  198. package/dist/cli/internalPermissionsCreateAdministratorCommand.js.map +1 -0
  199. package/dist/cli/internalPermissionsDeleteAdministratorCommand.d.ts +7 -0
  200. package/dist/cli/internalPermissionsDeleteAdministratorCommand.d.ts.map +1 -0
  201. package/dist/cli/internalPermissionsDeleteAdministratorCommand.js +21 -0
  202. package/dist/cli/internalPermissionsDeleteAdministratorCommand.js.map +1 -0
  203. package/dist/cli/internalPermissionsListAdministratorsCommand.d.ts +7 -0
  204. package/dist/cli/internalPermissionsListAdministratorsCommand.d.ts.map +1 -0
  205. package/dist/cli/internalPermissionsListAdministratorsCommand.js +21 -0
  206. package/dist/cli/internalPermissionsListAdministratorsCommand.js.map +1 -0
  207. package/dist/cli/internalPermissionsUpdateAdministratorCommand.d.ts +7 -0
  208. package/dist/cli/internalPermissionsUpdateAdministratorCommand.d.ts.map +1 -0
  209. package/dist/cli/internalPermissionsUpdateAdministratorCommand.js +21 -0
  210. package/dist/cli/internalPermissionsUpdateAdministratorCommand.js.map +1 -0
  211. package/dist/cli/oidcDiscoveryCommand.d.ts +8 -0
  212. package/dist/cli/oidcDiscoveryCommand.d.ts.map +1 -0
  213. package/dist/cli/oidcDiscoveryCommand.js +72 -0
  214. package/dist/cli/oidcDiscoveryCommand.js.map +1 -0
  215. package/dist/cli/oidcUserInfoCommand.d.ts +9 -0
  216. package/dist/cli/oidcUserInfoCommand.d.ts.map +1 -0
  217. package/dist/cli/oidcUserInfoCommand.js +110 -0
  218. package/dist/cli/oidcUserInfoCommand.js.map +1 -0
  219. package/dist/cli/organizationsActivateCommand.d.ts +7 -0
  220. package/dist/cli/organizationsActivateCommand.d.ts.map +1 -0
  221. package/dist/cli/organizationsActivateCommand.js +21 -0
  222. package/dist/cli/organizationsActivateCommand.js.map +1 -0
  223. package/dist/cli/organizationsAddCommand.d.ts +7 -0
  224. package/dist/cli/organizationsAddCommand.d.ts.map +1 -0
  225. package/dist/cli/organizationsAddCommand.js +21 -0
  226. package/dist/cli/organizationsAddCommand.js.map +1 -0
  227. package/dist/cli/organizationsAddOrganizationDomainCommand.d.ts +7 -0
  228. package/dist/cli/organizationsAddOrganizationDomainCommand.d.ts.map +1 -0
  229. package/dist/cli/organizationsAddOrganizationDomainCommand.js +21 -0
  230. package/dist/cli/organizationsAddOrganizationDomainCommand.js.map +1 -0
  231. package/dist/cli/organizationsDeactivateCommand.d.ts +7 -0
  232. package/dist/cli/organizationsDeactivateCommand.d.ts.map +1 -0
  233. package/dist/cli/organizationsDeactivateCommand.js +21 -0
  234. package/dist/cli/organizationsDeactivateCommand.js.map +1 -0
  235. package/dist/cli/organizationsDeleteCommand.d.ts +7 -0
  236. package/dist/cli/organizationsDeleteCommand.d.ts.map +1 -0
  237. package/dist/cli/organizationsDeleteCommand.js +21 -0
  238. package/dist/cli/organizationsDeleteCommand.js.map +1 -0
  239. package/dist/cli/organizationsDeleteOrganizationDomainCommand.d.ts +7 -0
  240. package/dist/cli/organizationsDeleteOrganizationDomainCommand.d.ts.map +1 -0
  241. package/dist/cli/organizationsDeleteOrganizationDomainCommand.js +21 -0
  242. package/dist/cli/organizationsDeleteOrganizationDomainCommand.js.map +1 -0
  243. package/dist/cli/organizationsDeleteOrganizationMetadataCommand.d.ts +7 -0
  244. package/dist/cli/organizationsDeleteOrganizationMetadataCommand.d.ts.map +1 -0
  245. package/dist/cli/organizationsDeleteOrganizationMetadataCommand.js +21 -0
  246. package/dist/cli/organizationsDeleteOrganizationMetadataCommand.js.map +1 -0
  247. package/dist/cli/organizationsDomainsListCommand.d.ts +7 -0
  248. package/dist/cli/organizationsDomainsListCommand.d.ts.map +1 -0
  249. package/dist/cli/organizationsDomainsListCommand.js +21 -0
  250. package/dist/cli/organizationsDomainsListCommand.js.map +1 -0
  251. package/dist/cli/organizationsGenerateOrganizationDomainValidationCommand.d.ts +7 -0
  252. package/dist/cli/organizationsGenerateOrganizationDomainValidationCommand.d.ts.map +1 -0
  253. package/dist/cli/organizationsGenerateOrganizationDomainValidationCommand.js +21 -0
  254. package/dist/cli/organizationsGenerateOrganizationDomainValidationCommand.js.map +1 -0
  255. package/dist/cli/organizationsListCommand.d.ts +7 -0
  256. package/dist/cli/organizationsListCommand.d.ts.map +1 -0
  257. package/dist/cli/organizationsListCommand.js +21 -0
  258. package/dist/cli/organizationsListCommand.js.map +1 -0
  259. package/dist/cli/organizationsListOrganizationMetadataCommand.d.ts +7 -0
  260. package/dist/cli/organizationsListOrganizationMetadataCommand.d.ts.map +1 -0
  261. package/dist/cli/organizationsListOrganizationMetadataCommand.js +21 -0
  262. package/dist/cli/organizationsListOrganizationMetadataCommand.js.map +1 -0
  263. package/dist/cli/organizationsSetOrganizationMetadataCommand.d.ts +7 -0
  264. package/dist/cli/organizationsSetOrganizationMetadataCommand.d.ts.map +1 -0
  265. package/dist/cli/organizationsSetOrganizationMetadataCommand.js +21 -0
  266. package/dist/cli/organizationsSetOrganizationMetadataCommand.js.map +1 -0
  267. package/dist/cli/organizationsUpdateCommand.d.ts +7 -0
  268. package/dist/cli/organizationsUpdateCommand.d.ts.map +1 -0
  269. package/dist/cli/organizationsUpdateCommand.js +21 -0
  270. package/dist/cli/organizationsUpdateCommand.js.map +1 -0
  271. package/dist/cli/organizationsVerifyOrganizationDomainCommand.d.ts +7 -0
  272. package/dist/cli/organizationsVerifyOrganizationDomainCommand.d.ts.map +1 -0
  273. package/dist/cli/organizationsVerifyOrganizationDomainCommand.js +21 -0
  274. package/dist/cli/organizationsVerifyOrganizationDomainCommand.js.map +1 -0
  275. package/dist/cli/projectsActivateCommand.d.ts +7 -0
  276. package/dist/cli/projectsActivateCommand.d.ts.map +1 -0
  277. package/dist/cli/projectsActivateCommand.js +21 -0
  278. package/dist/cli/projectsActivateCommand.js.map +1 -0
  279. package/dist/cli/projectsActivateProjectGrantCommand.d.ts +7 -0
  280. package/dist/cli/projectsActivateProjectGrantCommand.d.ts.map +1 -0
  281. package/dist/cli/projectsActivateProjectGrantCommand.js +21 -0
  282. package/dist/cli/projectsActivateProjectGrantCommand.js.map +1 -0
  283. package/dist/cli/projectsAddRoleCommand.d.ts +7 -0
  284. package/dist/cli/projectsAddRoleCommand.d.ts.map +1 -0
  285. package/dist/cli/projectsAddRoleCommand.js +21 -0
  286. package/dist/cli/projectsAddRoleCommand.js.map +1 -0
  287. package/dist/cli/projectsCreateCommand.d.ts +7 -0
  288. package/dist/cli/projectsCreateCommand.d.ts.map +1 -0
  289. package/dist/cli/projectsCreateCommand.js +21 -0
  290. package/dist/cli/projectsCreateCommand.js.map +1 -0
  291. package/dist/cli/projectsCreateGrantCommand.d.ts +7 -0
  292. package/dist/cli/projectsCreateGrantCommand.d.ts.map +1 -0
  293. package/dist/cli/projectsCreateGrantCommand.js +21 -0
  294. package/dist/cli/projectsCreateGrantCommand.js.map +1 -0
  295. package/dist/cli/projectsDeactivateCommand.d.ts +7 -0
  296. package/dist/cli/projectsDeactivateCommand.d.ts.map +1 -0
  297. package/dist/cli/projectsDeactivateCommand.js +21 -0
  298. package/dist/cli/projectsDeactivateCommand.js.map +1 -0
  299. package/dist/cli/projectsDeactivateProjectGrantCommand.d.ts +7 -0
  300. package/dist/cli/projectsDeactivateProjectGrantCommand.d.ts.map +1 -0
  301. package/dist/cli/projectsDeactivateProjectGrantCommand.js +21 -0
  302. package/dist/cli/projectsDeactivateProjectGrantCommand.js.map +1 -0
  303. package/dist/cli/projectsDeleteCommand.d.ts +7 -0
  304. package/dist/cli/projectsDeleteCommand.d.ts.map +1 -0
  305. package/dist/cli/projectsDeleteCommand.js +21 -0
  306. package/dist/cli/projectsDeleteCommand.js.map +1 -0
  307. package/dist/cli/projectsDeleteProjectGrantCommand.d.ts +7 -0
  308. package/dist/cli/projectsDeleteProjectGrantCommand.d.ts.map +1 -0
  309. package/dist/cli/projectsDeleteProjectGrantCommand.js +21 -0
  310. package/dist/cli/projectsDeleteProjectGrantCommand.js.map +1 -0
  311. package/dist/cli/projectsGetCommand.d.ts +7 -0
  312. package/dist/cli/projectsGetCommand.d.ts.map +1 -0
  313. package/dist/cli/projectsGetCommand.js +21 -0
  314. package/dist/cli/projectsGetCommand.js.map +1 -0
  315. package/dist/cli/projectsListCommand.d.ts +2 -0
  316. package/dist/cli/projectsListCommand.d.ts.map +1 -0
  317. package/dist/cli/projectsListCommand.js +15 -0
  318. package/dist/cli/projectsListCommand.js.map +1 -0
  319. package/dist/cli/projectsListProjectGrantsCommand.d.ts +7 -0
  320. package/dist/cli/projectsListProjectGrantsCommand.d.ts.map +1 -0
  321. package/dist/cli/projectsListProjectGrantsCommand.js +21 -0
  322. package/dist/cli/projectsListProjectGrantsCommand.js.map +1 -0
  323. package/dist/cli/projectsRemoveProjectRoleCommand.d.ts +7 -0
  324. package/dist/cli/projectsRemoveProjectRoleCommand.d.ts.map +1 -0
  325. package/dist/cli/projectsRemoveProjectRoleCommand.js +21 -0
  326. package/dist/cli/projectsRemoveProjectRoleCommand.js.map +1 -0
  327. package/dist/cli/projectsRolesListCommand.d.ts +7 -0
  328. package/dist/cli/projectsRolesListCommand.d.ts.map +1 -0
  329. package/dist/cli/projectsRolesListCommand.js +21 -0
  330. package/dist/cli/projectsRolesListCommand.js.map +1 -0
  331. package/dist/cli/projectsRolesUpdateCommand.d.ts +7 -0
  332. package/dist/cli/projectsRolesUpdateCommand.d.ts.map +1 -0
  333. package/dist/cli/projectsRolesUpdateCommand.js +21 -0
  334. package/dist/cli/projectsRolesUpdateCommand.js.map +1 -0
  335. package/dist/cli/projectsUpdateCommand.d.ts +7 -0
  336. package/dist/cli/projectsUpdateCommand.d.ts.map +1 -0
  337. package/dist/cli/projectsUpdateCommand.js +21 -0
  338. package/dist/cli/projectsUpdateCommand.js.map +1 -0
  339. package/dist/cli/projectsUpdateProjectGrantCommand.d.ts +7 -0
  340. package/dist/cli/projectsUpdateProjectGrantCommand.d.ts.map +1 -0
  341. package/dist/cli/projectsUpdateProjectGrantCommand.js +21 -0
  342. package/dist/cli/projectsUpdateProjectGrantCommand.js.map +1 -0
  343. package/dist/cli/usersAddIDPLinkCommand.d.ts +7 -0
  344. package/dist/cli/usersAddIDPLinkCommand.d.ts.map +1 -0
  345. package/dist/cli/usersAddIDPLinkCommand.js +21 -0
  346. package/dist/cli/usersAddIDPLinkCommand.js.map +1 -0
  347. package/dist/cli/usersAddKeyCommand.d.ts +7 -0
  348. package/dist/cli/usersAddKeyCommand.d.ts.map +1 -0
  349. package/dist/cli/usersAddKeyCommand.js +21 -0
  350. package/dist/cli/usersAddKeyCommand.js.map +1 -0
  351. package/dist/cli/usersAddOTPEmailCommand.d.ts +7 -0
  352. package/dist/cli/usersAddOTPEmailCommand.d.ts.map +1 -0
  353. package/dist/cli/usersAddOTPEmailCommand.js +21 -0
  354. package/dist/cli/usersAddOTPEmailCommand.js.map +1 -0
  355. package/dist/cli/usersAddOTPSMSCommand.d.ts +7 -0
  356. package/dist/cli/usersAddOTPSMSCommand.d.ts.map +1 -0
  357. package/dist/cli/usersAddOTPSMSCommand.js +21 -0
  358. package/dist/cli/usersAddOTPSMSCommand.js.map +1 -0
  359. package/dist/cli/usersAddPersonalAccessTokenCommand.d.ts +7 -0
  360. package/dist/cli/usersAddPersonalAccessTokenCommand.d.ts.map +1 -0
  361. package/dist/cli/usersAddPersonalAccessTokenCommand.js +21 -0
  362. package/dist/cli/usersAddPersonalAccessTokenCommand.js.map +1 -0
  363. package/dist/cli/usersAddSecretCommand.d.ts +7 -0
  364. package/dist/cli/usersAddSecretCommand.d.ts.map +1 -0
  365. package/dist/cli/usersAddSecretCommand.js +21 -0
  366. package/dist/cli/usersAddSecretCommand.js.map +1 -0
  367. package/dist/cli/usersCreateCommand.d.ts +7 -0
  368. package/dist/cli/usersCreateCommand.d.ts.map +1 -0
  369. package/dist/cli/usersCreateCommand.js +21 -0
  370. package/dist/cli/usersCreateCommand.js.map +1 -0
  371. package/dist/cli/usersCreateInviteCodeCommand.d.ts +7 -0
  372. package/dist/cli/usersCreateInviteCodeCommand.d.ts.map +1 -0
  373. package/dist/cli/usersCreateInviteCodeCommand.js +21 -0
  374. package/dist/cli/usersCreateInviteCodeCommand.js.map +1 -0
  375. package/dist/cli/usersCreatePasskeyRegistrationLinkCommand.d.ts +7 -0
  376. package/dist/cli/usersCreatePasskeyRegistrationLinkCommand.d.ts.map +1 -0
  377. package/dist/cli/usersCreatePasskeyRegistrationLinkCommand.js +21 -0
  378. package/dist/cli/usersCreatePasskeyRegistrationLinkCommand.js.map +1 -0
  379. package/dist/cli/usersDeactivateCommand.d.ts +7 -0
  380. package/dist/cli/usersDeactivateCommand.d.ts.map +1 -0
  381. package/dist/cli/usersDeactivateCommand.js +21 -0
  382. package/dist/cli/usersDeactivateCommand.js.map +1 -0
  383. package/dist/cli/usersDeleteCommand.d.ts +7 -0
  384. package/dist/cli/usersDeleteCommand.d.ts.map +1 -0
  385. package/dist/cli/usersDeleteCommand.js +21 -0
  386. package/dist/cli/usersDeleteCommand.js.map +1 -0
  387. package/dist/cli/usersDeleteUserMetadataCommand.d.ts +7 -0
  388. package/dist/cli/usersDeleteUserMetadataCommand.d.ts.map +1 -0
  389. package/dist/cli/usersDeleteUserMetadataCommand.js +21 -0
  390. package/dist/cli/usersDeleteUserMetadataCommand.js.map +1 -0
  391. package/dist/cli/usersGenerateRecoveryCodesCommand.d.ts +2 -0
  392. package/dist/cli/usersGenerateRecoveryCodesCommand.d.ts.map +1 -0
  393. package/dist/cli/usersGenerateRecoveryCodesCommand.js +16 -0
  394. package/dist/cli/usersGenerateRecoveryCodesCommand.js.map +1 -0
  395. package/dist/cli/usersGetCommand.d.ts +7 -0
  396. package/dist/cli/usersGetCommand.d.ts.map +1 -0
  397. package/dist/cli/usersGetCommand.js +21 -0
  398. package/dist/cli/usersGetCommand.js.map +1 -0
  399. package/dist/cli/usersHumanMFAInitSkippedCommand.d.ts +7 -0
  400. package/dist/cli/usersHumanMFAInitSkippedCommand.d.ts.map +1 -0
  401. package/dist/cli/usersHumanMFAInitSkippedCommand.js +21 -0
  402. package/dist/cli/usersHumanMFAInitSkippedCommand.js.map +1 -0
  403. package/dist/cli/usersListAuthenticationFactorsCommand.d.ts +7 -0
  404. package/dist/cli/usersListAuthenticationFactorsCommand.d.ts.map +1 -0
  405. package/dist/cli/usersListAuthenticationFactorsCommand.js +21 -0
  406. package/dist/cli/usersListAuthenticationFactorsCommand.js.map +1 -0
  407. package/dist/cli/usersListAuthenticationMethodTypesCommand.d.ts +7 -0
  408. package/dist/cli/usersListAuthenticationMethodTypesCommand.d.ts.map +1 -0
  409. package/dist/cli/usersListAuthenticationMethodTypesCommand.js +21 -0
  410. package/dist/cli/usersListAuthenticationMethodTypesCommand.js.map +1 -0
  411. package/dist/cli/usersListCommand.d.ts +2 -0
  412. package/dist/cli/usersListCommand.d.ts.map +1 -0
  413. package/dist/cli/usersListCommand.js +16 -0
  414. package/dist/cli/usersListCommand.js.map +1 -0
  415. package/dist/cli/usersListIDPLinksCommand.d.ts +7 -0
  416. package/dist/cli/usersListIDPLinksCommand.d.ts.map +1 -0
  417. package/dist/cli/usersListIDPLinksCommand.js +21 -0
  418. package/dist/cli/usersListIDPLinksCommand.js.map +1 -0
  419. package/dist/cli/usersListKeysCommand.d.ts +7 -0
  420. package/dist/cli/usersListKeysCommand.d.ts.map +1 -0
  421. package/dist/cli/usersListKeysCommand.js +21 -0
  422. package/dist/cli/usersListKeysCommand.js.map +1 -0
  423. package/dist/cli/usersListPasskeysCommand.d.ts +7 -0
  424. package/dist/cli/usersListPasskeysCommand.d.ts.map +1 -0
  425. package/dist/cli/usersListPasskeysCommand.js +21 -0
  426. package/dist/cli/usersListPasskeysCommand.js.map +1 -0
  427. package/dist/cli/usersListPersonalAccessTokensCommand.d.ts +7 -0
  428. package/dist/cli/usersListPersonalAccessTokensCommand.d.ts.map +1 -0
  429. package/dist/cli/usersListPersonalAccessTokensCommand.js +21 -0
  430. package/dist/cli/usersListPersonalAccessTokensCommand.js.map +1 -0
  431. package/dist/cli/usersListUserMetadataCommand.d.ts +7 -0
  432. package/dist/cli/usersListUserMetadataCommand.d.ts.map +1 -0
  433. package/dist/cli/usersListUserMetadataCommand.js +21 -0
  434. package/dist/cli/usersListUserMetadataCommand.js.map +1 -0
  435. package/dist/cli/usersLockCommand.d.ts +7 -0
  436. package/dist/cli/usersLockCommand.d.ts.map +1 -0
  437. package/dist/cli/usersLockCommand.js +21 -0
  438. package/dist/cli/usersLockCommand.js.map +1 -0
  439. package/dist/cli/usersReactivateCommand.d.ts +7 -0
  440. package/dist/cli/usersReactivateCommand.d.ts.map +1 -0
  441. package/dist/cli/usersReactivateCommand.js +21 -0
  442. package/dist/cli/usersReactivateCommand.js.map +1 -0
  443. package/dist/cli/usersRegisterPasskeyCommand.d.ts +2 -0
  444. package/dist/cli/usersRegisterPasskeyCommand.d.ts.map +1 -0
  445. package/dist/cli/usersRegisterPasskeyCommand.js +16 -0
  446. package/dist/cli/usersRegisterPasskeyCommand.js.map +1 -0
  447. package/dist/cli/usersRegisterTOTPCommand.d.ts +2 -0
  448. package/dist/cli/usersRegisterTOTPCommand.d.ts.map +1 -0
  449. package/dist/cli/usersRegisterTOTPCommand.js +16 -0
  450. package/dist/cli/usersRegisterTOTPCommand.js.map +1 -0
  451. package/dist/cli/usersRegisterU2FCommand.d.ts +7 -0
  452. package/dist/cli/usersRegisterU2FCommand.d.ts.map +1 -0
  453. package/dist/cli/usersRegisterU2FCommand.js +21 -0
  454. package/dist/cli/usersRegisterU2FCommand.js.map +1 -0
  455. package/dist/cli/usersRemoveIDPLinkCommand.d.ts +7 -0
  456. package/dist/cli/usersRemoveIDPLinkCommand.d.ts.map +1 -0
  457. package/dist/cli/usersRemoveIDPLinkCommand.js +21 -0
  458. package/dist/cli/usersRemoveIDPLinkCommand.js.map +1 -0
  459. package/dist/cli/usersRemoveKeyCommand.d.ts +7 -0
  460. package/dist/cli/usersRemoveKeyCommand.d.ts.map +1 -0
  461. package/dist/cli/usersRemoveKeyCommand.js +21 -0
  462. package/dist/cli/usersRemoveKeyCommand.js.map +1 -0
  463. package/dist/cli/usersRemoveOTPEmailCommand.d.ts +7 -0
  464. package/dist/cli/usersRemoveOTPEmailCommand.d.ts.map +1 -0
  465. package/dist/cli/usersRemoveOTPEmailCommand.js +21 -0
  466. package/dist/cli/usersRemoveOTPEmailCommand.js.map +1 -0
  467. package/dist/cli/usersRemoveOTPSMSCommand.d.ts +7 -0
  468. package/dist/cli/usersRemoveOTPSMSCommand.d.ts.map +1 -0
  469. package/dist/cli/usersRemoveOTPSMSCommand.js +21 -0
  470. package/dist/cli/usersRemoveOTPSMSCommand.js.map +1 -0
  471. package/dist/cli/usersRemovePasskeyCommand.d.ts +7 -0
  472. package/dist/cli/usersRemovePasskeyCommand.d.ts.map +1 -0
  473. package/dist/cli/usersRemovePasskeyCommand.js +21 -0
  474. package/dist/cli/usersRemovePasskeyCommand.js.map +1 -0
  475. package/dist/cli/usersRemovePersonalAccessTokenCommand.d.ts +7 -0
  476. package/dist/cli/usersRemovePersonalAccessTokenCommand.d.ts.map +1 -0
  477. package/dist/cli/usersRemovePersonalAccessTokenCommand.js +21 -0
  478. package/dist/cli/usersRemovePersonalAccessTokenCommand.js.map +1 -0
  479. package/dist/cli/usersRemoveRecoveryCodesCommand.d.ts +2 -0
  480. package/dist/cli/usersRemoveRecoveryCodesCommand.d.ts.map +1 -0
  481. package/dist/cli/usersRemoveRecoveryCodesCommand.js +16 -0
  482. package/dist/cli/usersRemoveRecoveryCodesCommand.js.map +1 -0
  483. package/dist/cli/usersRemoveSecretCommand.d.ts +7 -0
  484. package/dist/cli/usersRemoveSecretCommand.d.ts.map +1 -0
  485. package/dist/cli/usersRemoveSecretCommand.js +21 -0
  486. package/dist/cli/usersRemoveSecretCommand.js.map +1 -0
  487. package/dist/cli/usersRemoveTOTPCommand.d.ts +7 -0
  488. package/dist/cli/usersRemoveTOTPCommand.d.ts.map +1 -0
  489. package/dist/cli/usersRemoveTOTPCommand.js +21 -0
  490. package/dist/cli/usersRemoveTOTPCommand.js.map +1 -0
  491. package/dist/cli/usersRemoveU2FCommand.d.ts +7 -0
  492. package/dist/cli/usersRemoveU2FCommand.d.ts.map +1 -0
  493. package/dist/cli/usersRemoveU2FCommand.js +21 -0
  494. package/dist/cli/usersRemoveU2FCommand.js.map +1 -0
  495. package/dist/cli/usersResendEmailCodeCommand.d.ts +7 -0
  496. package/dist/cli/usersResendEmailCodeCommand.d.ts.map +1 -0
  497. package/dist/cli/usersResendEmailCodeCommand.js +21 -0
  498. package/dist/cli/usersResendEmailCodeCommand.js.map +1 -0
  499. package/dist/cli/usersResendPhoneCodeCommand.d.ts +7 -0
  500. package/dist/cli/usersResendPhoneCodeCommand.d.ts.map +1 -0
  501. package/dist/cli/usersResendPhoneCodeCommand.js +21 -0
  502. package/dist/cli/usersResendPhoneCodeCommand.js.map +1 -0
  503. package/dist/cli/usersRetrieveIdentityProviderIntentCommand.d.ts +7 -0
  504. package/dist/cli/usersRetrieveIdentityProviderIntentCommand.d.ts.map +1 -0
  505. package/dist/cli/usersRetrieveIdentityProviderIntentCommand.js +21 -0
  506. package/dist/cli/usersRetrieveIdentityProviderIntentCommand.js.map +1 -0
  507. package/dist/cli/usersSendEmailCodeCommand.d.ts +7 -0
  508. package/dist/cli/usersSendEmailCodeCommand.d.ts.map +1 -0
  509. package/dist/cli/usersSendEmailCodeCommand.js +21 -0
  510. package/dist/cli/usersSendEmailCodeCommand.js.map +1 -0
  511. package/dist/cli/usersSetPasswordCommand.d.ts +7 -0
  512. package/dist/cli/usersSetPasswordCommand.d.ts.map +1 -0
  513. package/dist/cli/usersSetPasswordCommand.js +21 -0
  514. package/dist/cli/usersSetPasswordCommand.js.map +1 -0
  515. package/dist/cli/usersSetUserMetadataCommand.d.ts +7 -0
  516. package/dist/cli/usersSetUserMetadataCommand.d.ts.map +1 -0
  517. package/dist/cli/usersSetUserMetadataCommand.js +21 -0
  518. package/dist/cli/usersSetUserMetadataCommand.js.map +1 -0
  519. package/dist/cli/usersStartIdentityProviderIntentCommand.d.ts +7 -0
  520. package/dist/cli/usersStartIdentityProviderIntentCommand.d.ts.map +1 -0
  521. package/dist/cli/usersStartIdentityProviderIntentCommand.js +21 -0
  522. package/dist/cli/usersStartIdentityProviderIntentCommand.js.map +1 -0
  523. package/dist/cli/usersUnlockCommand.d.ts +7 -0
  524. package/dist/cli/usersUnlockCommand.d.ts.map +1 -0
  525. package/dist/cli/usersUnlockCommand.js +21 -0
  526. package/dist/cli/usersUnlockCommand.js.map +1 -0
  527. package/dist/cli/usersUpdateCommand.d.ts +7 -0
  528. package/dist/cli/usersUpdateCommand.d.ts.map +1 -0
  529. package/dist/cli/usersUpdateCommand.js +21 -0
  530. package/dist/cli/usersUpdateCommand.js.map +1 -0
  531. package/dist/cli/usersVerifyEmailCommand.d.ts +7 -0
  532. package/dist/cli/usersVerifyEmailCommand.d.ts.map +1 -0
  533. package/dist/cli/usersVerifyEmailCommand.js +21 -0
  534. package/dist/cli/usersVerifyEmailCommand.js.map +1 -0
  535. package/dist/cli/usersVerifyInviteCodeCommand.d.ts +7 -0
  536. package/dist/cli/usersVerifyInviteCodeCommand.d.ts.map +1 -0
  537. package/dist/cli/usersVerifyInviteCodeCommand.js +21 -0
  538. package/dist/cli/usersVerifyInviteCodeCommand.js.map +1 -0
  539. package/dist/cli/usersVerifyPasskeyRegistrationCommand.d.ts +7 -0
  540. package/dist/cli/usersVerifyPasskeyRegistrationCommand.d.ts.map +1 -0
  541. package/dist/cli/usersVerifyPasskeyRegistrationCommand.js +21 -0
  542. package/dist/cli/usersVerifyPasskeyRegistrationCommand.js.map +1 -0
  543. package/dist/cli/usersVerifyPhoneCommand.d.ts +2 -0
  544. package/dist/cli/usersVerifyPhoneCommand.d.ts.map +1 -0
  545. package/dist/cli/usersVerifyPhoneCommand.js +16 -0
  546. package/dist/cli/usersVerifyPhoneCommand.js.map +1 -0
  547. package/dist/cli/usersVerifyTOTPRegistrationCommand.d.ts +7 -0
  548. package/dist/cli/usersVerifyTOTPRegistrationCommand.d.ts.map +1 -0
  549. package/dist/cli/usersVerifyTOTPRegistrationCommand.js +21 -0
  550. package/dist/cli/usersVerifyTOTPRegistrationCommand.js.map +1 -0
  551. package/dist/cli/usersVerifyU2FRegistrationCommand.d.ts +7 -0
  552. package/dist/cli/usersVerifyU2FRegistrationCommand.d.ts.map +1 -0
  553. package/dist/cli/usersVerifyU2FRegistrationCommand.js +21 -0
  554. package/dist/cli/usersVerifyU2FRegistrationCommand.js.map +1 -0
  555. package/dist/cli/zitadelCliApplication.d.ts +2 -0
  556. package/dist/cli/zitadelCliApplication.d.ts.map +1 -0
  557. package/dist/cli/zitadelCliApplication.js +441 -0
  558. package/dist/cli/zitadelCliApplication.js.map +1 -0
  559. package/dist/cli.d.ts +3 -0
  560. package/dist/cli.d.ts.map +1 -0
  561. package/dist/cli.js +5 -0
  562. package/dist/cli.js.map +1 -0
  563. package/dist/config/index.d.ts +4 -0
  564. package/dist/config/index.d.ts.map +1 -0
  565. package/dist/config/index.js +3 -0
  566. package/dist/config/index.js.map +1 -0
  567. package/dist/config/zitadelConfig.d.ts +7 -0
  568. package/dist/config/zitadelConfig.d.ts.map +1 -0
  569. package/dist/config/zitadelConfig.js +6 -0
  570. package/dist/config/zitadelConfig.js.map +1 -0
  571. package/dist/config/zitadelConfigCreate.d.ts +13 -0
  572. package/dist/config/zitadelConfigCreate.d.ts.map +1 -0
  573. package/dist/config/zitadelConfigCreate.js +78 -0
  574. package/dist/config/zitadelConfigCreate.js.map +1 -0
  575. package/dist/generated/google/api/annotations_pb.d.ts +14 -0
  576. package/dist/generated/google/api/annotations_pb.d.ts.map +1 -0
  577. package/dist/generated/google/api/annotations_pb.js +27 -0
  578. package/dist/generated/google/api/annotations_pb.js.map +1 -0
  579. package/dist/generated/google/api/field_behavior_pb.d.ts +117 -0
  580. package/dist/generated/google/api/field_behavior_pb.d.ts.map +1 -0
  581. package/dist/generated/google/api/field_behavior_pb.js +118 -0
  582. package/dist/generated/google/api/field_behavior_pb.js.map +1 -0
  583. package/dist/generated/google/api/http_pb.d.ts +412 -0
  584. package/dist/generated/google/api/http_pb.d.ts.map +1 -0
  585. package/dist/generated/google/api/http_pb.js +29 -0
  586. package/dist/generated/google/api/http_pb.js.map +1 -0
  587. package/dist/generated/protoc-gen-openapiv2/options/annotations_pb.d.ts +44 -0
  588. package/dist/generated/protoc-gen-openapiv2/options/annotations_pb.d.ts.map +1 -0
  589. package/dist/generated/protoc-gen-openapiv2/options/annotations_pb.js +47 -0
  590. package/dist/generated/protoc-gen-openapiv2/options/annotations_pb.js.map +1 -0
  591. package/dist/generated/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +1398 -0
  592. package/dist/generated/protoc-gen-openapiv2/options/openapiv2_pb.d.ts.map +1 -0
  593. package/dist/generated/protoc-gen-openapiv2/options/openapiv2_pb.js +293 -0
  594. package/dist/generated/protoc-gen-openapiv2/options/openapiv2_pb.js.map +1 -0
  595. package/dist/generated/validate/validate_pb.d.ts +1754 -0
  596. package/dist/generated/validate/validate_pb.d.ts.map +1 -0
  597. package/dist/generated/validate/validate_pb.js +166 -0
  598. package/dist/generated/validate/validate_pb.js.map +1 -0
  599. package/dist/generated/zitadel/action/v2/action_service_connect.d.ts +272 -0
  600. package/dist/generated/zitadel/action/v2/action_service_connect.d.ts.map +1 -0
  601. package/dist/generated/zitadel/action/v2/action_service_connect.js +278 -0
  602. package/dist/generated/zitadel/action/v2/action_service_connect.js.map +1 -0
  603. package/dist/generated/zitadel/action/v2/action_service_pb.d.ts +1024 -0
  604. package/dist/generated/zitadel/action/v2/action_service_pb.d.ts.map +1 -0
  605. package/dist/generated/zitadel/action/v2/action_service_pb.js +176 -0
  606. package/dist/generated/zitadel/action/v2/action_service_pb.js.map +1 -0
  607. package/dist/generated/zitadel/action/v2/execution_pb.d.ts +251 -0
  608. package/dist/generated/zitadel/action/v2/execution_pb.d.ts.map +1 -0
  609. package/dist/generated/zitadel/action/v2/execution_pb.js +42 -0
  610. package/dist/generated/zitadel/action/v2/execution_pb.js.map +1 -0
  611. package/dist/generated/zitadel/action/v2/query_pb.d.ts +358 -0
  612. package/dist/generated/zitadel/action/v2/query_pb.d.ts.map +1 -0
  613. package/dist/generated/zitadel/action/v2/query_pb.js +185 -0
  614. package/dist/generated/zitadel/action/v2/query_pb.js.map +1 -0
  615. package/dist/generated/zitadel/action/v2/target_pb.d.ts +246 -0
  616. package/dist/generated/zitadel/action/v2/target_pb.d.ts.map +1 -0
  617. package/dist/generated/zitadel/action/v2/target_pb.js +73 -0
  618. package/dist/generated/zitadel/action/v2/target_pb.js.map +1 -0
  619. package/dist/generated/zitadel/admin_connect.d.ts +2093 -0
  620. package/dist/generated/zitadel/admin_connect.d.ts.map +1 -0
  621. package/dist/generated/zitadel/admin_connect.js +2099 -0
  622. package/dist/generated/zitadel/admin_connect.js.map +1 -0
  623. package/dist/generated/zitadel/admin_pb.d.ts +10966 -0
  624. package/dist/generated/zitadel/admin_pb.d.ts.map +1 -0
  625. package/dist/generated/zitadel/admin_pb.js +2252 -0
  626. package/dist/generated/zitadel/admin_pb.js.map +1 -0
  627. package/dist/generated/zitadel/app_pb.d.ts +268 -0
  628. package/dist/generated/zitadel/app_pb.d.ts.map +1 -0
  629. package/dist/generated/zitadel/app_pb.js +179 -0
  630. package/dist/generated/zitadel/app_pb.js.map +1 -0
  631. package/dist/generated/zitadel/application/v2/api_pb.d.ts +51 -0
  632. package/dist/generated/zitadel/application/v2/api_pb.d.ts.map +1 -0
  633. package/dist/generated/zitadel/application/v2/api_pb.js +32 -0
  634. package/dist/generated/zitadel/application/v2/api_pb.js.map +1 -0
  635. package/dist/generated/zitadel/application/v2/application_pb.d.ts +490 -0
  636. package/dist/generated/zitadel/application/v2/application_pb.d.ts.map +1 -0
  637. package/dist/generated/zitadel/application/v2/application_pb.js +188 -0
  638. package/dist/generated/zitadel/application/v2/application_pb.js.map +1 -0
  639. package/dist/generated/zitadel/application/v2/application_service_connect.d.ts +221 -0
  640. package/dist/generated/zitadel/application/v2/application_service_connect.d.ts.map +1 -0
  641. package/dist/generated/zitadel/application/v2/application_service_connect.js +227 -0
  642. package/dist/generated/zitadel/application/v2/application_service_connect.js.map +1 -0
  643. package/dist/generated/zitadel/application/v2/application_service_pb.d.ts +1387 -0
  644. package/dist/generated/zitadel/application/v2/application_service_pb.d.ts.map +1 -0
  645. package/dist/generated/zitadel/application/v2/application_service_pb.js +191 -0
  646. package/dist/generated/zitadel/application/v2/application_service_pb.js.map +1 -0
  647. package/dist/generated/zitadel/application/v2/login_pb.d.ts +65 -0
  648. package/dist/generated/zitadel/application/v2/login_pb.d.ts.map +1 -0
  649. package/dist/generated/zitadel/application/v2/login_pb.js +24 -0
  650. package/dist/generated/zitadel/application/v2/login_pb.js.map +1 -0
  651. package/dist/generated/zitadel/application/v2/oidc_pb.d.ts +441 -0
  652. package/dist/generated/zitadel/application/v2/oidc_pb.d.ts.map +1 -0
  653. package/dist/generated/zitadel/application/v2/oidc_pb.js +163 -0
  654. package/dist/generated/zitadel/application/v2/oidc_pb.js.map +1 -0
  655. package/dist/generated/zitadel/application/v2/saml_pb.d.ts +42 -0
  656. package/dist/generated/zitadel/application/v2/saml_pb.d.ts.map +1 -0
  657. package/dist/generated/zitadel/application/v2/saml_pb.js +15 -0
  658. package/dist/generated/zitadel/application/v2/saml_pb.js.map +1 -0
  659. package/dist/generated/zitadel/auth_n_key_pb.d.ts +28 -0
  660. package/dist/generated/zitadel/auth_n_key_pb.d.ts.map +1 -0
  661. package/dist/generated/zitadel/auth_n_key_pb.js +26 -0
  662. package/dist/generated/zitadel/auth_n_key_pb.js.map +1 -0
  663. package/dist/generated/zitadel/event_pb.d.ts +123 -0
  664. package/dist/generated/zitadel/event_pb.d.ts.map +1 -0
  665. package/dist/generated/zitadel/event_pb.js +37 -0
  666. package/dist/generated/zitadel/event_pb.js.map +1 -0
  667. package/dist/generated/zitadel/filter/v2/filter_pb.d.ts +215 -0
  668. package/dist/generated/zitadel/filter/v2/filter_pb.d.ts.map +1 -0
  669. package/dist/generated/zitadel/filter/v2/filter_pb.js +124 -0
  670. package/dist/generated/zitadel/filter/v2/filter_pb.js.map +1 -0
  671. package/dist/generated/zitadel/idp_pb.d.ts +1217 -0
  672. package/dist/generated/zitadel/idp_pb.d.ts.map +1 -0
  673. package/dist/generated/zitadel/idp_pb.js +453 -0
  674. package/dist/generated/zitadel/idp_pb.js.map +1 -0
  675. package/dist/generated/zitadel/instance_pb.d.ts +260 -0
  676. package/dist/generated/zitadel/instance_pb.d.ts.map +1 -0
  677. package/dist/generated/zitadel/instance_pb.js +110 -0
  678. package/dist/generated/zitadel/instance_pb.js.map +1 -0
  679. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_connect.d.ts +102 -0
  680. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_connect.d.ts.map +1 -0
  681. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_connect.js +108 -0
  682. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_connect.js.map +1 -0
  683. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_pb.d.ts +361 -0
  684. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_pb.d.ts.map +1 -0
  685. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_pb.js +75 -0
  686. package/dist/generated/zitadel/internal_permission/v2/internal_permission_service_pb.js.map +1 -0
  687. package/dist/generated/zitadel/internal_permission/v2/query_pb.d.ts +526 -0
  688. package/dist/generated/zitadel/internal_permission/v2/query_pb.d.ts.map +1 -0
  689. package/dist/generated/zitadel/internal_permission/v2/query_pb.js +108 -0
  690. package/dist/generated/zitadel/internal_permission/v2/query_pb.js.map +1 -0
  691. package/dist/generated/zitadel/management_pb.d.ts +1549 -0
  692. package/dist/generated/zitadel/management_pb.d.ts.map +1 -0
  693. package/dist/generated/zitadel/management_pb.js +234 -0
  694. package/dist/generated/zitadel/management_pb.js.map +1 -0
  695. package/dist/generated/zitadel/member_pb.d.ts +207 -0
  696. package/dist/generated/zitadel/member_pb.d.ts.map +1 -0
  697. package/dist/generated/zitadel/member_pb.js +72 -0
  698. package/dist/generated/zitadel/member_pb.js.map +1 -0
  699. package/dist/generated/zitadel/message_pb.d.ts +25 -0
  700. package/dist/generated/zitadel/message_pb.d.ts.map +1 -0
  701. package/dist/generated/zitadel/message_pb.js +14 -0
  702. package/dist/generated/zitadel/message_pb.js.map +1 -0
  703. package/dist/generated/zitadel/metadata/v2/metadata_pb.d.ts +94 -0
  704. package/dist/generated/zitadel/metadata/v2/metadata_pb.d.ts.map +1 -0
  705. package/dist/generated/zitadel/metadata/v2/metadata_pb.js +33 -0
  706. package/dist/generated/zitadel/metadata/v2/metadata_pb.js.map +1 -0
  707. package/dist/generated/zitadel/milestone/v1/milestone_pb.d.ts +129 -0
  708. package/dist/generated/zitadel/milestone/v1/milestone_pb.d.ts.map +1 -0
  709. package/dist/generated/zitadel/milestone/v1/milestone_pb.js +84 -0
  710. package/dist/generated/zitadel/milestone/v1/milestone_pb.js.map +1 -0
  711. package/dist/generated/zitadel/object/v2/object_pb.d.ts +168 -0
  712. package/dist/generated/zitadel/object/v2/object_pb.d.ts.map +1 -0
  713. package/dist/generated/zitadel/object/v2/object_pb.js +72 -0
  714. package/dist/generated/zitadel/object/v2/object_pb.js.map +1 -0
  715. package/dist/generated/zitadel/object_pb.d.ts +143 -0
  716. package/dist/generated/zitadel/object_pb.d.ts.map +1 -0
  717. package/dist/generated/zitadel/object_pb.js +67 -0
  718. package/dist/generated/zitadel/object_pb.js.map +1 -0
  719. package/dist/generated/zitadel/options_pb.d.ts +30 -0
  720. package/dist/generated/zitadel/options_pb.d.ts.map +1 -0
  721. package/dist/generated/zitadel/options_pb.js +19 -0
  722. package/dist/generated/zitadel/options_pb.js.map +1 -0
  723. package/dist/generated/zitadel/org/v2/org_pb.d.ts +148 -0
  724. package/dist/generated/zitadel/org/v2/org_pb.d.ts.map +1 -0
  725. package/dist/generated/zitadel/org/v2/org_pb.js +73 -0
  726. package/dist/generated/zitadel/org/v2/org_pb.js.map +1 -0
  727. package/dist/generated/zitadel/org/v2/org_service_connect.d.ts +236 -0
  728. package/dist/generated/zitadel/org/v2/org_service_connect.d.ts.map +1 -0
  729. package/dist/generated/zitadel/org/v2/org_service_connect.js +242 -0
  730. package/dist/generated/zitadel/org/v2/org_service_connect.js.map +1 -0
  731. package/dist/generated/zitadel/org/v2/org_service_pb.d.ts +933 -0
  732. package/dist/generated/zitadel/org/v2/org_service_pb.d.ts.map +1 -0
  733. package/dist/generated/zitadel/org/v2/org_service_pb.js +182 -0
  734. package/dist/generated/zitadel/org/v2/org_service_pb.js.map +1 -0
  735. package/dist/generated/zitadel/org/v2/query_pb.d.ts +226 -0
  736. package/dist/generated/zitadel/org/v2/query_pb.d.ts.map +1 -0
  737. package/dist/generated/zitadel/org/v2/query_pb.js +91 -0
  738. package/dist/generated/zitadel/org/v2/query_pb.js.map +1 -0
  739. package/dist/generated/zitadel/org_pb.d.ts +252 -0
  740. package/dist/generated/zitadel/org_pb.d.ts.map +1 -0
  741. package/dist/generated/zitadel/org_pb.js +110 -0
  742. package/dist/generated/zitadel/org_pb.js.map +1 -0
  743. package/dist/generated/zitadel/policy_pb.d.ts +542 -0
  744. package/dist/generated/zitadel/policy_pb.d.ts.map +1 -0
  745. package/dist/generated/zitadel/policy_pb.js +155 -0
  746. package/dist/generated/zitadel/policy_pb.js.map +1 -0
  747. package/dist/generated/zitadel/project/v2/project_service_connect.d.ts +300 -0
  748. package/dist/generated/zitadel/project/v2/project_service_connect.d.ts.map +1 -0
  749. package/dist/generated/zitadel/project/v2/project_service_connect.js +306 -0
  750. package/dist/generated/zitadel/project/v2/project_service_connect.js.map +1 -0
  751. package/dist/generated/zitadel/project/v2/project_service_pb.d.ts +1092 -0
  752. package/dist/generated/zitadel/project/v2/project_service_pb.d.ts.map +1 -0
  753. package/dist/generated/zitadel/project/v2/project_service_pb.js +192 -0
  754. package/dist/generated/zitadel/project/v2/project_service_pb.js.map +1 -0
  755. package/dist/generated/zitadel/project/v2/query_pb.d.ts +662 -0
  756. package/dist/generated/zitadel/project/v2/query_pb.d.ts.map +1 -0
  757. package/dist/generated/zitadel/project/v2/query_pb.js +258 -0
  758. package/dist/generated/zitadel/project/v2/query_pb.js.map +1 -0
  759. package/dist/generated/zitadel/project_pb.d.ts +32 -0
  760. package/dist/generated/zitadel/project_pb.d.ts.map +1 -0
  761. package/dist/generated/zitadel/project_pb.js +30 -0
  762. package/dist/generated/zitadel/project_pb.js.map +1 -0
  763. package/dist/generated/zitadel/protoc_gen_zitadel/v2/options_pb.d.ts +62 -0
  764. package/dist/generated/zitadel/protoc_gen_zitadel/v2/options_pb.d.ts.map +1 -0
  765. package/dist/generated/zitadel/protoc_gen_zitadel/v2/options_pb.js +29 -0
  766. package/dist/generated/zitadel/protoc_gen_zitadel/v2/options_pb.js.map +1 -0
  767. package/dist/generated/zitadel/settings_pb.d.ts +635 -0
  768. package/dist/generated/zitadel/settings_pb.d.ts.map +1 -0
  769. package/dist/generated/zitadel/settings_pb.js +210 -0
  770. package/dist/generated/zitadel/settings_pb.js.map +1 -0
  771. package/dist/generated/zitadel/text_pb.d.ts +1469 -0
  772. package/dist/generated/zitadel/text_pb.d.ts.map +1 -0
  773. package/dist/generated/zitadel/text_pb.js +197 -0
  774. package/dist/generated/zitadel/text_pb.js.map +1 -0
  775. package/dist/generated/zitadel/user/v2/auth_pb.d.ts +78 -0
  776. package/dist/generated/zitadel/user/v2/auth_pb.d.ts.map +1 -0
  777. package/dist/generated/zitadel/user/v2/auth_pb.js +48 -0
  778. package/dist/generated/zitadel/user/v2/auth_pb.js.map +1 -0
  779. package/dist/generated/zitadel/user/v2/email_pb.d.ts +94 -0
  780. package/dist/generated/zitadel/user/v2/email_pb.d.ts.map +1 -0
  781. package/dist/generated/zitadel/user/v2/email_pb.js +32 -0
  782. package/dist/generated/zitadel/user/v2/email_pb.js.map +1 -0
  783. package/dist/generated/zitadel/user/v2/idp_pb.d.ts +225 -0
  784. package/dist/generated/zitadel/user/v2/idp_pb.d.ts.map +1 -0
  785. package/dist/generated/zitadel/user/v2/idp_pb.js +57 -0
  786. package/dist/generated/zitadel/user/v2/idp_pb.js.map +1 -0
  787. package/dist/generated/zitadel/user/v2/key_pb.d.ts +139 -0
  788. package/dist/generated/zitadel/user/v2/key_pb.d.ts.map +1 -0
  789. package/dist/generated/zitadel/user/v2/key_pb.js +56 -0
  790. package/dist/generated/zitadel/user/v2/key_pb.js.map +1 -0
  791. package/dist/generated/zitadel/user/v2/password_pb.d.ts +148 -0
  792. package/dist/generated/zitadel/user/v2/password_pb.d.ts.map +1 -0
  793. package/dist/generated/zitadel/user/v2/password_pb.js +58 -0
  794. package/dist/generated/zitadel/user/v2/password_pb.js.map +1 -0
  795. package/dist/generated/zitadel/user/v2/pat_pb.d.ts +139 -0
  796. package/dist/generated/zitadel/user/v2/pat_pb.d.ts.map +1 -0
  797. package/dist/generated/zitadel/user/v2/pat_pb.js +56 -0
  798. package/dist/generated/zitadel/user/v2/pat_pb.js.map +1 -0
  799. package/dist/generated/zitadel/user/v2/phone_pb.d.ts +82 -0
  800. package/dist/generated/zitadel/user/v2/phone_pb.d.ts.map +1 -0
  801. package/dist/generated/zitadel/user/v2/phone_pb.js +31 -0
  802. package/dist/generated/zitadel/user/v2/phone_pb.js.map +1 -0
  803. package/dist/generated/zitadel/user/v2/query_pb.d.ts +501 -0
  804. package/dist/generated/zitadel/user/v2/query_pb.d.ts.map +1 -0
  805. package/dist/generated/zitadel/user/v2/query_pb.js +170 -0
  806. package/dist/generated/zitadel/user/v2/query_pb.js.map +1 -0
  807. package/dist/generated/zitadel/user/v2/user_pb.d.ts +527 -0
  808. package/dist/generated/zitadel/user/v2/user_pb.d.ts.map +1 -0
  809. package/dist/generated/zitadel/user/v2/user_pb.js +186 -0
  810. package/dist/generated/zitadel/user/v2/user_pb.js.map +1 -0
  811. package/dist/generated/zitadel/user/v2/user_service_connect.d.ts +849 -0
  812. package/dist/generated/zitadel/user/v2/user_service_connect.d.ts.map +1 -0
  813. package/dist/generated/zitadel/user/v2/user_service_connect.js +855 -0
  814. package/dist/generated/zitadel/user/v2/user_service_connect.js.map +1 -0
  815. package/dist/generated/zitadel/user/v2/user_service_pb.d.ts +3753 -0
  816. package/dist/generated/zitadel/user/v2/user_service_pb.d.ts.map +1 -0
  817. package/dist/generated/zitadel/user/v2/user_service_pb.js +736 -0
  818. package/dist/generated/zitadel/user/v2/user_service_pb.js.map +1 -0
  819. package/dist/generated/zitadel/user_pb.d.ts +123 -0
  820. package/dist/generated/zitadel/user_pb.d.ts.map +1 -0
  821. package/dist/generated/zitadel/user_pb.js +109 -0
  822. package/dist/generated/zitadel/user_pb.js.map +1 -0
  823. package/dist/generated/zitadel/v1_pb.d.ts +523 -0
  824. package/dist/generated/zitadel/v1_pb.d.ts.map +1 -0
  825. package/dist/generated/zitadel/v1_pb.js +134 -0
  826. package/dist/generated/zitadel/v1_pb.js.map +1 -0
  827. package/dist/index.d.ts +8 -0
  828. package/dist/index.d.ts.map +1 -0
  829. package/dist/index.js +8 -0
  830. package/dist/index.js.map +1 -0
  831. package/dist/legacy_v1/addGoogleProvider.d.ts +6 -0
  832. package/dist/legacy_v1/addGoogleProvider.d.ts.map +1 -0
  833. package/dist/legacy_v1/addGoogleProvider.js +4 -0
  834. package/dist/legacy_v1/addGoogleProvider.js.map +1 -0
  835. package/dist/legacy_v1/adminAddGoogleProviderRequestParse.d.ts +11 -0
  836. package/dist/legacy_v1/adminAddGoogleProviderRequestParse.d.ts.map +1 -0
  837. package/dist/legacy_v1/adminAddGoogleProviderRequestParse.js +11 -0
  838. package/dist/legacy_v1/adminAddGoogleProviderRequestParse.js.map +1 -0
  839. package/dist/legacy_v1/adminListIDPsCommand.d.ts +10 -0
  840. package/dist/legacy_v1/adminListIDPsCommand.d.ts.map +1 -0
  841. package/dist/legacy_v1/adminListIDPsCommand.js +24 -0
  842. package/dist/legacy_v1/adminListIDPsCommand.js.map +1 -0
  843. package/dist/legacy_v1/adminListIDPsRequestParse.d.ts +11 -0
  844. package/dist/legacy_v1/adminListIDPsRequestParse.d.ts.map +1 -0
  845. package/dist/legacy_v1/adminListIDPsRequestParse.js +11 -0
  846. package/dist/legacy_v1/adminListIDPsRequestParse.js.map +1 -0
  847. package/dist/legacy_v1/adminService.d.ts +1043 -0
  848. package/dist/legacy_v1/adminService.d.ts.map +1 -0
  849. package/dist/legacy_v1/adminService.js +6 -0
  850. package/dist/legacy_v1/adminService.js.map +1 -0
  851. package/dist/legacy_v1/adminServiceAddGoogleProvider.d.ts +26 -0
  852. package/dist/legacy_v1/adminServiceAddGoogleProvider.d.ts.map +1 -0
  853. package/dist/legacy_v1/adminServiceAddGoogleProvider.js +31 -0
  854. package/dist/legacy_v1/adminServiceAddGoogleProvider.js.map +1 -0
  855. package/dist/legacy_v1/adminServiceListIDPs.d.ts +26 -0
  856. package/dist/legacy_v1/adminServiceListIDPs.d.ts.map +1 -0
  857. package/dist/legacy_v1/adminServiceListIDPs.js +31 -0
  858. package/dist/legacy_v1/adminServiceListIDPs.js.map +1 -0
  859. package/dist/legacy_v1/index.d.ts +4 -0
  860. package/dist/legacy_v1/index.d.ts.map +1 -0
  861. package/dist/legacy_v1/index.js +4 -0
  862. package/dist/legacy_v1/index.js.map +1 -0
  863. package/dist/legacy_v1/listIDPs.d.ts +6 -0
  864. package/dist/legacy_v1/listIDPs.d.ts.map +1 -0
  865. package/dist/legacy_v1/listIDPs.js +4 -0
  866. package/dist/legacy_v1/listIDPs.js.map +1 -0
  867. package/dist/oidcDiscovery.d.ts +2 -0
  868. package/dist/oidcDiscovery.d.ts.map +1 -0
  869. package/dist/oidcDiscovery.js +2 -0
  870. package/dist/oidcDiscovery.js.map +1 -0
  871. package/dist/output/index.d.ts +3 -0
  872. package/dist/output/index.d.ts.map +1 -0
  873. package/dist/output/index.js +2 -0
  874. package/dist/output/index.js.map +1 -0
  875. package/dist/output/messageOutputFormat.d.ts +2 -0
  876. package/dist/output/messageOutputFormat.d.ts.map +1 -0
  877. package/dist/output/messageOutputFormat.js +2 -0
  878. package/dist/output/messageOutputFormat.js.map +1 -0
  879. package/dist/output/messageSerialize.d.ts +5 -0
  880. package/dist/output/messageSerialize.d.ts.map +1 -0
  881. package/dist/output/messageSerialize.js +20 -0
  882. package/dist/output/messageSerialize.js.map +1 -0
  883. package/dist/packageVersion.d.ts +2 -0
  884. package/dist/packageVersion.d.ts.map +1 -0
  885. package/dist/packageVersion.js +2 -0
  886. package/dist/packageVersion.js.map +1 -0
  887. package/dist/protocol/deviceAuthorizationCommand.d.ts +3 -0
  888. package/dist/protocol/deviceAuthorizationCommand.d.ts.map +1 -0
  889. package/dist/protocol/deviceAuthorizationCommand.js +141 -0
  890. package/dist/protocol/deviceAuthorizationCommand.js.map +1 -0
  891. package/dist/protocol/deviceAuthorizationConfig.d.ts +14 -0
  892. package/dist/protocol/deviceAuthorizationConfig.d.ts.map +1 -0
  893. package/dist/protocol/deviceAuthorizationConfig.js +13 -0
  894. package/dist/protocol/deviceAuthorizationConfig.js.map +1 -0
  895. package/dist/protocol/deviceAuthorizationConfigCreate.d.ts +18 -0
  896. package/dist/protocol/deviceAuthorizationConfigCreate.d.ts.map +1 -0
  897. package/dist/protocol/deviceAuthorizationConfigCreate.js +147 -0
  898. package/dist/protocol/deviceAuthorizationConfigCreate.js.map +1 -0
  899. package/dist/protocol/deviceAuthorizationOutputFormat.d.ts +2 -0
  900. package/dist/protocol/deviceAuthorizationOutputFormat.d.ts.map +1 -0
  901. package/dist/protocol/deviceAuthorizationOutputFormat.js +2 -0
  902. package/dist/protocol/deviceAuthorizationOutputFormat.js.map +1 -0
  903. package/dist/protocol/deviceAuthorizationRequest.d.ts +10 -0
  904. package/dist/protocol/deviceAuthorizationRequest.d.ts.map +1 -0
  905. package/dist/protocol/deviceAuthorizationRequest.js +55 -0
  906. package/dist/protocol/deviceAuthorizationRequest.js.map +1 -0
  907. package/dist/protocol/deviceAuthorizationSerialize.d.ts +4 -0
  908. package/dist/protocol/deviceAuthorizationSerialize.d.ts.map +1 -0
  909. package/dist/protocol/deviceAuthorizationSerialize.js +19 -0
  910. package/dist/protocol/deviceAuthorizationSerialize.js.map +1 -0
  911. package/dist/protocol/index.d.ts +12 -0
  912. package/dist/protocol/index.d.ts.map +1 -0
  913. package/dist/protocol/index.js +6 -0
  914. package/dist/protocol/index.js.map +1 -0
  915. package/dist/protocol/oauthTokenRequest.d.ts +25 -0
  916. package/dist/protocol/oauthTokenRequest.d.ts.map +1 -0
  917. package/dist/protocol/oauthTokenRequest.js +126 -0
  918. package/dist/protocol/oauthTokenRequest.js.map +1 -0
  919. package/dist/protocol/oauthTokenRequestCommand.d.ts +3 -0
  920. package/dist/protocol/oauthTokenRequestCommand.d.ts.map +1 -0
  921. package/dist/protocol/oauthTokenRequestCommand.js +129 -0
  922. package/dist/protocol/oauthTokenRequestCommand.js.map +1 -0
  923. package/dist/protocol/oauthTokenRequestConfigCreate.d.ts +25 -0
  924. package/dist/protocol/oauthTokenRequestConfigCreate.d.ts.map +1 -0
  925. package/dist/protocol/oauthTokenRequestConfigCreate.js +115 -0
  926. package/dist/protocol/oauthTokenRequestConfigCreate.js.map +1 -0
  927. package/dist/protocol/oauthTokenRequestSerialize.d.ts +5 -0
  928. package/dist/protocol/oauthTokenRequestSerialize.d.ts.map +1 -0
  929. package/dist/protocol/oauthTokenRequestSerialize.js +19 -0
  930. package/dist/protocol/oauthTokenRequestSerialize.js.map +1 -0
  931. package/dist/protocol/oidcDiscovery.d.ts +17 -0
  932. package/dist/protocol/oidcDiscovery.d.ts.map +1 -0
  933. package/dist/protocol/oidcDiscovery.js +58 -0
  934. package/dist/protocol/oidcDiscovery.js.map +1 -0
  935. package/dist/protocol/oidcDiscoveryResponseSchema.d.ts +43 -0
  936. package/dist/protocol/oidcDiscoveryResponseSchema.d.ts.map +1 -0
  937. package/dist/protocol/oidcDiscoveryResponseSchema.js +44 -0
  938. package/dist/protocol/oidcDiscoveryResponseSchema.js.map +1 -0
  939. package/dist/protocol/oidcUserInfo.d.ts +23 -0
  940. package/dist/protocol/oidcUserInfo.d.ts.map +1 -0
  941. package/dist/protocol/oidcUserInfo.js +46 -0
  942. package/dist/protocol/oidcUserInfo.js.map +1 -0
  943. package/dist/protocol/oidcUserInfoDiscoveryParse.d.ts +9 -0
  944. package/dist/protocol/oidcUserInfoDiscoveryParse.d.ts.map +1 -0
  945. package/dist/protocol/oidcUserInfoDiscoveryParse.js +36 -0
  946. package/dist/protocol/oidcUserInfoDiscoveryParse.js.map +1 -0
  947. package/dist/protocol/oidcUserInfoSerialize.d.ts +5 -0
  948. package/dist/protocol/oidcUserInfoSerialize.d.ts.map +1 -0
  949. package/dist/protocol/oidcUserInfoSerialize.js +19 -0
  950. package/dist/protocol/oidcUserInfoSerialize.js.map +1 -0
  951. package/dist/request/index.d.ts +2 -0
  952. package/dist/request/index.d.ts.map +1 -0
  953. package/dist/request/index.js +2 -0
  954. package/dist/request/index.js.map +1 -0
  955. package/dist/request/messageRequestParse.d.ts +4 -0
  956. package/dist/request/messageRequestParse.d.ts.map +1 -0
  957. package/dist/request/messageRequestParse.js +13 -0
  958. package/dist/request/messageRequestParse.js.map +1 -0
  959. package/dist/transport/index.d.ts +2 -0
  960. package/dist/transport/index.d.ts.map +1 -0
  961. package/dist/transport/index.js +2 -0
  962. package/dist/transport/index.js.map +1 -0
  963. package/dist/transport/zitadelBearerInterceptorCreate.d.ts +3 -0
  964. package/dist/transport/zitadelBearerInterceptorCreate.d.ts.map +1 -0
  965. package/dist/transport/zitadelBearerInterceptorCreate.js +7 -0
  966. package/dist/transport/zitadelBearerInterceptorCreate.js.map +1 -0
  967. package/dist/transport/zitadelTransportCreate.d.ts +4 -0
  968. package/dist/transport/zitadelTransportCreate.d.ts.map +1 -0
  969. package/dist/transport/zitadelTransportCreate.js +10 -0
  970. package/dist/transport/zitadelTransportCreate.js.map +1 -0
  971. package/dist/v2/action.d.ts +50 -0
  972. package/dist/v2/action.d.ts.map +1 -0
  973. package/dist/v2/action.js +35 -0
  974. package/dist/v2/action.js.map +1 -0
  975. package/dist/v2/actionActivatePublicKeyRequestParse.d.ts +11 -0
  976. package/dist/v2/actionActivatePublicKeyRequestParse.d.ts.map +1 -0
  977. package/dist/v2/actionActivatePublicKeyRequestParse.js +11 -0
  978. package/dist/v2/actionActivatePublicKeyRequestParse.js.map +1 -0
  979. package/dist/v2/actionAddPublicKeyRequestParse.d.ts +11 -0
  980. package/dist/v2/actionAddPublicKeyRequestParse.d.ts.map +1 -0
  981. package/dist/v2/actionAddPublicKeyRequestParse.js +11 -0
  982. package/dist/v2/actionAddPublicKeyRequestParse.js.map +1 -0
  983. package/dist/v2/actionCreateTargetRequestParse.d.ts +11 -0
  984. package/dist/v2/actionCreateTargetRequestParse.d.ts.map +1 -0
  985. package/dist/v2/actionCreateTargetRequestParse.js +11 -0
  986. package/dist/v2/actionCreateTargetRequestParse.js.map +1 -0
  987. package/dist/v2/actionDeactivatePublicKeyRequestParse.d.ts +11 -0
  988. package/dist/v2/actionDeactivatePublicKeyRequestParse.d.ts.map +1 -0
  989. package/dist/v2/actionDeactivatePublicKeyRequestParse.js +11 -0
  990. package/dist/v2/actionDeactivatePublicKeyRequestParse.js.map +1 -0
  991. package/dist/v2/actionDeleteTargetRequestParse.d.ts +11 -0
  992. package/dist/v2/actionDeleteTargetRequestParse.d.ts.map +1 -0
  993. package/dist/v2/actionDeleteTargetRequestParse.js +11 -0
  994. package/dist/v2/actionDeleteTargetRequestParse.js.map +1 -0
  995. package/dist/v2/actionGetTargetRequestParse.d.ts +11 -0
  996. package/dist/v2/actionGetTargetRequestParse.d.ts.map +1 -0
  997. package/dist/v2/actionGetTargetRequestParse.js +11 -0
  998. package/dist/v2/actionGetTargetRequestParse.js.map +1 -0
  999. package/dist/v2/actionListExecutionFunctionsRequestParse.d.ts +11 -0
  1000. package/dist/v2/actionListExecutionFunctionsRequestParse.d.ts.map +1 -0
  1001. package/dist/v2/actionListExecutionFunctionsRequestParse.js +11 -0
  1002. package/dist/v2/actionListExecutionFunctionsRequestParse.js.map +1 -0
  1003. package/dist/v2/actionListExecutionMethodsRequestParse.d.ts +11 -0
  1004. package/dist/v2/actionListExecutionMethodsRequestParse.d.ts.map +1 -0
  1005. package/dist/v2/actionListExecutionMethodsRequestParse.js +11 -0
  1006. package/dist/v2/actionListExecutionMethodsRequestParse.js.map +1 -0
  1007. package/dist/v2/actionListExecutionServicesRequestParse.d.ts +11 -0
  1008. package/dist/v2/actionListExecutionServicesRequestParse.d.ts.map +1 -0
  1009. package/dist/v2/actionListExecutionServicesRequestParse.js +11 -0
  1010. package/dist/v2/actionListExecutionServicesRequestParse.js.map +1 -0
  1011. package/dist/v2/actionListExecutionsRequestParse.d.ts +11 -0
  1012. package/dist/v2/actionListExecutionsRequestParse.d.ts.map +1 -0
  1013. package/dist/v2/actionListExecutionsRequestParse.js +11 -0
  1014. package/dist/v2/actionListExecutionsRequestParse.js.map +1 -0
  1015. package/dist/v2/actionListPublicKeysRequestParse.d.ts +11 -0
  1016. package/dist/v2/actionListPublicKeysRequestParse.d.ts.map +1 -0
  1017. package/dist/v2/actionListPublicKeysRequestParse.js +11 -0
  1018. package/dist/v2/actionListPublicKeysRequestParse.js.map +1 -0
  1019. package/dist/v2/actionListTargetsRequestParse.d.ts +11 -0
  1020. package/dist/v2/actionListTargetsRequestParse.d.ts.map +1 -0
  1021. package/dist/v2/actionListTargetsRequestParse.js +11 -0
  1022. package/dist/v2/actionListTargetsRequestParse.js.map +1 -0
  1023. package/dist/v2/actionRemovePublicKeyRequestParse.d.ts +11 -0
  1024. package/dist/v2/actionRemovePublicKeyRequestParse.d.ts.map +1 -0
  1025. package/dist/v2/actionRemovePublicKeyRequestParse.js +11 -0
  1026. package/dist/v2/actionRemovePublicKeyRequestParse.js.map +1 -0
  1027. package/dist/v2/actionServiceActivatePublicKey.d.ts +22 -0
  1028. package/dist/v2/actionServiceActivatePublicKey.d.ts.map +1 -0
  1029. package/dist/v2/actionServiceActivatePublicKey.js +23 -0
  1030. package/dist/v2/actionServiceActivatePublicKey.js.map +1 -0
  1031. package/dist/v2/actionServiceAddPublicKey.d.ts +22 -0
  1032. package/dist/v2/actionServiceAddPublicKey.d.ts.map +1 -0
  1033. package/dist/v2/actionServiceAddPublicKey.js +23 -0
  1034. package/dist/v2/actionServiceAddPublicKey.js.map +1 -0
  1035. package/dist/v2/actionServiceCreateTarget.d.ts +22 -0
  1036. package/dist/v2/actionServiceCreateTarget.d.ts.map +1 -0
  1037. package/dist/v2/actionServiceCreateTarget.js +23 -0
  1038. package/dist/v2/actionServiceCreateTarget.js.map +1 -0
  1039. package/dist/v2/actionServiceDeactivatePublicKey.d.ts +22 -0
  1040. package/dist/v2/actionServiceDeactivatePublicKey.d.ts.map +1 -0
  1041. package/dist/v2/actionServiceDeactivatePublicKey.js +23 -0
  1042. package/dist/v2/actionServiceDeactivatePublicKey.js.map +1 -0
  1043. package/dist/v2/actionServiceDeleteTarget.d.ts +22 -0
  1044. package/dist/v2/actionServiceDeleteTarget.d.ts.map +1 -0
  1045. package/dist/v2/actionServiceDeleteTarget.js +23 -0
  1046. package/dist/v2/actionServiceDeleteTarget.js.map +1 -0
  1047. package/dist/v2/actionServiceGetTarget.d.ts +22 -0
  1048. package/dist/v2/actionServiceGetTarget.d.ts.map +1 -0
  1049. package/dist/v2/actionServiceGetTarget.js +23 -0
  1050. package/dist/v2/actionServiceGetTarget.js.map +1 -0
  1051. package/dist/v2/actionServiceListExecutionFunctions.d.ts +22 -0
  1052. package/dist/v2/actionServiceListExecutionFunctions.d.ts.map +1 -0
  1053. package/dist/v2/actionServiceListExecutionFunctions.js +23 -0
  1054. package/dist/v2/actionServiceListExecutionFunctions.js.map +1 -0
  1055. package/dist/v2/actionServiceListExecutionMethods.d.ts +22 -0
  1056. package/dist/v2/actionServiceListExecutionMethods.d.ts.map +1 -0
  1057. package/dist/v2/actionServiceListExecutionMethods.js +23 -0
  1058. package/dist/v2/actionServiceListExecutionMethods.js.map +1 -0
  1059. package/dist/v2/actionServiceListExecutionServices.d.ts +22 -0
  1060. package/dist/v2/actionServiceListExecutionServices.d.ts.map +1 -0
  1061. package/dist/v2/actionServiceListExecutionServices.js +23 -0
  1062. package/dist/v2/actionServiceListExecutionServices.js.map +1 -0
  1063. package/dist/v2/actionServiceListExecutions.d.ts +22 -0
  1064. package/dist/v2/actionServiceListExecutions.d.ts.map +1 -0
  1065. package/dist/v2/actionServiceListExecutions.js +23 -0
  1066. package/dist/v2/actionServiceListExecutions.js.map +1 -0
  1067. package/dist/v2/actionServiceListPublicKeys.d.ts +22 -0
  1068. package/dist/v2/actionServiceListPublicKeys.d.ts.map +1 -0
  1069. package/dist/v2/actionServiceListPublicKeys.js +23 -0
  1070. package/dist/v2/actionServiceListPublicKeys.js.map +1 -0
  1071. package/dist/v2/actionServiceListTargets.d.ts +22 -0
  1072. package/dist/v2/actionServiceListTargets.d.ts.map +1 -0
  1073. package/dist/v2/actionServiceListTargets.js +23 -0
  1074. package/dist/v2/actionServiceListTargets.js.map +1 -0
  1075. package/dist/v2/actionServiceRemovePublicKey.d.ts +22 -0
  1076. package/dist/v2/actionServiceRemovePublicKey.d.ts.map +1 -0
  1077. package/dist/v2/actionServiceRemovePublicKey.js +23 -0
  1078. package/dist/v2/actionServiceRemovePublicKey.js.map +1 -0
  1079. package/dist/v2/actionServiceSetExecution.d.ts +22 -0
  1080. package/dist/v2/actionServiceSetExecution.d.ts.map +1 -0
  1081. package/dist/v2/actionServiceSetExecution.js +23 -0
  1082. package/dist/v2/actionServiceSetExecution.js.map +1 -0
  1083. package/dist/v2/actionServiceUpdateTarget.d.ts +22 -0
  1084. package/dist/v2/actionServiceUpdateTarget.d.ts.map +1 -0
  1085. package/dist/v2/actionServiceUpdateTarget.js +23 -0
  1086. package/dist/v2/actionServiceUpdateTarget.js.map +1 -0
  1087. package/dist/v2/actionSetExecutionRequestParse.d.ts +11 -0
  1088. package/dist/v2/actionSetExecutionRequestParse.d.ts.map +1 -0
  1089. package/dist/v2/actionSetExecutionRequestParse.js +11 -0
  1090. package/dist/v2/actionSetExecutionRequestParse.js.map +1 -0
  1091. package/dist/v2/actionUpdateTargetRequestParse.d.ts +11 -0
  1092. package/dist/v2/actionUpdateTargetRequestParse.d.ts.map +1 -0
  1093. package/dist/v2/actionUpdateTargetRequestParse.js +11 -0
  1094. package/dist/v2/actionUpdateTargetRequestParse.js.map +1 -0
  1095. package/dist/v2/application.d.ts +43 -0
  1096. package/dist/v2/application.d.ts.map +1 -0
  1097. package/dist/v2/application.js +31 -0
  1098. package/dist/v2/application.js.map +1 -0
  1099. package/dist/v2/applicationCreateApplicationKeyRequestParse.d.ts +11 -0
  1100. package/dist/v2/applicationCreateApplicationKeyRequestParse.d.ts.map +1 -0
  1101. package/dist/v2/applicationCreateApplicationKeyRequestParse.js +11 -0
  1102. package/dist/v2/applicationCreateApplicationKeyRequestParse.js.map +1 -0
  1103. package/dist/v2/applicationCreateApplicationRequestParse.d.ts +11 -0
  1104. package/dist/v2/applicationCreateApplicationRequestParse.d.ts.map +1 -0
  1105. package/dist/v2/applicationCreateApplicationRequestParse.js +11 -0
  1106. package/dist/v2/applicationCreateApplicationRequestParse.js.map +1 -0
  1107. package/dist/v2/applicationDeactivateApplicationRequestParse.d.ts +11 -0
  1108. package/dist/v2/applicationDeactivateApplicationRequestParse.d.ts.map +1 -0
  1109. package/dist/v2/applicationDeactivateApplicationRequestParse.js +11 -0
  1110. package/dist/v2/applicationDeactivateApplicationRequestParse.js.map +1 -0
  1111. package/dist/v2/applicationDeleteApplicationKeyRequestParse.d.ts +11 -0
  1112. package/dist/v2/applicationDeleteApplicationKeyRequestParse.d.ts.map +1 -0
  1113. package/dist/v2/applicationDeleteApplicationKeyRequestParse.js +11 -0
  1114. package/dist/v2/applicationDeleteApplicationKeyRequestParse.js.map +1 -0
  1115. package/dist/v2/applicationDeleteApplicationRequestParse.d.ts +11 -0
  1116. package/dist/v2/applicationDeleteApplicationRequestParse.d.ts.map +1 -0
  1117. package/dist/v2/applicationDeleteApplicationRequestParse.js +11 -0
  1118. package/dist/v2/applicationDeleteApplicationRequestParse.js.map +1 -0
  1119. package/dist/v2/applicationGenerateClientSecretRequestParse.d.ts +11 -0
  1120. package/dist/v2/applicationGenerateClientSecretRequestParse.d.ts.map +1 -0
  1121. package/dist/v2/applicationGenerateClientSecretRequestParse.js +11 -0
  1122. package/dist/v2/applicationGenerateClientSecretRequestParse.js.map +1 -0
  1123. package/dist/v2/applicationGetApplicationKeyRequestParse.d.ts +11 -0
  1124. package/dist/v2/applicationGetApplicationKeyRequestParse.d.ts.map +1 -0
  1125. package/dist/v2/applicationGetApplicationKeyRequestParse.js +11 -0
  1126. package/dist/v2/applicationGetApplicationKeyRequestParse.js.map +1 -0
  1127. package/dist/v2/applicationGetApplicationRequestParse.d.ts +11 -0
  1128. package/dist/v2/applicationGetApplicationRequestParse.d.ts.map +1 -0
  1129. package/dist/v2/applicationGetApplicationRequestParse.js +11 -0
  1130. package/dist/v2/applicationGetApplicationRequestParse.js.map +1 -0
  1131. package/dist/v2/applicationListApplicationKeysRequestParse.d.ts +11 -0
  1132. package/dist/v2/applicationListApplicationKeysRequestParse.d.ts.map +1 -0
  1133. package/dist/v2/applicationListApplicationKeysRequestParse.js +11 -0
  1134. package/dist/v2/applicationListApplicationKeysRequestParse.js.map +1 -0
  1135. package/dist/v2/applicationListApplicationsRequestParse.d.ts +11 -0
  1136. package/dist/v2/applicationListApplicationsRequestParse.d.ts.map +1 -0
  1137. package/dist/v2/applicationListApplicationsRequestParse.js +11 -0
  1138. package/dist/v2/applicationListApplicationsRequestParse.js.map +1 -0
  1139. package/dist/v2/applicationReactivateApplicationRequestParse.d.ts +11 -0
  1140. package/dist/v2/applicationReactivateApplicationRequestParse.d.ts.map +1 -0
  1141. package/dist/v2/applicationReactivateApplicationRequestParse.js +11 -0
  1142. package/dist/v2/applicationReactivateApplicationRequestParse.js.map +1 -0
  1143. package/dist/v2/applicationServiceCreateApplication.d.ts +22 -0
  1144. package/dist/v2/applicationServiceCreateApplication.d.ts.map +1 -0
  1145. package/dist/v2/applicationServiceCreateApplication.js +23 -0
  1146. package/dist/v2/applicationServiceCreateApplication.js.map +1 -0
  1147. package/dist/v2/applicationServiceCreateApplicationKey.d.ts +22 -0
  1148. package/dist/v2/applicationServiceCreateApplicationKey.d.ts.map +1 -0
  1149. package/dist/v2/applicationServiceCreateApplicationKey.js +23 -0
  1150. package/dist/v2/applicationServiceCreateApplicationKey.js.map +1 -0
  1151. package/dist/v2/applicationServiceDeactivateApplication.d.ts +22 -0
  1152. package/dist/v2/applicationServiceDeactivateApplication.d.ts.map +1 -0
  1153. package/dist/v2/applicationServiceDeactivateApplication.js +23 -0
  1154. package/dist/v2/applicationServiceDeactivateApplication.js.map +1 -0
  1155. package/dist/v2/applicationServiceDeleteApplication.d.ts +22 -0
  1156. package/dist/v2/applicationServiceDeleteApplication.d.ts.map +1 -0
  1157. package/dist/v2/applicationServiceDeleteApplication.js +23 -0
  1158. package/dist/v2/applicationServiceDeleteApplication.js.map +1 -0
  1159. package/dist/v2/applicationServiceDeleteApplicationKey.d.ts +22 -0
  1160. package/dist/v2/applicationServiceDeleteApplicationKey.d.ts.map +1 -0
  1161. package/dist/v2/applicationServiceDeleteApplicationKey.js +23 -0
  1162. package/dist/v2/applicationServiceDeleteApplicationKey.js.map +1 -0
  1163. package/dist/v2/applicationServiceGenerateClientSecret.d.ts +22 -0
  1164. package/dist/v2/applicationServiceGenerateClientSecret.d.ts.map +1 -0
  1165. package/dist/v2/applicationServiceGenerateClientSecret.js +23 -0
  1166. package/dist/v2/applicationServiceGenerateClientSecret.js.map +1 -0
  1167. package/dist/v2/applicationServiceGetApplication.d.ts +22 -0
  1168. package/dist/v2/applicationServiceGetApplication.d.ts.map +1 -0
  1169. package/dist/v2/applicationServiceGetApplication.js +23 -0
  1170. package/dist/v2/applicationServiceGetApplication.js.map +1 -0
  1171. package/dist/v2/applicationServiceGetApplicationKey.d.ts +22 -0
  1172. package/dist/v2/applicationServiceGetApplicationKey.d.ts.map +1 -0
  1173. package/dist/v2/applicationServiceGetApplicationKey.js +23 -0
  1174. package/dist/v2/applicationServiceGetApplicationKey.js.map +1 -0
  1175. package/dist/v2/applicationServiceListApplicationKeys.d.ts +22 -0
  1176. package/dist/v2/applicationServiceListApplicationKeys.d.ts.map +1 -0
  1177. package/dist/v2/applicationServiceListApplicationKeys.js +23 -0
  1178. package/dist/v2/applicationServiceListApplicationKeys.js.map +1 -0
  1179. package/dist/v2/applicationServiceListApplications.d.ts +22 -0
  1180. package/dist/v2/applicationServiceListApplications.d.ts.map +1 -0
  1181. package/dist/v2/applicationServiceListApplications.js +23 -0
  1182. package/dist/v2/applicationServiceListApplications.js.map +1 -0
  1183. package/dist/v2/applicationServiceReactivateApplication.d.ts +22 -0
  1184. package/dist/v2/applicationServiceReactivateApplication.d.ts.map +1 -0
  1185. package/dist/v2/applicationServiceReactivateApplication.js +23 -0
  1186. package/dist/v2/applicationServiceReactivateApplication.js.map +1 -0
  1187. package/dist/v2/applicationServiceUpdateApplication.d.ts +22 -0
  1188. package/dist/v2/applicationServiceUpdateApplication.d.ts.map +1 -0
  1189. package/dist/v2/applicationServiceUpdateApplication.js +23 -0
  1190. package/dist/v2/applicationServiceUpdateApplication.js.map +1 -0
  1191. package/dist/v2/applicationUpdateApplicationRequestParse.d.ts +11 -0
  1192. package/dist/v2/applicationUpdateApplicationRequestParse.d.ts.map +1 -0
  1193. package/dist/v2/applicationUpdateApplicationRequestParse.js +11 -0
  1194. package/dist/v2/applicationUpdateApplicationRequestParse.js.map +1 -0
  1195. package/dist/v2/index.d.ts +31 -0
  1196. package/dist/v2/index.d.ts.map +1 -0
  1197. package/dist/v2/index.js +25 -0
  1198. package/dist/v2/index.js.map +1 -0
  1199. package/dist/v2/internal/endpointCall.d.ts +21 -0
  1200. package/dist/v2/internal/endpointCall.d.ts.map +1 -0
  1201. package/dist/v2/internal/endpointCall.js +27 -0
  1202. package/dist/v2/internal/endpointCall.js.map +1 -0
  1203. package/dist/v2/internal/endpointRequestParse.d.ts +11 -0
  1204. package/dist/v2/internal/endpointRequestParse.d.ts.map +1 -0
  1205. package/dist/v2/internal/endpointRequestParse.js +30 -0
  1206. package/dist/v2/internal/endpointRequestParse.js.map +1 -0
  1207. package/dist/v2/internalPermission.d.ts +15 -0
  1208. package/dist/v2/internalPermission.d.ts.map +1 -0
  1209. package/dist/v2/internalPermission.js +11 -0
  1210. package/dist/v2/internalPermission.js.map +1 -0
  1211. package/dist/v2/internalPermissionCreateAdministratorRequestParse.d.ts +11 -0
  1212. package/dist/v2/internalPermissionCreateAdministratorRequestParse.d.ts.map +1 -0
  1213. package/dist/v2/internalPermissionCreateAdministratorRequestParse.js +11 -0
  1214. package/dist/v2/internalPermissionCreateAdministratorRequestParse.js.map +1 -0
  1215. package/dist/v2/internalPermissionDeleteAdministratorRequestParse.d.ts +11 -0
  1216. package/dist/v2/internalPermissionDeleteAdministratorRequestParse.d.ts.map +1 -0
  1217. package/dist/v2/internalPermissionDeleteAdministratorRequestParse.js +11 -0
  1218. package/dist/v2/internalPermissionDeleteAdministratorRequestParse.js.map +1 -0
  1219. package/dist/v2/internalPermissionListAdministratorsRequestParse.d.ts +11 -0
  1220. package/dist/v2/internalPermissionListAdministratorsRequestParse.d.ts.map +1 -0
  1221. package/dist/v2/internalPermissionListAdministratorsRequestParse.js +11 -0
  1222. package/dist/v2/internalPermissionListAdministratorsRequestParse.js.map +1 -0
  1223. package/dist/v2/internalPermissionServiceCreateAdministrator.d.ts +22 -0
  1224. package/dist/v2/internalPermissionServiceCreateAdministrator.d.ts.map +1 -0
  1225. package/dist/v2/internalPermissionServiceCreateAdministrator.js +23 -0
  1226. package/dist/v2/internalPermissionServiceCreateAdministrator.js.map +1 -0
  1227. package/dist/v2/internalPermissionServiceDeleteAdministrator.d.ts +22 -0
  1228. package/dist/v2/internalPermissionServiceDeleteAdministrator.d.ts.map +1 -0
  1229. package/dist/v2/internalPermissionServiceDeleteAdministrator.js +23 -0
  1230. package/dist/v2/internalPermissionServiceDeleteAdministrator.js.map +1 -0
  1231. package/dist/v2/internalPermissionServiceListAdministrators.d.ts +22 -0
  1232. package/dist/v2/internalPermissionServiceListAdministrators.d.ts.map +1 -0
  1233. package/dist/v2/internalPermissionServiceListAdministrators.js +23 -0
  1234. package/dist/v2/internalPermissionServiceListAdministrators.js.map +1 -0
  1235. package/dist/v2/internalPermissionServiceUpdateAdministrator.d.ts +22 -0
  1236. package/dist/v2/internalPermissionServiceUpdateAdministrator.d.ts.map +1 -0
  1237. package/dist/v2/internalPermissionServiceUpdateAdministrator.js +23 -0
  1238. package/dist/v2/internalPermissionServiceUpdateAdministrator.js.map +1 -0
  1239. package/dist/v2/internalPermissionUpdateAdministratorRequestParse.d.ts +11 -0
  1240. package/dist/v2/internalPermissionUpdateAdministratorRequestParse.d.ts.map +1 -0
  1241. package/dist/v2/internalPermissionUpdateAdministratorRequestParse.js +11 -0
  1242. package/dist/v2/internalPermissionUpdateAdministratorRequestParse.js.map +1 -0
  1243. package/dist/v2/organization.d.ts +46 -0
  1244. package/dist/v2/organization.d.ts.map +1 -0
  1245. package/dist/v2/organization.js +32 -0
  1246. package/dist/v2/organization.js.map +1 -0
  1247. package/dist/v2/organizationActivateOrganizationRequestParse.d.ts +11 -0
  1248. package/dist/v2/organizationActivateOrganizationRequestParse.d.ts.map +1 -0
  1249. package/dist/v2/organizationActivateOrganizationRequestParse.js +11 -0
  1250. package/dist/v2/organizationActivateOrganizationRequestParse.js.map +1 -0
  1251. package/dist/v2/organizationAddOrganizationDomainRequestParse.d.ts +11 -0
  1252. package/dist/v2/organizationAddOrganizationDomainRequestParse.d.ts.map +1 -0
  1253. package/dist/v2/organizationAddOrganizationDomainRequestParse.js +11 -0
  1254. package/dist/v2/organizationAddOrganizationDomainRequestParse.js.map +1 -0
  1255. package/dist/v2/organizationAddOrganizationRequestParse.d.ts +11 -0
  1256. package/dist/v2/organizationAddOrganizationRequestParse.d.ts.map +1 -0
  1257. package/dist/v2/organizationAddOrganizationRequestParse.js +11 -0
  1258. package/dist/v2/organizationAddOrganizationRequestParse.js.map +1 -0
  1259. package/dist/v2/organizationDeactivateOrganizationRequestParse.d.ts +11 -0
  1260. package/dist/v2/organizationDeactivateOrganizationRequestParse.d.ts.map +1 -0
  1261. package/dist/v2/organizationDeactivateOrganizationRequestParse.js +11 -0
  1262. package/dist/v2/organizationDeactivateOrganizationRequestParse.js.map +1 -0
  1263. package/dist/v2/organizationDeleteOrganizationDomainRequestParse.d.ts +11 -0
  1264. package/dist/v2/organizationDeleteOrganizationDomainRequestParse.d.ts.map +1 -0
  1265. package/dist/v2/organizationDeleteOrganizationDomainRequestParse.js +11 -0
  1266. package/dist/v2/organizationDeleteOrganizationDomainRequestParse.js.map +1 -0
  1267. package/dist/v2/organizationDeleteOrganizationMetadataRequestParse.d.ts +11 -0
  1268. package/dist/v2/organizationDeleteOrganizationMetadataRequestParse.d.ts.map +1 -0
  1269. package/dist/v2/organizationDeleteOrganizationMetadataRequestParse.js +11 -0
  1270. package/dist/v2/organizationDeleteOrganizationMetadataRequestParse.js.map +1 -0
  1271. package/dist/v2/organizationDeleteOrganizationRequestParse.d.ts +11 -0
  1272. package/dist/v2/organizationDeleteOrganizationRequestParse.d.ts.map +1 -0
  1273. package/dist/v2/organizationDeleteOrganizationRequestParse.js +11 -0
  1274. package/dist/v2/organizationDeleteOrganizationRequestParse.js.map +1 -0
  1275. package/dist/v2/organizationGenerateOrganizationDomainValidationRequestParse.d.ts +11 -0
  1276. package/dist/v2/organizationGenerateOrganizationDomainValidationRequestParse.d.ts.map +1 -0
  1277. package/dist/v2/organizationGenerateOrganizationDomainValidationRequestParse.js +11 -0
  1278. package/dist/v2/organizationGenerateOrganizationDomainValidationRequestParse.js.map +1 -0
  1279. package/dist/v2/organizationListOrganizationDomainsRequestParse.d.ts +11 -0
  1280. package/dist/v2/organizationListOrganizationDomainsRequestParse.d.ts.map +1 -0
  1281. package/dist/v2/organizationListOrganizationDomainsRequestParse.js +11 -0
  1282. package/dist/v2/organizationListOrganizationDomainsRequestParse.js.map +1 -0
  1283. package/dist/v2/organizationListOrganizationMetadataRequestParse.d.ts +11 -0
  1284. package/dist/v2/organizationListOrganizationMetadataRequestParse.d.ts.map +1 -0
  1285. package/dist/v2/organizationListOrganizationMetadataRequestParse.js +11 -0
  1286. package/dist/v2/organizationListOrganizationMetadataRequestParse.js.map +1 -0
  1287. package/dist/v2/organizationListOrganizationsRequestParse.d.ts +11 -0
  1288. package/dist/v2/organizationListOrganizationsRequestParse.d.ts.map +1 -0
  1289. package/dist/v2/organizationListOrganizationsRequestParse.js +11 -0
  1290. package/dist/v2/organizationListOrganizationsRequestParse.js.map +1 -0
  1291. package/dist/v2/organizationServiceActivateOrganization.d.ts +22 -0
  1292. package/dist/v2/organizationServiceActivateOrganization.d.ts.map +1 -0
  1293. package/dist/v2/organizationServiceActivateOrganization.js +23 -0
  1294. package/dist/v2/organizationServiceActivateOrganization.js.map +1 -0
  1295. package/dist/v2/organizationServiceAddOrganization.d.ts +22 -0
  1296. package/dist/v2/organizationServiceAddOrganization.d.ts.map +1 -0
  1297. package/dist/v2/organizationServiceAddOrganization.js +23 -0
  1298. package/dist/v2/organizationServiceAddOrganization.js.map +1 -0
  1299. package/dist/v2/organizationServiceAddOrganizationDomain.d.ts +22 -0
  1300. package/dist/v2/organizationServiceAddOrganizationDomain.d.ts.map +1 -0
  1301. package/dist/v2/organizationServiceAddOrganizationDomain.js +23 -0
  1302. package/dist/v2/organizationServiceAddOrganizationDomain.js.map +1 -0
  1303. package/dist/v2/organizationServiceDeactivateOrganization.d.ts +22 -0
  1304. package/dist/v2/organizationServiceDeactivateOrganization.d.ts.map +1 -0
  1305. package/dist/v2/organizationServiceDeactivateOrganization.js +23 -0
  1306. package/dist/v2/organizationServiceDeactivateOrganization.js.map +1 -0
  1307. package/dist/v2/organizationServiceDeleteOrganization.d.ts +22 -0
  1308. package/dist/v2/organizationServiceDeleteOrganization.d.ts.map +1 -0
  1309. package/dist/v2/organizationServiceDeleteOrganization.js +23 -0
  1310. package/dist/v2/organizationServiceDeleteOrganization.js.map +1 -0
  1311. package/dist/v2/organizationServiceDeleteOrganizationDomain.d.ts +22 -0
  1312. package/dist/v2/organizationServiceDeleteOrganizationDomain.d.ts.map +1 -0
  1313. package/dist/v2/organizationServiceDeleteOrganizationDomain.js +23 -0
  1314. package/dist/v2/organizationServiceDeleteOrganizationDomain.js.map +1 -0
  1315. package/dist/v2/organizationServiceDeleteOrganizationMetadata.d.ts +22 -0
  1316. package/dist/v2/organizationServiceDeleteOrganizationMetadata.d.ts.map +1 -0
  1317. package/dist/v2/organizationServiceDeleteOrganizationMetadata.js +23 -0
  1318. package/dist/v2/organizationServiceDeleteOrganizationMetadata.js.map +1 -0
  1319. package/dist/v2/organizationServiceGenerateOrganizationDomainValidation.d.ts +22 -0
  1320. package/dist/v2/organizationServiceGenerateOrganizationDomainValidation.d.ts.map +1 -0
  1321. package/dist/v2/organizationServiceGenerateOrganizationDomainValidation.js +23 -0
  1322. package/dist/v2/organizationServiceGenerateOrganizationDomainValidation.js.map +1 -0
  1323. package/dist/v2/organizationServiceListOrganizationDomains.d.ts +22 -0
  1324. package/dist/v2/organizationServiceListOrganizationDomains.d.ts.map +1 -0
  1325. package/dist/v2/organizationServiceListOrganizationDomains.js +23 -0
  1326. package/dist/v2/organizationServiceListOrganizationDomains.js.map +1 -0
  1327. package/dist/v2/organizationServiceListOrganizationMetadata.d.ts +22 -0
  1328. package/dist/v2/organizationServiceListOrganizationMetadata.d.ts.map +1 -0
  1329. package/dist/v2/organizationServiceListOrganizationMetadata.js +23 -0
  1330. package/dist/v2/organizationServiceListOrganizationMetadata.js.map +1 -0
  1331. package/dist/v2/organizationServiceListOrganizations.d.ts +22 -0
  1332. package/dist/v2/organizationServiceListOrganizations.d.ts.map +1 -0
  1333. package/dist/v2/organizationServiceListOrganizations.js +23 -0
  1334. package/dist/v2/organizationServiceListOrganizations.js.map +1 -0
  1335. package/dist/v2/organizationServiceSetOrganizationMetadata.d.ts +22 -0
  1336. package/dist/v2/organizationServiceSetOrganizationMetadata.d.ts.map +1 -0
  1337. package/dist/v2/organizationServiceSetOrganizationMetadata.js +23 -0
  1338. package/dist/v2/organizationServiceSetOrganizationMetadata.js.map +1 -0
  1339. package/dist/v2/organizationServiceUpdateOrganization.d.ts +22 -0
  1340. package/dist/v2/organizationServiceUpdateOrganization.d.ts.map +1 -0
  1341. package/dist/v2/organizationServiceUpdateOrganization.js +23 -0
  1342. package/dist/v2/organizationServiceUpdateOrganization.js.map +1 -0
  1343. package/dist/v2/organizationServiceVerifyOrganizationDomain.d.ts +22 -0
  1344. package/dist/v2/organizationServiceVerifyOrganizationDomain.d.ts.map +1 -0
  1345. package/dist/v2/organizationServiceVerifyOrganizationDomain.js +23 -0
  1346. package/dist/v2/organizationServiceVerifyOrganizationDomain.js.map +1 -0
  1347. package/dist/v2/organizationSetOrganizationMetadataRequestParse.d.ts +11 -0
  1348. package/dist/v2/organizationSetOrganizationMetadataRequestParse.d.ts.map +1 -0
  1349. package/dist/v2/organizationSetOrganizationMetadataRequestParse.js +11 -0
  1350. package/dist/v2/organizationSetOrganizationMetadataRequestParse.js.map +1 -0
  1351. package/dist/v2/organizationUpdateOrganizationRequestParse.d.ts +11 -0
  1352. package/dist/v2/organizationUpdateOrganizationRequestParse.d.ts.map +1 -0
  1353. package/dist/v2/organizationUpdateOrganizationRequestParse.js +11 -0
  1354. package/dist/v2/organizationUpdateOrganizationRequestParse.js.map +1 -0
  1355. package/dist/v2/organizationVerifyOrganizationDomainRequestParse.d.ts +11 -0
  1356. package/dist/v2/organizationVerifyOrganizationDomainRequestParse.d.ts.map +1 -0
  1357. package/dist/v2/organizationVerifyOrganizationDomainRequestParse.js +11 -0
  1358. package/dist/v2/organizationVerifyOrganizationDomainRequestParse.js.map +1 -0
  1359. package/dist/v2/project.d.ts +54 -0
  1360. package/dist/v2/project.d.ts.map +1 -0
  1361. package/dist/v2/project.js +37 -0
  1362. package/dist/v2/project.js.map +1 -0
  1363. package/dist/v2/projectActivateProjectGrantRequestParse.d.ts +11 -0
  1364. package/dist/v2/projectActivateProjectGrantRequestParse.d.ts.map +1 -0
  1365. package/dist/v2/projectActivateProjectGrantRequestParse.js +11 -0
  1366. package/dist/v2/projectActivateProjectGrantRequestParse.js.map +1 -0
  1367. package/dist/v2/projectActivateProjectRequestParse.d.ts +11 -0
  1368. package/dist/v2/projectActivateProjectRequestParse.d.ts.map +1 -0
  1369. package/dist/v2/projectActivateProjectRequestParse.js +11 -0
  1370. package/dist/v2/projectActivateProjectRequestParse.js.map +1 -0
  1371. package/dist/v2/projectAddProjectRoleRequestParse.d.ts +11 -0
  1372. package/dist/v2/projectAddProjectRoleRequestParse.d.ts.map +1 -0
  1373. package/dist/v2/projectAddProjectRoleRequestParse.js +11 -0
  1374. package/dist/v2/projectAddProjectRoleRequestParse.js.map +1 -0
  1375. package/dist/v2/projectCreateProjectGrantRequestParse.d.ts +11 -0
  1376. package/dist/v2/projectCreateProjectGrantRequestParse.d.ts.map +1 -0
  1377. package/dist/v2/projectCreateProjectGrantRequestParse.js +11 -0
  1378. package/dist/v2/projectCreateProjectGrantRequestParse.js.map +1 -0
  1379. package/dist/v2/projectCreateProjectRequestParse.d.ts +11 -0
  1380. package/dist/v2/projectCreateProjectRequestParse.d.ts.map +1 -0
  1381. package/dist/v2/projectCreateProjectRequestParse.js +11 -0
  1382. package/dist/v2/projectCreateProjectRequestParse.js.map +1 -0
  1383. package/dist/v2/projectDeactivateProjectGrantRequestParse.d.ts +11 -0
  1384. package/dist/v2/projectDeactivateProjectGrantRequestParse.d.ts.map +1 -0
  1385. package/dist/v2/projectDeactivateProjectGrantRequestParse.js +11 -0
  1386. package/dist/v2/projectDeactivateProjectGrantRequestParse.js.map +1 -0
  1387. package/dist/v2/projectDeactivateProjectRequestParse.d.ts +11 -0
  1388. package/dist/v2/projectDeactivateProjectRequestParse.d.ts.map +1 -0
  1389. package/dist/v2/projectDeactivateProjectRequestParse.js +11 -0
  1390. package/dist/v2/projectDeactivateProjectRequestParse.js.map +1 -0
  1391. package/dist/v2/projectDeleteProjectGrantRequestParse.d.ts +11 -0
  1392. package/dist/v2/projectDeleteProjectGrantRequestParse.d.ts.map +1 -0
  1393. package/dist/v2/projectDeleteProjectGrantRequestParse.js +11 -0
  1394. package/dist/v2/projectDeleteProjectGrantRequestParse.js.map +1 -0
  1395. package/dist/v2/projectDeleteProjectRequestParse.d.ts +11 -0
  1396. package/dist/v2/projectDeleteProjectRequestParse.d.ts.map +1 -0
  1397. package/dist/v2/projectDeleteProjectRequestParse.js +11 -0
  1398. package/dist/v2/projectDeleteProjectRequestParse.js.map +1 -0
  1399. package/dist/v2/projectGetProjectRequestParse.d.ts +11 -0
  1400. package/dist/v2/projectGetProjectRequestParse.d.ts.map +1 -0
  1401. package/dist/v2/projectGetProjectRequestParse.js +11 -0
  1402. package/dist/v2/projectGetProjectRequestParse.js.map +1 -0
  1403. package/dist/v2/projectListProjectGrantsRequestParse.d.ts +11 -0
  1404. package/dist/v2/projectListProjectGrantsRequestParse.d.ts.map +1 -0
  1405. package/dist/v2/projectListProjectGrantsRequestParse.js +11 -0
  1406. package/dist/v2/projectListProjectGrantsRequestParse.js.map +1 -0
  1407. package/dist/v2/projectListProjectRolesRequestParse.d.ts +11 -0
  1408. package/dist/v2/projectListProjectRolesRequestParse.d.ts.map +1 -0
  1409. package/dist/v2/projectListProjectRolesRequestParse.js +11 -0
  1410. package/dist/v2/projectListProjectRolesRequestParse.js.map +1 -0
  1411. package/dist/v2/projectListProjectsRequestParse.d.ts +11 -0
  1412. package/dist/v2/projectListProjectsRequestParse.d.ts.map +1 -0
  1413. package/dist/v2/projectListProjectsRequestParse.js +11 -0
  1414. package/dist/v2/projectListProjectsRequestParse.js.map +1 -0
  1415. package/dist/v2/projectRemoveProjectRoleRequestParse.d.ts +11 -0
  1416. package/dist/v2/projectRemoveProjectRoleRequestParse.d.ts.map +1 -0
  1417. package/dist/v2/projectRemoveProjectRoleRequestParse.js +11 -0
  1418. package/dist/v2/projectRemoveProjectRoleRequestParse.js.map +1 -0
  1419. package/dist/v2/projectServiceActivateProject.d.ts +22 -0
  1420. package/dist/v2/projectServiceActivateProject.d.ts.map +1 -0
  1421. package/dist/v2/projectServiceActivateProject.js +23 -0
  1422. package/dist/v2/projectServiceActivateProject.js.map +1 -0
  1423. package/dist/v2/projectServiceActivateProjectGrant.d.ts +22 -0
  1424. package/dist/v2/projectServiceActivateProjectGrant.d.ts.map +1 -0
  1425. package/dist/v2/projectServiceActivateProjectGrant.js +23 -0
  1426. package/dist/v2/projectServiceActivateProjectGrant.js.map +1 -0
  1427. package/dist/v2/projectServiceAddProjectRole.d.ts +22 -0
  1428. package/dist/v2/projectServiceAddProjectRole.d.ts.map +1 -0
  1429. package/dist/v2/projectServiceAddProjectRole.js +23 -0
  1430. package/dist/v2/projectServiceAddProjectRole.js.map +1 -0
  1431. package/dist/v2/projectServiceCreateProject.d.ts +22 -0
  1432. package/dist/v2/projectServiceCreateProject.d.ts.map +1 -0
  1433. package/dist/v2/projectServiceCreateProject.js +23 -0
  1434. package/dist/v2/projectServiceCreateProject.js.map +1 -0
  1435. package/dist/v2/projectServiceCreateProjectGrant.d.ts +22 -0
  1436. package/dist/v2/projectServiceCreateProjectGrant.d.ts.map +1 -0
  1437. package/dist/v2/projectServiceCreateProjectGrant.js +23 -0
  1438. package/dist/v2/projectServiceCreateProjectGrant.js.map +1 -0
  1439. package/dist/v2/projectServiceDeactivateProject.d.ts +22 -0
  1440. package/dist/v2/projectServiceDeactivateProject.d.ts.map +1 -0
  1441. package/dist/v2/projectServiceDeactivateProject.js +23 -0
  1442. package/dist/v2/projectServiceDeactivateProject.js.map +1 -0
  1443. package/dist/v2/projectServiceDeactivateProjectGrant.d.ts +22 -0
  1444. package/dist/v2/projectServiceDeactivateProjectGrant.d.ts.map +1 -0
  1445. package/dist/v2/projectServiceDeactivateProjectGrant.js +23 -0
  1446. package/dist/v2/projectServiceDeactivateProjectGrant.js.map +1 -0
  1447. package/dist/v2/projectServiceDeleteProject.d.ts +22 -0
  1448. package/dist/v2/projectServiceDeleteProject.d.ts.map +1 -0
  1449. package/dist/v2/projectServiceDeleteProject.js +23 -0
  1450. package/dist/v2/projectServiceDeleteProject.js.map +1 -0
  1451. package/dist/v2/projectServiceDeleteProjectGrant.d.ts +22 -0
  1452. package/dist/v2/projectServiceDeleteProjectGrant.d.ts.map +1 -0
  1453. package/dist/v2/projectServiceDeleteProjectGrant.js +23 -0
  1454. package/dist/v2/projectServiceDeleteProjectGrant.js.map +1 -0
  1455. package/dist/v2/projectServiceGetProject.d.ts +22 -0
  1456. package/dist/v2/projectServiceGetProject.d.ts.map +1 -0
  1457. package/dist/v2/projectServiceGetProject.js +23 -0
  1458. package/dist/v2/projectServiceGetProject.js.map +1 -0
  1459. package/dist/v2/projectServiceListProjectGrants.d.ts +22 -0
  1460. package/dist/v2/projectServiceListProjectGrants.d.ts.map +1 -0
  1461. package/dist/v2/projectServiceListProjectGrants.js +23 -0
  1462. package/dist/v2/projectServiceListProjectGrants.js.map +1 -0
  1463. package/dist/v2/projectServiceListProjectRoles.d.ts +22 -0
  1464. package/dist/v2/projectServiceListProjectRoles.d.ts.map +1 -0
  1465. package/dist/v2/projectServiceListProjectRoles.js +23 -0
  1466. package/dist/v2/projectServiceListProjectRoles.js.map +1 -0
  1467. package/dist/v2/projectServiceListProjects.d.ts +22 -0
  1468. package/dist/v2/projectServiceListProjects.d.ts.map +1 -0
  1469. package/dist/v2/projectServiceListProjects.js +23 -0
  1470. package/dist/v2/projectServiceListProjects.js.map +1 -0
  1471. package/dist/v2/projectServiceRemoveProjectRole.d.ts +17 -0
  1472. package/dist/v2/projectServiceRemoveProjectRole.d.ts.map +1 -0
  1473. package/dist/v2/projectServiceRemoveProjectRole.js +18 -0
  1474. package/dist/v2/projectServiceRemoveProjectRole.js.map +1 -0
  1475. package/dist/v2/projectServiceUpdateProject.d.ts +22 -0
  1476. package/dist/v2/projectServiceUpdateProject.d.ts.map +1 -0
  1477. package/dist/v2/projectServiceUpdateProject.js +23 -0
  1478. package/dist/v2/projectServiceUpdateProject.js.map +1 -0
  1479. package/dist/v2/projectServiceUpdateProjectGrant.d.ts +22 -0
  1480. package/dist/v2/projectServiceUpdateProjectGrant.d.ts.map +1 -0
  1481. package/dist/v2/projectServiceUpdateProjectGrant.js +23 -0
  1482. package/dist/v2/projectServiceUpdateProjectGrant.js.map +1 -0
  1483. package/dist/v2/projectServiceUpdateProjectRole.d.ts +22 -0
  1484. package/dist/v2/projectServiceUpdateProjectRole.d.ts.map +1 -0
  1485. package/dist/v2/projectServiceUpdateProjectRole.js +23 -0
  1486. package/dist/v2/projectServiceUpdateProjectRole.js.map +1 -0
  1487. package/dist/v2/projectUpdateProjectGrantRequestParse.d.ts +11 -0
  1488. package/dist/v2/projectUpdateProjectGrantRequestParse.d.ts.map +1 -0
  1489. package/dist/v2/projectUpdateProjectGrantRequestParse.js +11 -0
  1490. package/dist/v2/projectUpdateProjectGrantRequestParse.js.map +1 -0
  1491. package/dist/v2/projectUpdateProjectRequestParse.d.ts +11 -0
  1492. package/dist/v2/projectUpdateProjectRequestParse.d.ts.map +1 -0
  1493. package/dist/v2/projectUpdateProjectRequestParse.js +11 -0
  1494. package/dist/v2/projectUpdateProjectRequestParse.js.map +1 -0
  1495. package/dist/v2/projectUpdateProjectRoleRequestParse.d.ts +11 -0
  1496. package/dist/v2/projectUpdateProjectRoleRequestParse.d.ts.map +1 -0
  1497. package/dist/v2/projectUpdateProjectRoleRequestParse.js +11 -0
  1498. package/dist/v2/projectUpdateProjectRoleRequestParse.js.map +1 -0
  1499. package/dist/v2/user.d.ts +171 -0
  1500. package/dist/v2/user.d.ts.map +1 -0
  1501. package/dist/v2/user.js +118 -0
  1502. package/dist/v2/user.js.map +1 -0
  1503. package/dist/v2/userAddIDPLinkRequestParse.d.ts +11 -0
  1504. package/dist/v2/userAddIDPLinkRequestParse.d.ts.map +1 -0
  1505. package/dist/v2/userAddIDPLinkRequestParse.js +11 -0
  1506. package/dist/v2/userAddIDPLinkRequestParse.js.map +1 -0
  1507. package/dist/v2/userAddKeyRequestParse.d.ts +11 -0
  1508. package/dist/v2/userAddKeyRequestParse.d.ts.map +1 -0
  1509. package/dist/v2/userAddKeyRequestParse.js +11 -0
  1510. package/dist/v2/userAddKeyRequestParse.js.map +1 -0
  1511. package/dist/v2/userAddOTPEmailRequestParse.d.ts +11 -0
  1512. package/dist/v2/userAddOTPEmailRequestParse.d.ts.map +1 -0
  1513. package/dist/v2/userAddOTPEmailRequestParse.js +11 -0
  1514. package/dist/v2/userAddOTPEmailRequestParse.js.map +1 -0
  1515. package/dist/v2/userAddOTPSMSRequestParse.d.ts +11 -0
  1516. package/dist/v2/userAddOTPSMSRequestParse.d.ts.map +1 -0
  1517. package/dist/v2/userAddOTPSMSRequestParse.js +11 -0
  1518. package/dist/v2/userAddOTPSMSRequestParse.js.map +1 -0
  1519. package/dist/v2/userAddPersonalAccessTokenRequestParse.d.ts +11 -0
  1520. package/dist/v2/userAddPersonalAccessTokenRequestParse.d.ts.map +1 -0
  1521. package/dist/v2/userAddPersonalAccessTokenRequestParse.js +11 -0
  1522. package/dist/v2/userAddPersonalAccessTokenRequestParse.js.map +1 -0
  1523. package/dist/v2/userAddSecretRequestParse.d.ts +11 -0
  1524. package/dist/v2/userAddSecretRequestParse.d.ts.map +1 -0
  1525. package/dist/v2/userAddSecretRequestParse.js +11 -0
  1526. package/dist/v2/userAddSecretRequestParse.js.map +1 -0
  1527. package/dist/v2/userCreateInviteCodeRequestParse.d.ts +11 -0
  1528. package/dist/v2/userCreateInviteCodeRequestParse.d.ts.map +1 -0
  1529. package/dist/v2/userCreateInviteCodeRequestParse.js +11 -0
  1530. package/dist/v2/userCreateInviteCodeRequestParse.js.map +1 -0
  1531. package/dist/v2/userCreatePasskeyRegistrationLinkRequestParse.d.ts +11 -0
  1532. package/dist/v2/userCreatePasskeyRegistrationLinkRequestParse.d.ts.map +1 -0
  1533. package/dist/v2/userCreatePasskeyRegistrationLinkRequestParse.js +11 -0
  1534. package/dist/v2/userCreatePasskeyRegistrationLinkRequestParse.js.map +1 -0
  1535. package/dist/v2/userCreateUserRequestParse.d.ts +11 -0
  1536. package/dist/v2/userCreateUserRequestParse.d.ts.map +1 -0
  1537. package/dist/v2/userCreateUserRequestParse.js +11 -0
  1538. package/dist/v2/userCreateUserRequestParse.js.map +1 -0
  1539. package/dist/v2/userDeactivateUserRequestParse.d.ts +11 -0
  1540. package/dist/v2/userDeactivateUserRequestParse.d.ts.map +1 -0
  1541. package/dist/v2/userDeactivateUserRequestParse.js +11 -0
  1542. package/dist/v2/userDeactivateUserRequestParse.js.map +1 -0
  1543. package/dist/v2/userDeleteUserMetadataRequestParse.d.ts +11 -0
  1544. package/dist/v2/userDeleteUserMetadataRequestParse.d.ts.map +1 -0
  1545. package/dist/v2/userDeleteUserMetadataRequestParse.js +11 -0
  1546. package/dist/v2/userDeleteUserMetadataRequestParse.js.map +1 -0
  1547. package/dist/v2/userDeleteUserRequestParse.d.ts +11 -0
  1548. package/dist/v2/userDeleteUserRequestParse.d.ts.map +1 -0
  1549. package/dist/v2/userDeleteUserRequestParse.js +11 -0
  1550. package/dist/v2/userDeleteUserRequestParse.js.map +1 -0
  1551. package/dist/v2/userGenerateRecoveryCodesRequestParse.d.ts +11 -0
  1552. package/dist/v2/userGenerateRecoveryCodesRequestParse.d.ts.map +1 -0
  1553. package/dist/v2/userGenerateRecoveryCodesRequestParse.js +11 -0
  1554. package/dist/v2/userGenerateRecoveryCodesRequestParse.js.map +1 -0
  1555. package/dist/v2/userGetUserByIDRequestParse.d.ts +11 -0
  1556. package/dist/v2/userGetUserByIDRequestParse.d.ts.map +1 -0
  1557. package/dist/v2/userGetUserByIDRequestParse.js +11 -0
  1558. package/dist/v2/userGetUserByIDRequestParse.js.map +1 -0
  1559. package/dist/v2/userHumanMFAInitSkippedRequestParse.d.ts +11 -0
  1560. package/dist/v2/userHumanMFAInitSkippedRequestParse.d.ts.map +1 -0
  1561. package/dist/v2/userHumanMFAInitSkippedRequestParse.js +11 -0
  1562. package/dist/v2/userHumanMFAInitSkippedRequestParse.js.map +1 -0
  1563. package/dist/v2/userListAuthenticationFactorsRequestParse.d.ts +11 -0
  1564. package/dist/v2/userListAuthenticationFactorsRequestParse.d.ts.map +1 -0
  1565. package/dist/v2/userListAuthenticationFactorsRequestParse.js +11 -0
  1566. package/dist/v2/userListAuthenticationFactorsRequestParse.js.map +1 -0
  1567. package/dist/v2/userListAuthenticationMethodTypesRequestParse.d.ts +11 -0
  1568. package/dist/v2/userListAuthenticationMethodTypesRequestParse.d.ts.map +1 -0
  1569. package/dist/v2/userListAuthenticationMethodTypesRequestParse.js +11 -0
  1570. package/dist/v2/userListAuthenticationMethodTypesRequestParse.js.map +1 -0
  1571. package/dist/v2/userListIDPLinksRequestParse.d.ts +11 -0
  1572. package/dist/v2/userListIDPLinksRequestParse.d.ts.map +1 -0
  1573. package/dist/v2/userListIDPLinksRequestParse.js +11 -0
  1574. package/dist/v2/userListIDPLinksRequestParse.js.map +1 -0
  1575. package/dist/v2/userListKeysRequestParse.d.ts +11 -0
  1576. package/dist/v2/userListKeysRequestParse.d.ts.map +1 -0
  1577. package/dist/v2/userListKeysRequestParse.js +11 -0
  1578. package/dist/v2/userListKeysRequestParse.js.map +1 -0
  1579. package/dist/v2/userListPasskeysRequestParse.d.ts +11 -0
  1580. package/dist/v2/userListPasskeysRequestParse.d.ts.map +1 -0
  1581. package/dist/v2/userListPasskeysRequestParse.js +11 -0
  1582. package/dist/v2/userListPasskeysRequestParse.js.map +1 -0
  1583. package/dist/v2/userListPersonalAccessTokensRequestParse.d.ts +11 -0
  1584. package/dist/v2/userListPersonalAccessTokensRequestParse.d.ts.map +1 -0
  1585. package/dist/v2/userListPersonalAccessTokensRequestParse.js +11 -0
  1586. package/dist/v2/userListPersonalAccessTokensRequestParse.js.map +1 -0
  1587. package/dist/v2/userListUserMetadataRequestParse.d.ts +11 -0
  1588. package/dist/v2/userListUserMetadataRequestParse.d.ts.map +1 -0
  1589. package/dist/v2/userListUserMetadataRequestParse.js +11 -0
  1590. package/dist/v2/userListUserMetadataRequestParse.js.map +1 -0
  1591. package/dist/v2/userListUsersRequestParse.d.ts +11 -0
  1592. package/dist/v2/userListUsersRequestParse.d.ts.map +1 -0
  1593. package/dist/v2/userListUsersRequestParse.js +11 -0
  1594. package/dist/v2/userListUsersRequestParse.js.map +1 -0
  1595. package/dist/v2/userLockUserRequestParse.d.ts +11 -0
  1596. package/dist/v2/userLockUserRequestParse.d.ts.map +1 -0
  1597. package/dist/v2/userLockUserRequestParse.js +11 -0
  1598. package/dist/v2/userLockUserRequestParse.js.map +1 -0
  1599. package/dist/v2/userReactivateUserRequestParse.d.ts +11 -0
  1600. package/dist/v2/userReactivateUserRequestParse.d.ts.map +1 -0
  1601. package/dist/v2/userReactivateUserRequestParse.js +11 -0
  1602. package/dist/v2/userReactivateUserRequestParse.js.map +1 -0
  1603. package/dist/v2/userRegisterPasskeyRequestParse.d.ts +11 -0
  1604. package/dist/v2/userRegisterPasskeyRequestParse.d.ts.map +1 -0
  1605. package/dist/v2/userRegisterPasskeyRequestParse.js +11 -0
  1606. package/dist/v2/userRegisterPasskeyRequestParse.js.map +1 -0
  1607. package/dist/v2/userRegisterTOTPRequestParse.d.ts +11 -0
  1608. package/dist/v2/userRegisterTOTPRequestParse.d.ts.map +1 -0
  1609. package/dist/v2/userRegisterTOTPRequestParse.js +11 -0
  1610. package/dist/v2/userRegisterTOTPRequestParse.js.map +1 -0
  1611. package/dist/v2/userRegisterU2FRequestParse.d.ts +11 -0
  1612. package/dist/v2/userRegisterU2FRequestParse.d.ts.map +1 -0
  1613. package/dist/v2/userRegisterU2FRequestParse.js +11 -0
  1614. package/dist/v2/userRegisterU2FRequestParse.js.map +1 -0
  1615. package/dist/v2/userRemoveIDPLinkRequestParse.d.ts +11 -0
  1616. package/dist/v2/userRemoveIDPLinkRequestParse.d.ts.map +1 -0
  1617. package/dist/v2/userRemoveIDPLinkRequestParse.js +11 -0
  1618. package/dist/v2/userRemoveIDPLinkRequestParse.js.map +1 -0
  1619. package/dist/v2/userRemoveKeyRequestParse.d.ts +11 -0
  1620. package/dist/v2/userRemoveKeyRequestParse.d.ts.map +1 -0
  1621. package/dist/v2/userRemoveKeyRequestParse.js +11 -0
  1622. package/dist/v2/userRemoveKeyRequestParse.js.map +1 -0
  1623. package/dist/v2/userRemoveOTPEmailRequestParse.d.ts +11 -0
  1624. package/dist/v2/userRemoveOTPEmailRequestParse.d.ts.map +1 -0
  1625. package/dist/v2/userRemoveOTPEmailRequestParse.js +11 -0
  1626. package/dist/v2/userRemoveOTPEmailRequestParse.js.map +1 -0
  1627. package/dist/v2/userRemoveOTPSMSRequestParse.d.ts +11 -0
  1628. package/dist/v2/userRemoveOTPSMSRequestParse.d.ts.map +1 -0
  1629. package/dist/v2/userRemoveOTPSMSRequestParse.js +11 -0
  1630. package/dist/v2/userRemoveOTPSMSRequestParse.js.map +1 -0
  1631. package/dist/v2/userRemovePasskeyRequestParse.d.ts +11 -0
  1632. package/dist/v2/userRemovePasskeyRequestParse.d.ts.map +1 -0
  1633. package/dist/v2/userRemovePasskeyRequestParse.js +11 -0
  1634. package/dist/v2/userRemovePasskeyRequestParse.js.map +1 -0
  1635. package/dist/v2/userRemovePersonalAccessTokenRequestParse.d.ts +11 -0
  1636. package/dist/v2/userRemovePersonalAccessTokenRequestParse.d.ts.map +1 -0
  1637. package/dist/v2/userRemovePersonalAccessTokenRequestParse.js +11 -0
  1638. package/dist/v2/userRemovePersonalAccessTokenRequestParse.js.map +1 -0
  1639. package/dist/v2/userRemoveRecoveryCodesRequestParse.d.ts +11 -0
  1640. package/dist/v2/userRemoveRecoveryCodesRequestParse.d.ts.map +1 -0
  1641. package/dist/v2/userRemoveRecoveryCodesRequestParse.js +11 -0
  1642. package/dist/v2/userRemoveRecoveryCodesRequestParse.js.map +1 -0
  1643. package/dist/v2/userRemoveSecretRequestParse.d.ts +11 -0
  1644. package/dist/v2/userRemoveSecretRequestParse.d.ts.map +1 -0
  1645. package/dist/v2/userRemoveSecretRequestParse.js +11 -0
  1646. package/dist/v2/userRemoveSecretRequestParse.js.map +1 -0
  1647. package/dist/v2/userRemoveTOTPRequestParse.d.ts +11 -0
  1648. package/dist/v2/userRemoveTOTPRequestParse.d.ts.map +1 -0
  1649. package/dist/v2/userRemoveTOTPRequestParse.js +11 -0
  1650. package/dist/v2/userRemoveTOTPRequestParse.js.map +1 -0
  1651. package/dist/v2/userRemoveU2FRequestParse.d.ts +11 -0
  1652. package/dist/v2/userRemoveU2FRequestParse.d.ts.map +1 -0
  1653. package/dist/v2/userRemoveU2FRequestParse.js +11 -0
  1654. package/dist/v2/userRemoveU2FRequestParse.js.map +1 -0
  1655. package/dist/v2/userResendEmailCodeRequestParse.d.ts +11 -0
  1656. package/dist/v2/userResendEmailCodeRequestParse.d.ts.map +1 -0
  1657. package/dist/v2/userResendEmailCodeRequestParse.js +11 -0
  1658. package/dist/v2/userResendEmailCodeRequestParse.js.map +1 -0
  1659. package/dist/v2/userResendPhoneCodeRequestParse.d.ts +11 -0
  1660. package/dist/v2/userResendPhoneCodeRequestParse.d.ts.map +1 -0
  1661. package/dist/v2/userResendPhoneCodeRequestParse.js +11 -0
  1662. package/dist/v2/userResendPhoneCodeRequestParse.js.map +1 -0
  1663. package/dist/v2/userRetrieveIdentityProviderIntentRequestParse.d.ts +11 -0
  1664. package/dist/v2/userRetrieveIdentityProviderIntentRequestParse.d.ts.map +1 -0
  1665. package/dist/v2/userRetrieveIdentityProviderIntentRequestParse.js +11 -0
  1666. package/dist/v2/userRetrieveIdentityProviderIntentRequestParse.js.map +1 -0
  1667. package/dist/v2/userSendEmailCodeRequestParse.d.ts +11 -0
  1668. package/dist/v2/userSendEmailCodeRequestParse.d.ts.map +1 -0
  1669. package/dist/v2/userSendEmailCodeRequestParse.js +11 -0
  1670. package/dist/v2/userSendEmailCodeRequestParse.js.map +1 -0
  1671. package/dist/v2/userService.d.ts +313 -0
  1672. package/dist/v2/userService.d.ts.map +1 -0
  1673. package/dist/v2/userService.js +16 -0
  1674. package/dist/v2/userService.js.map +1 -0
  1675. package/dist/v2/userServiceAddIDPLink.d.ts +22 -0
  1676. package/dist/v2/userServiceAddIDPLink.d.ts.map +1 -0
  1677. package/dist/v2/userServiceAddIDPLink.js +24 -0
  1678. package/dist/v2/userServiceAddIDPLink.js.map +1 -0
  1679. package/dist/v2/userServiceAddKey.d.ts +22 -0
  1680. package/dist/v2/userServiceAddKey.d.ts.map +1 -0
  1681. package/dist/v2/userServiceAddKey.js +24 -0
  1682. package/dist/v2/userServiceAddKey.js.map +1 -0
  1683. package/dist/v2/userServiceAddOTPEmail.d.ts +22 -0
  1684. package/dist/v2/userServiceAddOTPEmail.d.ts.map +1 -0
  1685. package/dist/v2/userServiceAddOTPEmail.js +24 -0
  1686. package/dist/v2/userServiceAddOTPEmail.js.map +1 -0
  1687. package/dist/v2/userServiceAddOTPSMS.d.ts +22 -0
  1688. package/dist/v2/userServiceAddOTPSMS.d.ts.map +1 -0
  1689. package/dist/v2/userServiceAddOTPSMS.js +24 -0
  1690. package/dist/v2/userServiceAddOTPSMS.js.map +1 -0
  1691. package/dist/v2/userServiceAddPersonalAccessToken.d.ts +22 -0
  1692. package/dist/v2/userServiceAddPersonalAccessToken.d.ts.map +1 -0
  1693. package/dist/v2/userServiceAddPersonalAccessToken.js +24 -0
  1694. package/dist/v2/userServiceAddPersonalAccessToken.js.map +1 -0
  1695. package/dist/v2/userServiceAddSecret.d.ts +22 -0
  1696. package/dist/v2/userServiceAddSecret.d.ts.map +1 -0
  1697. package/dist/v2/userServiceAddSecret.js +24 -0
  1698. package/dist/v2/userServiceAddSecret.js.map +1 -0
  1699. package/dist/v2/userServiceCreateInviteCode.d.ts +22 -0
  1700. package/dist/v2/userServiceCreateInviteCode.d.ts.map +1 -0
  1701. package/dist/v2/userServiceCreateInviteCode.js +24 -0
  1702. package/dist/v2/userServiceCreateInviteCode.js.map +1 -0
  1703. package/dist/v2/userServiceCreatePasskeyRegistrationLink.d.ts +22 -0
  1704. package/dist/v2/userServiceCreatePasskeyRegistrationLink.d.ts.map +1 -0
  1705. package/dist/v2/userServiceCreatePasskeyRegistrationLink.js +24 -0
  1706. package/dist/v2/userServiceCreatePasskeyRegistrationLink.js.map +1 -0
  1707. package/dist/v2/userServiceCreateUser.d.ts +22 -0
  1708. package/dist/v2/userServiceCreateUser.d.ts.map +1 -0
  1709. package/dist/v2/userServiceCreateUser.js +24 -0
  1710. package/dist/v2/userServiceCreateUser.js.map +1 -0
  1711. package/dist/v2/userServiceDeactivateUser.d.ts +22 -0
  1712. package/dist/v2/userServiceDeactivateUser.d.ts.map +1 -0
  1713. package/dist/v2/userServiceDeactivateUser.js +24 -0
  1714. package/dist/v2/userServiceDeactivateUser.js.map +1 -0
  1715. package/dist/v2/userServiceDeleteUser.d.ts +22 -0
  1716. package/dist/v2/userServiceDeleteUser.d.ts.map +1 -0
  1717. package/dist/v2/userServiceDeleteUser.js +24 -0
  1718. package/dist/v2/userServiceDeleteUser.js.map +1 -0
  1719. package/dist/v2/userServiceDeleteUserMetadata.d.ts +22 -0
  1720. package/dist/v2/userServiceDeleteUserMetadata.d.ts.map +1 -0
  1721. package/dist/v2/userServiceDeleteUserMetadata.js +24 -0
  1722. package/dist/v2/userServiceDeleteUserMetadata.js.map +1 -0
  1723. package/dist/v2/userServiceGenerateRecoveryCodes.d.ts +22 -0
  1724. package/dist/v2/userServiceGenerateRecoveryCodes.d.ts.map +1 -0
  1725. package/dist/v2/userServiceGenerateRecoveryCodes.js +24 -0
  1726. package/dist/v2/userServiceGenerateRecoveryCodes.js.map +1 -0
  1727. package/dist/v2/userServiceGetUserByID.d.ts +22 -0
  1728. package/dist/v2/userServiceGetUserByID.d.ts.map +1 -0
  1729. package/dist/v2/userServiceGetUserByID.js +24 -0
  1730. package/dist/v2/userServiceGetUserByID.js.map +1 -0
  1731. package/dist/v2/userServiceHumanMFAInitSkipped.d.ts +22 -0
  1732. package/dist/v2/userServiceHumanMFAInitSkipped.d.ts.map +1 -0
  1733. package/dist/v2/userServiceHumanMFAInitSkipped.js +24 -0
  1734. package/dist/v2/userServiceHumanMFAInitSkipped.js.map +1 -0
  1735. package/dist/v2/userServiceListAuthenticationFactors.d.ts +22 -0
  1736. package/dist/v2/userServiceListAuthenticationFactors.d.ts.map +1 -0
  1737. package/dist/v2/userServiceListAuthenticationFactors.js +24 -0
  1738. package/dist/v2/userServiceListAuthenticationFactors.js.map +1 -0
  1739. package/dist/v2/userServiceListAuthenticationMethodTypes.d.ts +22 -0
  1740. package/dist/v2/userServiceListAuthenticationMethodTypes.d.ts.map +1 -0
  1741. package/dist/v2/userServiceListAuthenticationMethodTypes.js +24 -0
  1742. package/dist/v2/userServiceListAuthenticationMethodTypes.js.map +1 -0
  1743. package/dist/v2/userServiceListIDPLinks.d.ts +22 -0
  1744. package/dist/v2/userServiceListIDPLinks.d.ts.map +1 -0
  1745. package/dist/v2/userServiceListIDPLinks.js +24 -0
  1746. package/dist/v2/userServiceListIDPLinks.js.map +1 -0
  1747. package/dist/v2/userServiceListKeys.d.ts +22 -0
  1748. package/dist/v2/userServiceListKeys.d.ts.map +1 -0
  1749. package/dist/v2/userServiceListKeys.js +24 -0
  1750. package/dist/v2/userServiceListKeys.js.map +1 -0
  1751. package/dist/v2/userServiceListPasskeys.d.ts +22 -0
  1752. package/dist/v2/userServiceListPasskeys.d.ts.map +1 -0
  1753. package/dist/v2/userServiceListPasskeys.js +24 -0
  1754. package/dist/v2/userServiceListPasskeys.js.map +1 -0
  1755. package/dist/v2/userServiceListPersonalAccessTokens.d.ts +22 -0
  1756. package/dist/v2/userServiceListPersonalAccessTokens.d.ts.map +1 -0
  1757. package/dist/v2/userServiceListPersonalAccessTokens.js +24 -0
  1758. package/dist/v2/userServiceListPersonalAccessTokens.js.map +1 -0
  1759. package/dist/v2/userServiceListUserMetadata.d.ts +22 -0
  1760. package/dist/v2/userServiceListUserMetadata.d.ts.map +1 -0
  1761. package/dist/v2/userServiceListUserMetadata.js +24 -0
  1762. package/dist/v2/userServiceListUserMetadata.js.map +1 -0
  1763. package/dist/v2/userServiceListUsers.d.ts +22 -0
  1764. package/dist/v2/userServiceListUsers.d.ts.map +1 -0
  1765. package/dist/v2/userServiceListUsers.js +24 -0
  1766. package/dist/v2/userServiceListUsers.js.map +1 -0
  1767. package/dist/v2/userServiceLockUser.d.ts +22 -0
  1768. package/dist/v2/userServiceLockUser.d.ts.map +1 -0
  1769. package/dist/v2/userServiceLockUser.js +24 -0
  1770. package/dist/v2/userServiceLockUser.js.map +1 -0
  1771. package/dist/v2/userServiceReactivateUser.d.ts +22 -0
  1772. package/dist/v2/userServiceReactivateUser.d.ts.map +1 -0
  1773. package/dist/v2/userServiceReactivateUser.js +24 -0
  1774. package/dist/v2/userServiceReactivateUser.js.map +1 -0
  1775. package/dist/v2/userServiceRegisterPasskey.d.ts +22 -0
  1776. package/dist/v2/userServiceRegisterPasskey.d.ts.map +1 -0
  1777. package/dist/v2/userServiceRegisterPasskey.js +24 -0
  1778. package/dist/v2/userServiceRegisterPasskey.js.map +1 -0
  1779. package/dist/v2/userServiceRegisterTOTP.d.ts +22 -0
  1780. package/dist/v2/userServiceRegisterTOTP.d.ts.map +1 -0
  1781. package/dist/v2/userServiceRegisterTOTP.js +24 -0
  1782. package/dist/v2/userServiceRegisterTOTP.js.map +1 -0
  1783. package/dist/v2/userServiceRegisterU2F.d.ts +22 -0
  1784. package/dist/v2/userServiceRegisterU2F.d.ts.map +1 -0
  1785. package/dist/v2/userServiceRegisterU2F.js +24 -0
  1786. package/dist/v2/userServiceRegisterU2F.js.map +1 -0
  1787. package/dist/v2/userServiceRemoveIDPLink.d.ts +22 -0
  1788. package/dist/v2/userServiceRemoveIDPLink.d.ts.map +1 -0
  1789. package/dist/v2/userServiceRemoveIDPLink.js +24 -0
  1790. package/dist/v2/userServiceRemoveIDPLink.js.map +1 -0
  1791. package/dist/v2/userServiceRemoveKey.d.ts +22 -0
  1792. package/dist/v2/userServiceRemoveKey.d.ts.map +1 -0
  1793. package/dist/v2/userServiceRemoveKey.js +24 -0
  1794. package/dist/v2/userServiceRemoveKey.js.map +1 -0
  1795. package/dist/v2/userServiceRemoveOTPEmail.d.ts +22 -0
  1796. package/dist/v2/userServiceRemoveOTPEmail.d.ts.map +1 -0
  1797. package/dist/v2/userServiceRemoveOTPEmail.js +24 -0
  1798. package/dist/v2/userServiceRemoveOTPEmail.js.map +1 -0
  1799. package/dist/v2/userServiceRemoveOTPSMS.d.ts +22 -0
  1800. package/dist/v2/userServiceRemoveOTPSMS.d.ts.map +1 -0
  1801. package/dist/v2/userServiceRemoveOTPSMS.js +24 -0
  1802. package/dist/v2/userServiceRemoveOTPSMS.js.map +1 -0
  1803. package/dist/v2/userServiceRemovePasskey.d.ts +22 -0
  1804. package/dist/v2/userServiceRemovePasskey.d.ts.map +1 -0
  1805. package/dist/v2/userServiceRemovePasskey.js +24 -0
  1806. package/dist/v2/userServiceRemovePasskey.js.map +1 -0
  1807. package/dist/v2/userServiceRemovePersonalAccessToken.d.ts +22 -0
  1808. package/dist/v2/userServiceRemovePersonalAccessToken.d.ts.map +1 -0
  1809. package/dist/v2/userServiceRemovePersonalAccessToken.js +24 -0
  1810. package/dist/v2/userServiceRemovePersonalAccessToken.js.map +1 -0
  1811. package/dist/v2/userServiceRemoveRecoveryCodes.d.ts +22 -0
  1812. package/dist/v2/userServiceRemoveRecoveryCodes.d.ts.map +1 -0
  1813. package/dist/v2/userServiceRemoveRecoveryCodes.js +24 -0
  1814. package/dist/v2/userServiceRemoveRecoveryCodes.js.map +1 -0
  1815. package/dist/v2/userServiceRemoveSecret.d.ts +22 -0
  1816. package/dist/v2/userServiceRemoveSecret.d.ts.map +1 -0
  1817. package/dist/v2/userServiceRemoveSecret.js +24 -0
  1818. package/dist/v2/userServiceRemoveSecret.js.map +1 -0
  1819. package/dist/v2/userServiceRemoveTOTP.d.ts +22 -0
  1820. package/dist/v2/userServiceRemoveTOTP.d.ts.map +1 -0
  1821. package/dist/v2/userServiceRemoveTOTP.js +24 -0
  1822. package/dist/v2/userServiceRemoveTOTP.js.map +1 -0
  1823. package/dist/v2/userServiceRemoveU2F.d.ts +22 -0
  1824. package/dist/v2/userServiceRemoveU2F.d.ts.map +1 -0
  1825. package/dist/v2/userServiceRemoveU2F.js +24 -0
  1826. package/dist/v2/userServiceRemoveU2F.js.map +1 -0
  1827. package/dist/v2/userServiceResendEmailCode.d.ts +22 -0
  1828. package/dist/v2/userServiceResendEmailCode.d.ts.map +1 -0
  1829. package/dist/v2/userServiceResendEmailCode.js +24 -0
  1830. package/dist/v2/userServiceResendEmailCode.js.map +1 -0
  1831. package/dist/v2/userServiceResendPhoneCode.d.ts +22 -0
  1832. package/dist/v2/userServiceResendPhoneCode.d.ts.map +1 -0
  1833. package/dist/v2/userServiceResendPhoneCode.js +24 -0
  1834. package/dist/v2/userServiceResendPhoneCode.js.map +1 -0
  1835. package/dist/v2/userServiceRetrieveIdentityProviderIntent.d.ts +22 -0
  1836. package/dist/v2/userServiceRetrieveIdentityProviderIntent.d.ts.map +1 -0
  1837. package/dist/v2/userServiceRetrieveIdentityProviderIntent.js +24 -0
  1838. package/dist/v2/userServiceRetrieveIdentityProviderIntent.js.map +1 -0
  1839. package/dist/v2/userServiceSendEmailCode.d.ts +22 -0
  1840. package/dist/v2/userServiceSendEmailCode.d.ts.map +1 -0
  1841. package/dist/v2/userServiceSendEmailCode.js +24 -0
  1842. package/dist/v2/userServiceSendEmailCode.js.map +1 -0
  1843. package/dist/v2/userServiceSetPassword.d.ts +22 -0
  1844. package/dist/v2/userServiceSetPassword.d.ts.map +1 -0
  1845. package/dist/v2/userServiceSetPassword.js +24 -0
  1846. package/dist/v2/userServiceSetPassword.js.map +1 -0
  1847. package/dist/v2/userServiceSetUserMetadata.d.ts +22 -0
  1848. package/dist/v2/userServiceSetUserMetadata.d.ts.map +1 -0
  1849. package/dist/v2/userServiceSetUserMetadata.js +24 -0
  1850. package/dist/v2/userServiceSetUserMetadata.js.map +1 -0
  1851. package/dist/v2/userServiceStartIdentityProviderIntent.d.ts +22 -0
  1852. package/dist/v2/userServiceStartIdentityProviderIntent.d.ts.map +1 -0
  1853. package/dist/v2/userServiceStartIdentityProviderIntent.js +24 -0
  1854. package/dist/v2/userServiceStartIdentityProviderIntent.js.map +1 -0
  1855. package/dist/v2/userServiceUnlockUser.d.ts +22 -0
  1856. package/dist/v2/userServiceUnlockUser.d.ts.map +1 -0
  1857. package/dist/v2/userServiceUnlockUser.js +24 -0
  1858. package/dist/v2/userServiceUnlockUser.js.map +1 -0
  1859. package/dist/v2/userServiceUpdateUser.d.ts +22 -0
  1860. package/dist/v2/userServiceUpdateUser.d.ts.map +1 -0
  1861. package/dist/v2/userServiceUpdateUser.js +24 -0
  1862. package/dist/v2/userServiceUpdateUser.js.map +1 -0
  1863. package/dist/v2/userServiceVerifyEmail.d.ts +22 -0
  1864. package/dist/v2/userServiceVerifyEmail.d.ts.map +1 -0
  1865. package/dist/v2/userServiceVerifyEmail.js +24 -0
  1866. package/dist/v2/userServiceVerifyEmail.js.map +1 -0
  1867. package/dist/v2/userServiceVerifyInviteCode.d.ts +22 -0
  1868. package/dist/v2/userServiceVerifyInviteCode.d.ts.map +1 -0
  1869. package/dist/v2/userServiceVerifyInviteCode.js +24 -0
  1870. package/dist/v2/userServiceVerifyInviteCode.js.map +1 -0
  1871. package/dist/v2/userServiceVerifyPasskeyRegistration.d.ts +22 -0
  1872. package/dist/v2/userServiceVerifyPasskeyRegistration.d.ts.map +1 -0
  1873. package/dist/v2/userServiceVerifyPasskeyRegistration.js +24 -0
  1874. package/dist/v2/userServiceVerifyPasskeyRegistration.js.map +1 -0
  1875. package/dist/v2/userServiceVerifyPhone.d.ts +22 -0
  1876. package/dist/v2/userServiceVerifyPhone.d.ts.map +1 -0
  1877. package/dist/v2/userServiceVerifyPhone.js +24 -0
  1878. package/dist/v2/userServiceVerifyPhone.js.map +1 -0
  1879. package/dist/v2/userServiceVerifyTOTPRegistration.d.ts +22 -0
  1880. package/dist/v2/userServiceVerifyTOTPRegistration.d.ts.map +1 -0
  1881. package/dist/v2/userServiceVerifyTOTPRegistration.js +24 -0
  1882. package/dist/v2/userServiceVerifyTOTPRegistration.js.map +1 -0
  1883. package/dist/v2/userServiceVerifyU2FRegistration.d.ts +22 -0
  1884. package/dist/v2/userServiceVerifyU2FRegistration.d.ts.map +1 -0
  1885. package/dist/v2/userServiceVerifyU2FRegistration.js +24 -0
  1886. package/dist/v2/userServiceVerifyU2FRegistration.js.map +1 -0
  1887. package/dist/v2/userSetPasswordRequestParse.d.ts +11 -0
  1888. package/dist/v2/userSetPasswordRequestParse.d.ts.map +1 -0
  1889. package/dist/v2/userSetPasswordRequestParse.js +11 -0
  1890. package/dist/v2/userSetPasswordRequestParse.js.map +1 -0
  1891. package/dist/v2/userSetUserMetadataRequestParse.d.ts +11 -0
  1892. package/dist/v2/userSetUserMetadataRequestParse.d.ts.map +1 -0
  1893. package/dist/v2/userSetUserMetadataRequestParse.js +11 -0
  1894. package/dist/v2/userSetUserMetadataRequestParse.js.map +1 -0
  1895. package/dist/v2/userStartIdentityProviderIntentRequestParse.d.ts +11 -0
  1896. package/dist/v2/userStartIdentityProviderIntentRequestParse.d.ts.map +1 -0
  1897. package/dist/v2/userStartIdentityProviderIntentRequestParse.js +11 -0
  1898. package/dist/v2/userStartIdentityProviderIntentRequestParse.js.map +1 -0
  1899. package/dist/v2/userUnlockUserRequestParse.d.ts +11 -0
  1900. package/dist/v2/userUnlockUserRequestParse.d.ts.map +1 -0
  1901. package/dist/v2/userUnlockUserRequestParse.js +11 -0
  1902. package/dist/v2/userUnlockUserRequestParse.js.map +1 -0
  1903. package/dist/v2/userUpdateUserRequestParse.d.ts +11 -0
  1904. package/dist/v2/userUpdateUserRequestParse.d.ts.map +1 -0
  1905. package/dist/v2/userUpdateUserRequestParse.js +11 -0
  1906. package/dist/v2/userUpdateUserRequestParse.js.map +1 -0
  1907. package/dist/v2/userVerifyEmailRequestParse.d.ts +11 -0
  1908. package/dist/v2/userVerifyEmailRequestParse.d.ts.map +1 -0
  1909. package/dist/v2/userVerifyEmailRequestParse.js +11 -0
  1910. package/dist/v2/userVerifyEmailRequestParse.js.map +1 -0
  1911. package/dist/v2/userVerifyInviteCodeRequestParse.d.ts +11 -0
  1912. package/dist/v2/userVerifyInviteCodeRequestParse.d.ts.map +1 -0
  1913. package/dist/v2/userVerifyInviteCodeRequestParse.js +11 -0
  1914. package/dist/v2/userVerifyInviteCodeRequestParse.js.map +1 -0
  1915. package/dist/v2/userVerifyPasskeyRegistrationRequestParse.d.ts +11 -0
  1916. package/dist/v2/userVerifyPasskeyRegistrationRequestParse.d.ts.map +1 -0
  1917. package/dist/v2/userVerifyPasskeyRegistrationRequestParse.js +11 -0
  1918. package/dist/v2/userVerifyPasskeyRegistrationRequestParse.js.map +1 -0
  1919. package/dist/v2/userVerifyPhoneRequestParse.d.ts +11 -0
  1920. package/dist/v2/userVerifyPhoneRequestParse.d.ts.map +1 -0
  1921. package/dist/v2/userVerifyPhoneRequestParse.js +11 -0
  1922. package/dist/v2/userVerifyPhoneRequestParse.js.map +1 -0
  1923. package/dist/v2/userVerifyTOTPRegistrationRequestParse.d.ts +11 -0
  1924. package/dist/v2/userVerifyTOTPRegistrationRequestParse.d.ts.map +1 -0
  1925. package/dist/v2/userVerifyTOTPRegistrationRequestParse.js +11 -0
  1926. package/dist/v2/userVerifyTOTPRegistrationRequestParse.js.map +1 -0
  1927. package/dist/v2/userVerifyU2FRegistrationRequestParse.d.ts +11 -0
  1928. package/dist/v2/userVerifyU2FRegistrationRequestParse.d.ts.map +1 -0
  1929. package/dist/v2/userVerifyU2FRegistrationRequestParse.js +11 -0
  1930. package/dist/v2/userVerifyU2FRegistrationRequestParse.js.map +1 -0
  1931. package/docs/action-activate-public-key.md +16 -0
  1932. package/docs/action-add-public-key.md +16 -0
  1933. package/docs/action-create-target.md +16 -0
  1934. package/docs/action-deactivate-public-key.md +16 -0
  1935. package/docs/action-delete-target.md +16 -0
  1936. package/docs/action-get-target.md +16 -0
  1937. package/docs/action-list-execution-functions.md +15 -0
  1938. package/docs/action-list-execution-methods.md +15 -0
  1939. package/docs/action-list-execution-services.md +13 -0
  1940. package/docs/action-list-executions.md +16 -0
  1941. package/docs/action-list-public-keys.md +16 -0
  1942. package/docs/action-list-targets.md +16 -0
  1943. package/docs/action-remove-public-key.md +18 -0
  1944. package/docs/action-set-execution.md +16 -0
  1945. package/docs/action-update-target.md +16 -0
  1946. package/docs/admin-add-google-provider.md +17 -0
  1947. package/docs/admin-list-idps.md +15 -0
  1948. package/docs/api-discovery.md +39 -0
  1949. package/docs/application-create-application-key.md +18 -0
  1950. package/docs/application-create-application.md +16 -0
  1951. package/docs/application-deactivate-application.md +16 -0
  1952. package/docs/application-delete-application-key.md +16 -0
  1953. package/docs/application-delete-application.md +16 -0
  1954. package/docs/application-generate-client-secret.md +16 -0
  1955. package/docs/application-get-application-key.md +16 -0
  1956. package/docs/application-get-application.md +16 -0
  1957. package/docs/application-list-application-keys.md +16 -0
  1958. package/docs/application-list-applications.md +16 -0
  1959. package/docs/application-reactivate-application.md +16 -0
  1960. package/docs/application-update-application.md +16 -0
  1961. package/docs/internal-permission-create-administrator.md +16 -0
  1962. package/docs/internal-permission-delete-administrator.md +16 -0
  1963. package/docs/internal-permission-list-administrators.md +16 -0
  1964. package/docs/internal-permission-update-administrator.md +16 -0
  1965. package/docs/oidc-discovery.md +34 -0
  1966. package/docs/oidc-userinfo.md +28 -0
  1967. package/docs/organization-activate-organization.md +16 -0
  1968. package/docs/organization-add-organization-domain.md +16 -0
  1969. package/docs/organization-add-organization.md +16 -0
  1970. package/docs/organization-deactivate-organization.md +16 -0
  1971. package/docs/organization-delete-organization-domain.md +16 -0
  1972. package/docs/organization-delete-organization-metadata.md +16 -0
  1973. package/docs/organization-delete-organization.md +16 -0
  1974. package/docs/organization-generate-organization-domain-validation.md +16 -0
  1975. package/docs/organization-list-organization-domains.md +16 -0
  1976. package/docs/organization-list-organization-metadata.md +16 -0
  1977. package/docs/organization-list-organizations.md +16 -0
  1978. package/docs/organization-set-organization-metadata.md +16 -0
  1979. package/docs/organization-update-organization.md +16 -0
  1980. package/docs/organization-verify-organization-domain.md +16 -0
  1981. package/docs/project-activate-project-grant.md +16 -0
  1982. package/docs/project-activate-project.md +16 -0
  1983. package/docs/project-add-project-role.md +16 -0
  1984. package/docs/project-create-project-grant.md +16 -0
  1985. package/docs/project-create-project.md +16 -0
  1986. package/docs/project-deactivate-project-grant.md +16 -0
  1987. package/docs/project-deactivate-project.md +16 -0
  1988. package/docs/project-delete-project-grant.md +16 -0
  1989. package/docs/project-delete-project.md +16 -0
  1990. package/docs/project-get-project.md +16 -0
  1991. package/docs/project-list-project-grants.md +16 -0
  1992. package/docs/project-list-project-roles.md +16 -0
  1993. package/docs/project-list-projects.md +16 -0
  1994. package/docs/project-remove-project-role.md +16 -0
  1995. package/docs/project-update-project-grant.md +16 -0
  1996. package/docs/project-update-project-role.md +16 -0
  1997. package/docs/project-update-project.md +16 -0
  1998. package/docs/protocol-device-authorization.md +60 -0
  1999. package/docs/protocol-oauth-token.md +56 -0
  2000. package/docs/user-add-idp-link.md +16 -0
  2001. package/docs/user-add-key.md +16 -0
  2002. package/docs/user-add-otp-email.md +16 -0
  2003. package/docs/user-add-otp-sms.md +16 -0
  2004. package/docs/user-add-personal-access-token.md +18 -0
  2005. package/docs/user-add-secret.md +16 -0
  2006. package/docs/user-create-invite-code.md +16 -0
  2007. package/docs/user-create-passkey-registration-link.md +23 -0
  2008. package/docs/user-create-user.md +16 -0
  2009. package/docs/user-deactivate-user.md +16 -0
  2010. package/docs/user-delete-user-metadata.md +16 -0
  2011. package/docs/user-delete-user.md +16 -0
  2012. package/docs/user-generate-recovery-codes.md +16 -0
  2013. package/docs/user-get-user-by-id.md +16 -0
  2014. package/docs/user-human-mfa-init-skipped.md +16 -0
  2015. package/docs/user-list-authentication-factors.md +16 -0
  2016. package/docs/user-list-authentication-method-types.md +16 -0
  2017. package/docs/user-list-idp-links.md +16 -0
  2018. package/docs/user-list-keys.md +16 -0
  2019. package/docs/user-list-passkeys.md +16 -0
  2020. package/docs/user-list-personal-access-tokens.md +16 -0
  2021. package/docs/user-list-user-metadata.md +16 -0
  2022. package/docs/user-list-users.md +16 -0
  2023. package/docs/user-lock-user.md +16 -0
  2024. package/docs/user-reactivate-user.md +16 -0
  2025. package/docs/user-register-passkey.md +16 -0
  2026. package/docs/user-register-totp.md +16 -0
  2027. package/docs/user-register-u2f.md +16 -0
  2028. package/docs/user-remove-idp-link.md +16 -0
  2029. package/docs/user-remove-key.md +16 -0
  2030. package/docs/user-remove-otp-email.md +16 -0
  2031. package/docs/user-remove-otp-sms.md +16 -0
  2032. package/docs/user-remove-passkey.md +16 -0
  2033. package/docs/user-remove-personal-access-token.md +16 -0
  2034. package/docs/user-remove-recovery-codes.md +16 -0
  2035. package/docs/user-remove-secret.md +16 -0
  2036. package/docs/user-remove-totp.md +16 -0
  2037. package/docs/user-remove-u2f.md +16 -0
  2038. package/docs/user-resend-email-code.md +18 -0
  2039. package/docs/user-resend-phone-code.md +16 -0
  2040. package/docs/user-retrieve-identity-provider-intent.md +16 -0
  2041. package/docs/user-send-email-code.md +16 -0
  2042. package/docs/user-set-password.md +16 -0
  2043. package/docs/user-set-user-metadata.md +16 -0
  2044. package/docs/user-start-identity-provider-intent.md +16 -0
  2045. package/docs/user-unlock-user.md +16 -0
  2046. package/docs/user-update-user.md +16 -0
  2047. package/docs/user-verify-email.md +16 -0
  2048. package/docs/user-verify-invite-code.md +16 -0
  2049. package/docs/user-verify-passkey-registration.md +16 -0
  2050. package/docs/user-verify-phone.md +16 -0
  2051. package/docs/user-verify-totp-registration.md +16 -0
  2052. package/docs/user-verify-u2f-registration.md +16 -0
  2053. package/package.json +185 -0
@@ -0,0 +1,2252 @@
1
+ // @generated by protoc-gen-es v2.14.0 with parameter "target=ts,import_extension=.js,erasable_syntax=true"
2
+ // @generated from file zitadel/admin.proto (package zitadel.admin.v1, syntax proto3)
3
+ /* eslint-disable */
4
+ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import { file_zitadel_idp } from "./idp_pb.js";
6
+ import { file_zitadel_instance } from "./instance_pb.js";
7
+ import { file_zitadel_user } from "./user_pb.js";
8
+ import { file_zitadel_object } from "./object_pb.js";
9
+ import { file_zitadel_options } from "./options_pb.js";
10
+ import { file_zitadel_org } from "./org_pb.js";
11
+ import { file_zitadel_policy } from "./policy_pb.js";
12
+ import { file_zitadel_settings } from "./settings_pb.js";
13
+ import { file_zitadel_text } from "./text_pb.js";
14
+ import { file_zitadel_member } from "./member_pb.js";
15
+ import { file_zitadel_event } from "./event_pb.js";
16
+ import { file_zitadel_management } from "./management_pb.js";
17
+ import { file_zitadel_v1 } from "./v1_pb.js";
18
+ import { file_zitadel_milestone_v1_milestone } from "./milestone/v1/milestone_pb.js";
19
+ import { file_google_api_annotations } from "../google/api/annotations_pb.js";
20
+ import { file_google_api_field_behavior } from "../google/api/field_behavior_pb.js";
21
+ import { file_google_protobuf_duration, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
22
+ import { file_protoc_gen_openapiv2_options_annotations } from "../protoc-gen-openapiv2/options/annotations_pb.js";
23
+ import { file_validate_validate } from "../validate/validate_pb.js";
24
+ /**
25
+ * Describes the file zitadel/admin.proto.
26
+ */
27
+ export const file_zitadel_admin = /*@__PURE__*/ fileDesc("ChN6aXRhZGVsL2FkbWluLnByb3RvEhB6aXRhZGVsLmFkbWluLnYxIhAKDkhlYWx0aHpSZXF1ZXN0IhEKD0hlYWx0aHpSZXNwb25zZSIeChxHZXRTdXBwb3J0ZWRMYW5ndWFnZXNSZXF1ZXN0IksKHUdldFN1cHBvcnRlZExhbmd1YWdlc1Jlc3BvbnNlEioKCWxhbmd1YWdlcxgBIAMoCUIXkkEUShJbImVuIiwgImRlIiwgIml0Il0iHAoaR2V0QWxsb3dlZExhbmd1YWdlc1JlcXVlc3QiSQobR2V0QWxsb3dlZExhbmd1YWdlc1Jlc3BvbnNlEioKCWxhbmd1YWdlcxgBIAMoCUIXkkEUShJbImVuIiwgImRlIiwgIml0Il0iSgoZU2V0RGVmYXVsdExhbmd1YWdlUmVxdWVzdBItCghsYW5ndWFnZRgBIAEoCUIbkkELSgQiZW4ieAqAAQHiQQEC+kIGcgQQARgKIkgKGlNldERlZmF1bHRMYW5ndWFnZVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiGwoZR2V0RGVmYXVsdExhbmd1YWdlUmVxdWVzdCI5ChpHZXREZWZhdWx0TGFuZ3VhZ2VSZXNwb25zZRIbCghsYW5ndWFnZRgBIAEoCUIJkkEGSgQiZW4iIjIKFFNldERlZmF1bHRPcmdSZXF1ZXN0EhoKBm9yZ19pZBgBIAEoCUIK+kIHcgUQARjIASJDChVTZXREZWZhdWx0T3JnUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIWChRHZXREZWZhdWx0T3JnUmVxdWVzdCI5ChVHZXREZWZhdWx0T3JnUmVzcG9uc2USIAoDb3JnGAEgASgLMhMueml0YWRlbC5vcmcudjEuT3JnIhYKFEdldE15SW5zdGFuY2VSZXF1ZXN0Ik4KFUdldE15SW5zdGFuY2VSZXNwb25zZRI1CghpbnN0YW5jZRgBIAEoCzIjLnppdGFkZWwuaW5zdGFuY2UudjEuSW5zdGFuY2VEZXRhaWwiuQEKGkxpc3RJbnN0YW5jZURvbWFpbnNSZXF1ZXN0EiQKBXF1ZXJ5GAEgASgLMhUueml0YWRlbC52MS5MaXN0UXVlcnkSPAoOc29ydGluZ19jb2x1bW4YAiABKA4yJC56aXRhZGVsLmluc3RhbmNlLnYxLkRvbWFpbkZpZWxkTmFtZRI3CgdxdWVyaWVzGAMgAygLMiYueml0YWRlbC5pbnN0YW5jZS52MS5Eb21haW5TZWFyY2hRdWVyeSKyAQobTGlzdEluc3RhbmNlRG9tYWluc1Jlc3BvbnNlEigKB2RldGFpbHMYASABKAsyFy56aXRhZGVsLnYxLkxpc3REZXRhaWxzEjwKDnNvcnRpbmdfY29sdW1uGAIgASgOMiQueml0YWRlbC5pbnN0YW5jZS52MS5Eb21haW5GaWVsZE5hbWUSKwoGcmVzdWx0GAMgAygLMhsueml0YWRlbC5pbnN0YW5jZS52MS5Eb21haW4ixwEKIUxpc3RJbnN0YW5jZVRydXN0ZWREb21haW5zUmVxdWVzdBIkCgVxdWVyeRgBIAEoCzIVLnppdGFkZWwudjEuTGlzdFF1ZXJ5EjwKDnNvcnRpbmdfY29sdW1uGAIgASgOMiQueml0YWRlbC5pbnN0YW5jZS52MS5Eb21haW5GaWVsZE5hbWUSPgoHcXVlcmllcxgDIAMoCzItLnppdGFkZWwuaW5zdGFuY2UudjEuVHJ1c3RlZERvbWFpblNlYXJjaFF1ZXJ5IsABCiJMaXN0SW5zdGFuY2VUcnVzdGVkRG9tYWluc1Jlc3BvbnNlEigKB2RldGFpbHMYASABKAsyFy56aXRhZGVsLnYxLkxpc3REZXRhaWxzEjwKDnNvcnRpbmdfY29sdW1uGAIgASgOMiQueml0YWRlbC5pbnN0YW5jZS52MS5Eb21haW5GaWVsZE5hbWUSMgoGcmVzdWx0GAMgAygLMiIueml0YWRlbC5pbnN0YW5jZS52MS5UcnVzdGVkRG9tYWluIl8KH0FkZEluc3RhbmNlVHJ1c3RlZERvbWFpblJlcXVlc3QSPAoGZG9tYWluGAEgASgJQiySQRtKEyJsb2dpbi5leGFtcGxlLmNvbSJ4/QGAAQHiQQEC+kIHcgUQARj9ASJOCiBBZGRJbnN0YW5jZVRydXN0ZWREb21haW5SZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzImIKIlJlbW92ZUluc3RhbmNlVHJ1c3RlZERvbWFpblJlcXVlc3QSPAoGZG9tYWluGAEgASgJQiySQRtKEyJsb2dpbi5leGFtcGxlLmNvbSJ4/QGAAQHiQQEC+kIHcgUQARj9ASJRCiNSZW1vdmVJbnN0YW5jZVRydXN0ZWREb21haW5SZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIn8KG0xpc3RTZWNyZXRHZW5lcmF0b3JzUmVxdWVzdBIkCgVxdWVyeRgBIAEoCzIVLnppdGFkZWwudjEuTGlzdFF1ZXJ5EjoKB3F1ZXJpZXMYAiADKAsyKS56aXRhZGVsLnNldHRpbmdzLnYxLlNlY3JldEdlbmVyYXRvclF1ZXJ5In4KHExpc3RTZWNyZXRHZW5lcmF0b3JzUmVzcG9uc2USKAoHZGV0YWlscxgBIAEoCzIXLnppdGFkZWwudjEuTGlzdERldGFpbHMSNAoGcmVzdWx0GAMgAygLMiQueml0YWRlbC5zZXR0aW5ncy52MS5TZWNyZXRHZW5lcmF0b3IiaQoZR2V0U2VjcmV0R2VuZXJhdG9yUmVxdWVzdBJMCg5nZW5lcmF0b3JfdHlwZRgBIAEoDjIoLnppdGFkZWwuc2V0dGluZ3MudjEuU2VjcmV0R2VuZXJhdG9yVHlwZUIK+kIHggEEEAEgACJcChpHZXRTZWNyZXRHZW5lcmF0b3JSZXNwb25zZRI+ChBzZWNyZXRfZ2VuZXJhdG9yGAEgASgLMiQueml0YWRlbC5zZXR0aW5ncy52MS5TZWNyZXRHZW5lcmF0b3IirAIKHFVwZGF0ZVNlY3JldEdlbmVyYXRvclJlcXVlc3QSTAoOZ2VuZXJhdG9yX3R5cGUYASABKA4yKC56aXRhZGVsLnNldHRpbmdzLnYxLlNlY3JldEdlbmVyYXRvclR5cGVCCvpCB4IBBBABIAASFgoGbGVuZ3RoGAIgASgNQgaSQQNKATYSNwoGZXhwaXJ5GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQgySQQlKByIzNjAwcyISHQoVaW5jbHVkZV9sb3dlcl9sZXR0ZXJzGAQgASgIEh0KFWluY2x1ZGVfdXBwZXJfbGV0dGVycxgFIAEoCBIWCg5pbmNsdWRlX2RpZ2l0cxgGIAEoCBIXCg9pbmNsdWRlX3N5bWJvbHMYByABKAgiSwodVXBkYXRlU2VjcmV0R2VuZXJhdG9yUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIWChRHZXRTTVRQQ29uZmlnUmVxdWVzdCJNChVHZXRTTVRQQ29uZmlnUmVzcG9uc2USNAoLc210cF9jb25maWcYASABKAsyHy56aXRhZGVsLnNldHRpbmdzLnYxLlNNVFBDb25maWciMQoYR2V0U01UUENvbmZpZ0J5SWRSZXF1ZXN0EhUKAmlkGAEgASgJQgn6QgZyBBABGGQiUQoZR2V0U01UUENvbmZpZ0J5SWRSZXNwb25zZRI0CgtzbXRwX2NvbmZpZxgBIAEoCzIfLnppdGFkZWwuc2V0dGluZ3MudjEuU01UUENvbmZpZyI+ChZMaXN0U01UUENvbmZpZ3NSZXF1ZXN0EiQKBXF1ZXJ5GAEgASgLMhUueml0YWRlbC52MS5MaXN0UXVlcnkidAoXTGlzdFNNVFBDb25maWdzUmVzcG9uc2USKAoHZGV0YWlscxgBIAEoCzIXLnppdGFkZWwudjEuTGlzdERldGFpbHMSLwoGcmVzdWx0GAIgAygLMh8ueml0YWRlbC5zZXR0aW5ncy52MS5TTVRQQ29uZmlnIvoDChRBZGRTTVRQQ29uZmlnUmVxdWVzdBJKCg5zZW5kZXJfYWRkcmVzcxgBIAEoCUIykkEhShkibm9yZXBseUBtLnppdGFkZWwuY2xvdWQieMgBgAEB4kEBAvpCB3IFEAEYyAESNwoLc2VuZGVyX25hbWUYAiABKAlCIpJBEUoJIlpJVEFERUwieMgBgAEB4kEBAvpCB3IFEAEYyAESCwoDdGxzGAMgASgIEmEKBGhvc3QYBCABKAlCU5JBQjIeTWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHBvcnQuShoic210cC5wb3N0bWFya2FwcC5jb206NTg3Inj0A4ABAeJBAQL6QgdyBRABGPQDEjkKBHVzZXIYBSABKAlCK5JBKEomIjE5N2YwMTE3LTUyOWUtNDQzZC1iZjZjLTAyOTJkZDlhMDJiNyISLAoIcGFzc3dvcmQYBiABKAlCGpJBF0oVInRoaXMtaXMtbXktcGFzc3dvcmQiEkUKEHJlcGx5X3RvX2FkZHJlc3MYByABKAlCK5JBHkoZInJlcGx5dG9AbS56aXRhZGVsLmNsb3VkInjIAfpCB3IFEAAYyAESPQoLZGVzY3JpcHRpb24YCCABKAlCKJJBG0oWInByb3ZpZGVyIGRlc2NyaXB0aW9uInjIAfpCB3IFEAAYyAEiTwoVQWRkU01UUENvbmZpZ1Jlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMSCgoCaWQYAiABKAkimgQKF1VwZGF0ZVNNVFBDb25maWdSZXF1ZXN0EkoKDnNlbmRlcl9hZGRyZXNzGAEgASgJQjKSQSFKGSJub3JlcGx5QG0ueml0YWRlbC5jbG91ZCJ4yAGAAQHiQQEC+kIHcgUQARjIARI3CgtzZW5kZXJfbmFtZRgCIAEoCUIikkERSgkiWklUQURFTCJ4yAGAAQHiQQEC+kIHcgUQARjIARILCgN0bHMYAyABKAgSYQoEaG9zdBgEIAEoCUJTkkFCMh5NYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgcG9ydC5KGiJzbXRwLnBvc3RtYXJrYXBwLmNvbTo1ODciePQDgAEB4kEBAvpCB3IFEAEY9AMSOQoEdXNlchgFIAEoCUIrkkEoSiYiMTk3ZjAxMTctNTI5ZS00NDNkLWJmNmMtMDI5MmRkOWEwMmI3IhJIChByZXBseV90b19hZGRyZXNzGAYgASgJQi6SQSFKGSJyZXBseXRvQG0ueml0YWRlbC5jbG91ZCJ4yAGAAQH6QgdyBRAAGMgBEiwKCHBhc3N3b3JkGAcgASgJQhqSQRdKFSJ0aGlzLWlzLW15LXBhc3N3b3JkIhJACgtkZXNjcmlwdGlvbhgIIAEoCUIrkkEeShYicHJvdmlkZXIgZGVzY3JpcHRpb24ieMgBgAEB+kIHcgUQABjIARIVCgJpZBgJIAEoCUIJ+kIGcgQQARhkIkYKGFVwZGF0ZVNNVFBDb25maWdSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIm4KH1VwZGF0ZVNNVFBDb25maWdQYXNzd29yZFJlcXVlc3QSNAoIcGFzc3dvcmQYASABKAlCIpJBH0odInRoaXMtaXMtbXktdXBkYXRlZC1wYXNzd29yZCISFQoCaWQYAiABKAlCCfpCBnIEEAEYZCJOCiBVcGRhdGVTTVRQQ29uZmlnUGFzc3dvcmRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIjMKGUFjdGl2YXRlU01UUENvbmZpZ1JlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiSAoaQWN0aXZhdGVTTVRQQ29uZmlnUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyI1ChtEZWFjdGl2YXRlU01UUENvbmZpZ1JlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiSgocRGVhY3RpdmF0ZVNNVFBDb25maWdSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIjAKF1JlbW92ZVNNVFBDb25maWdSZXF1ZXN0EhUKAmlkGAEgASgJQgn6QgZyBBABGGQiRgoYUmVtb3ZlU01UUENvbmZpZ1Jlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiggEKGVRlc3RTTVRQQ29uZmlnQnlJZFJlcXVlc3QSFQoCaWQYASABKAlCCfpCBnIEEAEYZBJOChByZWNlaXZlcl9hZGRyZXNzGAIgASgJQjSSQSFKGSJub3JlcGx5QG0ueml0YWRlbC5jbG91ZCJ4yAGAAQHiQQEC+kIJcgcQARjIAWABIhwKGlRlc3RTTVRQQ29uZmlnQnlJZFJlc3BvbnNlItcEChVUZXN0U01UUENvbmZpZ1JlcXVlc3QSSgoOc2VuZGVyX2FkZHJlc3MYASABKAlCMpJBIUoZIm5vcmVwbHlAbS56aXRhZGVsLmNsb3VkInjIAYABAeJBAQL6QgdyBRABGMgBEjcKC3NlbmRlcl9uYW1lGAIgASgJQiKSQRFKCSJaSVRBREVMInjIAYABAeJBAQL6QgdyBRABGMgBEgsKA3RscxgDIAEoCBJhCgRob3N0GAQgASgJQlOSQUIyHk1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBwb3J0LkoaInNtdHAucG9zdG1hcmthcHAuY29tOjU4NyJ49AOAAQHiQQEC+kIHcgUQARj0AxI5CgR1c2VyGAUgASgJQiuSQShKJiIxOTdmMDExNy01MjllLTQ0M2QtYmY2Yy0wMjkyZGQ5YTAyYjciEiwKCHBhc3N3b3JkGAYgASgJQhqSQRdKFSJ0aGlzLWlzLW15LXBhc3N3b3JkIhJOChByZWNlaXZlcl9hZGRyZXNzGAcgASgJQjSSQSFKGSJub3JlcGx5QG0ueml0YWRlbC5jbG91ZCJ4yAGAAQHiQQEC+kIJcgcQARjIAWABEo8BCgJpZBgIIAEoCUKCAZJBfzJnWml0YWRlbCBTTVRQIHByb3ZpZGVyIGlkIGluIGNhc2UgeW91IGFyZSBub3Qgc2VuZGluZyB0aGUgcGFzc3dvcmQgYW5kIHdhbnQgdG8gcmV1c2UgdGhlIHN0b3JlZCBwYXNzd29yZEoUIjI2NzE5MTM2OTUxNTEzOTQ2NCIiGAoWVGVzdFNNVFBDb25maWdSZXNwb25zZSIZChdHZXRFbWFpbFByb3ZpZGVyUmVxdWVzdCJOChhHZXRFbWFpbFByb3ZpZGVyUmVzcG9uc2USMgoGY29uZmlnGAEgASgLMiIueml0YWRlbC5zZXR0aW5ncy52MS5FbWFpbFByb3ZpZGVyIjQKG0dldEVtYWlsUHJvdmlkZXJCeUlkUmVxdWVzdBIVCgJpZBgBIAEoCUIJ+kIGcgQQARhkIlIKHEdldEVtYWlsUHJvdmlkZXJCeUlkUmVzcG9uc2USMgoGY29uZmlnGAEgASgLMiIueml0YWRlbC5zZXR0aW5ncy52MS5FbWFpbFByb3ZpZGVyIkEKGUxpc3RFbWFpbFByb3ZpZGVyc1JlcXVlc3QSJAoFcXVlcnkYASABKAsyFS56aXRhZGVsLnYxLkxpc3RRdWVyeSJ6ChpMaXN0RW1haWxQcm92aWRlcnNSZXNwb25zZRIoCgdkZXRhaWxzGAEgASgLMhcueml0YWRlbC52MS5MaXN0RGV0YWlscxIyCgZyZXN1bHQYAiADKAsyIi56aXRhZGVsLnNldHRpbmdzLnYxLkVtYWlsUHJvdmlkZXIinwUKG0FkZEVtYWlsUHJvdmlkZXJTTVRQUmVxdWVzdBJKCg5zZW5kZXJfYWRkcmVzcxgBIAEoCUIykkEhShkibm9yZXBseUBtLnppdGFkZWwuY2xvdWQieMgBgAEB4kEBAvpCB3IFEAEYyAESNwoLc2VuZGVyX25hbWUYAiABKAlCIpJBEUoJIlpJVEFERUwieMgBgAEB4kEBAvpCB3IFEAEYyAESCwoDdGxzGAMgASgIEmEKBGhvc3QYBCABKAlCU5JBQjIeTWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIHBvcnQuShoic210cC5wb3N0bWFya2FwcC5jb206NTg3Inj0A4ABAeJBAQL6QgdyBRABGPQDEjkKBHVzZXIYBSABKAlCK5JBKEomIjE5N2YwMTE3LTUyOWUtNDQzZC1iZjZjLTAyOTJkZDlhMDJiNyISLAoIcGFzc3dvcmQYBiABKAlCGpJBF0oVInRoaXMtaXMtbXktcGFzc3dvcmQiEkUKEHJlcGx5X3RvX2FkZHJlc3MYByABKAlCK5JBHkoZInJlcGx5dG9AbS56aXRhZGVsLmNsb3VkInjIAfpCB3IFEAAYyAESPQoLZGVzY3JpcHRpb24YCCABKAlCKJJBG0oWInByb3ZpZGVyIGRlc2NyaXB0aW9uInjIAfpCB3IFEAAYyAESLAoEbm9uZRgJIAEoCzIcLnppdGFkZWwuYWRtaW4udjEuU01UUE5vQXV0aEgAEjAKBXBsYWluGAogASgLMh8ueml0YWRlbC5hZG1pbi52MS5TTVRQUGxhaW5BdXRoSAASNAoHeG9hdXRoMhgLIAEoCzIhLnppdGFkZWwuYWRtaW4udjEuU01UUFhPQXV0aDJBdXRoSABCBgoEQXV0aCIMCgpTTVRQTm9BdXRoIlAKDVNNVFBQbGFpbkF1dGgSPwoIcGFzc3dvcmQYASABKAlCLZJBHEoaInRoaXMtaXMtbXktY2xpZW50LXNlY3JldCLiQQEC+kIHcgUQABjIASK4AwoPU01UUFhPQXV0aDJBdXRoEk0KDnRva2VuX2VuZHBvaW50GAEgASgJQjWSQSRKHyJodHRwOi8vYXV0aC5leGFtcGxlLmNvbS90b2tlbiJ4yAHiQQEC+kIHcgUQABjIARJFCgZzY29wZXMYAiADKAlCNZJBHkocWyJodHRwczovL21haWwuZXhhbXBsZS5jb20iXeJBAQL6Qg2SAQoQFCIGcgQQARhkElEKEmNsaWVudF9jcmVkZW50aWFscxgDIAEoCzIzLnppdGFkZWwuYWRtaW4udjEuU01UUFhPQXV0aDJBdXRoLkNsaWVudENyZWRlbnRpYWxzSAAarQEKEUNsaWVudENyZWRlbnRpYWxzEk8KCWNsaWVudF9pZBgBIAEoCUI8kkErSiYiMTk3ZjAxMTctNTI5ZS00NDNkLWJmNmMtMDI5MmRkOWEwMmI3InjIAeJBAQL6QgdyBRAAGMgBEkcKDWNsaWVudF9zZWNyZXQYAiABKAlCMJJBH0oaInRoaXMtaXMtbXktY2xpZW50LXNlY3JldCJ4yAHiQQEC+kIHcgUQABjIAUIMCgpPQXV0aDJUeXBlIlYKHEFkZEVtYWlsUHJvdmlkZXJTTVRQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCSK5BQoeVXBkYXRlRW1haWxQcm92aWRlclNNVFBSZXF1ZXN0EkoKDnNlbmRlcl9hZGRyZXNzGAEgASgJQjKSQSFKGSJub3JlcGx5QG0ueml0YWRlbC5jbG91ZCJ4yAGAAQHiQQEC+kIHcgUQARjIARI3CgtzZW5kZXJfbmFtZRgCIAEoCUIikkERSgkiWklUQURFTCJ4yAGAAQHiQQEC+kIHcgUQARjIARILCgN0bHMYAyABKAgSYQoEaG9zdBgEIAEoCUJTkkFCMh5NYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgcG9ydC5KGiJzbXRwLnBvc3RtYXJrYXBwLmNvbTo1ODciePQDgAEB4kEBAvpCB3IFEAEY9AMSOQoEdXNlchgFIAEoCUIrkkEoSiYiMTk3ZjAxMTctNTI5ZS00NDNkLWJmNmMtMDI5MmRkOWEwMmI3IhJFChByZXBseV90b19hZGRyZXNzGAYgASgJQiuSQR5KGSJyZXBseXRvQG0ueml0YWRlbC5jbG91ZCJ4yAH6QgdyBRAAGMgBEiwKCHBhc3N3b3JkGAcgASgJQhqSQRdKFSJ0aGlzLWlzLW15LXBhc3N3b3JkIhI9CgtkZXNjcmlwdGlvbhgIIAEoCUIokkEbShYicHJvdmlkZXIgZGVzY3JpcHRpb24ieMgB+kIHcgUQABjIARIVCgJpZBgJIAEoCUIJ+kIGcgQQARhkEiwKBG5vbmUYCiABKAsyHC56aXRhZGVsLmFkbWluLnYxLlNNVFBOb0F1dGhIABIwCgVwbGFpbhgLIAEoCzIfLnppdGFkZWwuYWRtaW4udjEuU01UUFBsYWluQXV0aEgAEjQKB3hvYXV0aDIYDCABKAsyIS56aXRhZGVsLmFkbWluLnYxLlNNVFBYT0F1dGgyQXV0aEgAQgYKBEF1dGgiTQofVXBkYXRlRW1haWxQcm92aWRlclNNVFBSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzInUKJlVwZGF0ZUVtYWlsUHJvdmlkZXJTTVRQUGFzc3dvcmRSZXF1ZXN0EjQKCHBhc3N3b3JkGAEgASgJQiKSQR9KHSJ0aGlzLWlzLW15LXVwZGF0ZWQtcGFzc3dvcmQiEhUKAmlkGAIgASgJQgn6QgZyBBABGGQiVQonVXBkYXRlRW1haWxQcm92aWRlclNNVFBQYXNzd29yZFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMirAEKG0FkZEVtYWlsUHJvdmlkZXJIVFRQUmVxdWVzdBJOCghlbmRwb2ludBgBIAEoCUI8kkErSiMiaHR0cDovL3JlbGF5LmV4YW1wbGUuY29tL3Byb3ZpZGVyIniAEIABAeJBAQL6QgdyBRABGIAQEj0KC2Rlc2NyaXB0aW9uGAIgASgJQiiSQRtKFiJwcm92aWRlciBkZXNjcmlwdGlvbiJ4yAH6QgdyBRAAGMgBInwKHEFkZEVtYWlsUHJvdmlkZXJIVFRQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCRIkCgtzaWduaW5nX2tleRgDIAEoCUIPkkEMSgoiOThLbXNVNjciIrQCCh5VcGRhdGVFbWFpbFByb3ZpZGVySFRUUFJlcXVlc3QSFQoCaWQYASABKAlCCfpCBnIEEAEYZBJOCghlbmRwb2ludBgCIAEoCUI8kkErSiMiaHR0cDovL3JlbGF5LmV4YW1wbGUuY29tL3Byb3ZpZGVyIniAEIABAeJBAQL6QgdyBRABGIAQEj0KC2Rlc2NyaXB0aW9uGAMgASgJQiiSQRtKFiJwcm92aWRlciBkZXNjcmlwdGlvbiJ4yAH6QgdyBRAAGMgBElEKFmV4cGlyYXRpb25fc2lnbmluZ19rZXkYBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CEZJBBkoEIjBzIvpCBaoBAhIASACIAQFCGQoXX2V4cGlyYXRpb25fc2lnbmluZ19rZXkiiAEKH1VwZGF0ZUVtYWlsUHJvdmlkZXJIVFRQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIpCgtzaWduaW5nX2tleRgCIAEoCUIPkkEMSgoiOThLbXNVNjciSACIAQFCDgoMX3NpZ25pbmdfa2V5IjYKHEFjdGl2YXRlRW1haWxQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiSwodQWN0aXZhdGVFbWFpbFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyI4Ch5EZWFjdGl2YXRlRW1haWxQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiTQofRGVhY3RpdmF0ZUVtYWlsUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIjMKGlJlbW92ZUVtYWlsUHJvdmlkZXJSZXF1ZXN0EhUKAmlkGAEgASgJQgn6QgZyBBABGGQiSQobUmVtb3ZlRW1haWxQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiiQEKIFRlc3RFbWFpbFByb3ZpZGVyU01UUEJ5SWRSZXF1ZXN0EhUKAmlkGAEgASgJQgn6QgZyBBABGGQSTgoQcmVjZWl2ZXJfYWRkcmVzcxgCIAEoCUI0kkEhShkibm9yZXBseUBtLnppdGFkZWwuY2xvdWQieMgBgAEB4kEBAvpCCXIHEAEYyAFgASIjCiFUZXN0RW1haWxQcm92aWRlclNNVFBCeUlkUmVzcG9uc2Ui/AUKHFRlc3RFbWFpbFByb3ZpZGVyU01UUFJlcXVlc3QSSgoOc2VuZGVyX2FkZHJlc3MYASABKAlCMpJBIUoZIm5vcmVwbHlAbS56aXRhZGVsLmNsb3VkInjIAYABAeJBAQL6QgdyBRABGMgBEjcKC3NlbmRlcl9uYW1lGAIgASgJQiKSQRFKCSJaSVRBREVMInjIAYABAeJBAQL6QgdyBRABGMgBEgsKA3RscxgDIAEoCBJhCgRob3N0GAQgASgJQlOSQUIyHk1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBwb3J0LkoaInNtdHAucG9zdG1hcmthcHAuY29tOjU4NyJ49AOAAQHiQQEC+kIHcgUQARj0AxI5CgR1c2VyGAUgASgJQiuSQShKJiIxOTdmMDExNy01MjllLTQ0M2QtYmY2Yy0wMjkyZGQ5YTAyYjciEiwKCHBhc3N3b3JkGAYgASgJQhqSQRdKFSJ0aGlzLWlzLW15LXBhc3N3b3JkIhJOChByZWNlaXZlcl9hZGRyZXNzGAcgASgJQjSSQSFKGSJub3JlcGx5QG0ueml0YWRlbC5jbG91ZCJ4yAGAAQHiQQEC+kIJcgcQARjIAWABEo8BCgJpZBgIIAEoCUKCAZJBfzJnWml0YWRlbCBTTVRQIHByb3ZpZGVyIGlkIGluIGNhc2UgeW91IGFyZSBub3Qgc2VuZGluZyB0aGUgcGFzc3dvcmQgYW5kIHdhbnQgdG8gcmV1c2UgdGhlIHN0b3JlZCBwYXNzd29yZEoUIjI2NzE5MTM2OTUxNTEzOTQ2NCISLAoEbm9uZRgJIAEoCzIcLnppdGFkZWwuYWRtaW4udjEuU01UUE5vQXV0aEgAEjAKBXBsYWluGAogASgLMh8ueml0YWRlbC5hZG1pbi52MS5TTVRQUGxhaW5BdXRoSAASNAoHeG9hdXRoMhgLIAEoCzIhLnppdGFkZWwuYWRtaW4udjEuU01UUFhPQXV0aDJBdXRoSABCBgoEQXV0aCIfCh1UZXN0RW1haWxQcm92aWRlclNNVFBSZXNwb25zZSI/ChdMaXN0U01TUHJvdmlkZXJzUmVxdWVzdBIkCgVxdWVyeRgBIAEoCzIVLnppdGFkZWwudjEuTGlzdFF1ZXJ5InYKGExpc3RTTVNQcm92aWRlcnNSZXNwb25zZRIoCgdkZXRhaWxzGAEgASgLMhcueml0YWRlbC52MS5MaXN0RGV0YWlscxIwCgZyZXN1bHQYAyADKAsyIC56aXRhZGVsLnNldHRpbmdzLnYxLlNNU1Byb3ZpZGVyIi4KFUdldFNNU1Byb3ZpZGVyUmVxdWVzdBIVCgJpZBgBIAEoCUIJ+kIGcgQQARhkIkoKFkdldFNNU1Byb3ZpZGVyUmVzcG9uc2USMAoGY29uZmlnGAEgASgLMiAueml0YWRlbC5zZXR0aW5ncy52MS5TTVNQcm92aWRlciLzAgobQWRkU01TUHJvdmlkZXJUd2lsaW9SZXF1ZXN0EkoKA3NpZBgBIAEoCUI9kkEsSiQiQUIxMjNiOWU2MWQyMzhhYmFlN2QzYmU3YjY1ZWNiYzk4NyJ4yAGAAQHiQQEC+kIHcgUQARjIARImCgV0b2tlbhgCIAEoCUIXkkEGeMgBgAEB4kEBAvpCB3IFEAEYyAESTQoNc2VuZGVyX251bWJlchgDIAEoCUI2kkEpSiQiQUIxMjNiOWU2MWQyMzhhYmFlN2QzYmU3YjY1ZWNiYzk4NyJ4yAH6QgdyBRAAGMgBEj0KC2Rlc2NyaXB0aW9uGAQgASgJQiiSQRtKFiJwcm92aWRlciBkZXNjcmlwdGlvbiJ4yAH6QgdyBRAAGMgBElIKEnZlcmlmeV9zZXJ2aWNlX3NpZBgFIAEoCUI2kkEpSiQiQUIxMjNiOWU2MWQyMzhhYmFlN2QzYmU3YjY1ZWNiYzk4NyJ4yAH6QgdyBRAAGMgBIlYKHEFkZFNNU1Byb3ZpZGVyVHdpbGlvUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCSLpAgoeVXBkYXRlU01TUHJvdmlkZXJUd2lsaW9SZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBEkoKA3NpZBgCIAEoCUI9kkEsSiQiQUIxMjNiOWU2MWQyMzhhYmFlN2QzYmU3YjY1ZWNiYzk4NyJ4yAGAAQHiQQEC+kIHcgUQARjIARJQCg1zZW5kZXJfbnVtYmVyGAMgASgJQjmSQSxKJCJBQjEyM2I5ZTYxZDIzOGFiYWU3ZDNiZTdiNjVlY2JjOTg3InjIAYABAfpCB3IFEAAYyAESPQoLZGVzY3JpcHRpb24YBCABKAlCKJJBG0oWInByb3ZpZGVyIGRlc2NyaXB0aW9uInjIAfpCB3IFEAAYyAESUgoSdmVyaWZ5X3NlcnZpY2Vfc2lkGAUgASgJQjaSQSlKJCJBQjEyM2I5ZTYxZDIzOGFiYWU3ZDNiZTdiNjVlY2JjOTg3InjIAfpCB3IFEAAYyAEiTQofVXBkYXRlU01TUHJvdmlkZXJUd2lsaW9SZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIlgKI1VwZGF0ZVNNU1Byb3ZpZGVyVHdpbGlvVG9rZW5SZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBEhkKBXRva2VuGAIgASgJQgr6QgdyBRABGMgBIlIKJFVwZGF0ZVNNU1Byb3ZpZGVyVHdpbGlvVG9rZW5SZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIqoBChlBZGRTTVNQcm92aWRlckhUVFBSZXF1ZXN0Ek4KCGVuZHBvaW50GAEgASgJQjySQStKIyJodHRwOi8vcmVsYXkuZXhhbXBsZS5jb20vcHJvdmlkZXIieIAQgAEB4kEBAvpCB3IFEAEYgBASPQoLZGVzY3JpcHRpb24YAiABKAlCKJJBG0oWInByb3ZpZGVyIGRlc2NyaXB0aW9uInjIAfpCB3IFEAAYyAEiegoaQWRkU01TUHJvdmlkZXJIVFRQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCRIkCgtzaWduaW5nX2tleRgDIAEoCUIPkkEMSgoiOThLbXNVNjciIrMCChxVcGRhdGVTTVNQcm92aWRlckhUVFBSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBEk4KCGVuZHBvaW50GAIgASgJQjySQStKIyJodHRwOi8vcmVsYXkuZXhhbXBsZS5jb20vcHJvdmlkZXIieIAQgAEB4kEBAvpCB3IFEAEYgBASPQoLZGVzY3JpcHRpb24YAyABKAlCKJJBG0oWInByb3ZpZGVyIGRlc2NyaXB0aW9uInjIAfpCB3IFEAAYyAESUQoWZXhwaXJhdGlvbl9zaWduaW5nX2tleRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkIRkkEGSgQiMHMi+kIFqgECEgBIAIgBAUIZChdfZXhwaXJhdGlvbl9zaWduaW5nX2tleSKGAQodVXBkYXRlU01TUHJvdmlkZXJIVFRQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIpCgtzaWduaW5nX2tleRgCIAEoCUIPkkEMSgoiOThLbXNVNjciSACIAQFCDgoMX3NpZ25pbmdfa2V5IjQKGkFjdGl2YXRlU01TUHJvdmlkZXJSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBIkkKG0FjdGl2YXRlU01TUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIjYKHERlYWN0aXZhdGVTTVNQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiSwodRGVhY3RpdmF0ZVNNU1Byb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIyChhSZW1vdmVTTVNQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiRwoZUmVtb3ZlU01TUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIioKKEdldEZpbGVTeXN0ZW1Ob3RpZmljYXRpb25Qcm92aWRlclJlcXVlc3QibQopR2V0RmlsZVN5c3RlbU5vdGlmaWNhdGlvblByb3ZpZGVyUmVzcG9uc2USQAoIcHJvdmlkZXIYASABKAsyLi56aXRhZGVsLnNldHRpbmdzLnYxLkRlYnVnTm90aWZpY2F0aW9uUHJvdmlkZXIiIwohR2V0TG9nTm90aWZpY2F0aW9uUHJvdmlkZXJSZXF1ZXN0ImYKIkdldExvZ05vdGlmaWNhdGlvblByb3ZpZGVyUmVzcG9uc2USQAoIcHJvdmlkZXIYASABKAsyLi56aXRhZGVsLnNldHRpbmdzLnYxLkRlYnVnTm90aWZpY2F0aW9uUHJvdmlkZXIiGAoWR2V0T0lEQ1NldHRpbmdzUmVxdWVzdCJOChdHZXRPSURDU2V0dGluZ3NSZXNwb25zZRIzCghzZXR0aW5ncxgBIAEoCzIhLnppdGFkZWwuc2V0dGluZ3MudjEuT0lEQ1NldHRpbmdzIocCChZBZGRPSURDU2V0dGluZ3NSZXF1ZXN0EjgKFWFjY2Vzc190b2tlbl9saWZldGltZRgBIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhI0ChFpZF90b2tlbl9saWZldGltZRgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJACh1yZWZyZXNoX3Rva2VuX2lkbGVfZXhwaXJhdGlvbhgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhI7ChhyZWZyZXNoX3Rva2VuX2V4cGlyYXRpb24YBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24iRQoXQWRkT0lEQ1NldHRpbmdzUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyKKAgoZVXBkYXRlT0lEQ1NldHRpbmdzUmVxdWVzdBI4ChVhY2Nlc3NfdG9rZW5fbGlmZXRpbWUYASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SNAoRaWRfdG9rZW5fbGlmZXRpbWUYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SQAodcmVmcmVzaF90b2tlbl9pZGxlX2V4cGlyYXRpb24YAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SOwoYcmVmcmVzaF90b2tlbl9leHBpcmF0aW9uGAQgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIkgKGlVwZGF0ZU9JRENTZXR0aW5nc1Jlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiGgoYR2V0U2VjdXJpdHlQb2xpY3lSZXF1ZXN0IlAKGUdldFNlY3VyaXR5UG9saWN5UmVzcG9uc2USMwoGcG9saWN5GAEgASgLMiMueml0YWRlbC5zZXR0aW5ncy52MS5TZWN1cml0eVBvbGljeSJyChhTZXRTZWN1cml0eVBvbGljeVJlcXVlc3QSHwoXZW5hYmxlX2lmcmFtZV9lbWJlZGRpbmcYASABKAgSFwoPYWxsb3dlZF9vcmlnaW5zGAIgAygJEhwKFGVuYWJsZV9pbXBlcnNvbmF0aW9uGAMgASgIIkcKGVNldFNlY3VyaXR5UG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyKrAQoSSXNPcmdVbmlxdWVSZXF1ZXN0EicKBG5hbWUYASABKAlCGZJBDkoJIlpJVEFERUwieMgB+kIFcgMYyAESLwoGZG9tYWluGAIgASgJQh+SQRRKDyJ6aXRhZGVsLmNsb3VkInjIAfpCBXIDGMgBOjuSQTgKNjIkQWxsIHVuaXF1ZSBmaWVsZHMgb2YgYW4gb3JnYW5pemF0aW9u0gEEbmFtZdIBBmRvbWFpbiIoChNJc09yZ1VuaXF1ZVJlc3BvbnNlEhEKCWlzX3VuaXF1ZRgBIAEoCCJJChFHZXRPcmdCeUlEUmVxdWVzdBI0CgJpZBgBIAEoCUIokkEbShMiNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIASI2ChJHZXRPcmdCeUlEUmVzcG9uc2USIAoDb3JnGAEgASgLMhMueml0YWRlbC5vcmcudjEuT3JnIr8BCg9MaXN0T3Jnc1JlcXVlc3QSJAoFcXVlcnkYASABKAsyFS56aXRhZGVsLnYxLkxpc3RRdWVyeRI0Cg5zb3J0aW5nX2NvbHVtbhgCIAEoDjIcLnppdGFkZWwub3JnLnYxLk9yZ0ZpZWxkTmFtZRIpCgdxdWVyaWVzGAMgAygLMhgueml0YWRlbC5vcmcudjEuT3JnUXVlcnk6JZJBIgogMhZTZWFyY2ggcXVlcnkgZm9yIGxpc3Rz0gEFcXVlcnkilwEKEExpc3RPcmdzUmVzcG9uc2USKAoHZGV0YWlscxgBIAEoCzIXLnppdGFkZWwudjEuTGlzdERldGFpbHMSNAoOc29ydGluZ19jb2x1bW4YAiABKA4yHC56aXRhZGVsLm9yZy52MS5PcmdGaWVsZE5hbWUSIwoGcmVzdWx0GAMgAygLMhMueml0YWRlbC5vcmcudjEuT3JnItENCg9TZXRVcE9yZ1JlcXVlc3QSPAoDb3JnGAEgASgLMiUueml0YWRlbC5hZG1pbi52MS5TZXRVcE9yZ1JlcXVlc3QuT3JnQgj6QgWKAQIQARI4CgVodW1hbhgCIAEoCzInLnppdGFkZWwuYWRtaW4udjEuU2V0VXBPcmdSZXF1ZXN0Lkh1bWFuSAASDQoFcm9sZXMYAyADKAka1wEKA09yZxIsCgRuYW1lGAEgASgJQh6SQRFKCSJaSVRBREVMInjIAYABAfpCB3IFEAEYyAESkwEKBmRvbWFpbhgCIAEoCUKCAZJBdzJhWklUQURFTCBnZW5lcmF0ZXMgYSBkb21haW4gKDxvcmctbmFtZT4ueml0YWRlbC5jaCkgZm9yIGFuIG9yZ2FuaXphdGlvbiwgdGhlIGZpZWxkIGlzIG5vdCByZXF1aXJlZEoPInppdGFkZWwuY2xvdWQieMgB+kIFcgMYyAE6DJJBCQoH0gEEbmFtZRqGCgoFSHVtYW4SNgoJdXNlcl9uYW1lGAEgASgJQiOSQRZKDiJnaWdpLWdpcmFmZmUieMgBgAEB+kIHcgUQARjIARJKCgdwcm9maWxlGAIgASgLMi8ueml0YWRlbC5hZG1pbi52MS5TZXRVcE9yZ1JlcXVlc3QuSHVtYW4uUHJvZmlsZUII+kIFigECEAESRgoFZW1haWwYAyABKAsyLS56aXRhZGVsLmFkbWluLnYxLlNldFVwT3JnUmVxdWVzdC5IdW1hbi5FbWFpbEII+kIFigECEAESPAoFcGhvbmUYBCABKAsyLS56aXRhZGVsLmFkbWluLnYxLlNldFVwT3JnUmVxdWVzdC5IdW1hbi5QaG9uZRJNCghwYXNzd29yZBgFIAEoCUI7kkE4MiB0aGUgaW5pdGlhbCBwYXNzd29yZCBvZiB0aGUgdXNlckoUIm15XzUzY3IzdC1QNCQkdzByZCIa5AMKB1Byb2ZpbGUSLwoKZmlyc3RfbmFtZRgBIAEoCUIbkkEOSgYiR2lnaSJ4yAGAAQH6QgdyBRABGMgBEjEKCWxhc3RfbmFtZRgCIAEoCUIekkERSgkiR2lyYWZmZSJ4yAGAAQH6QgdyBRABGMgBEjEKCW5pY2tfbmFtZRgDIAEoCUIekkETSg4iZ2lnaS1naXJhZmZlInjIAfpCBXIDGMgBEo8BCgxkaXNwbGF5X25hbWUYBCABKAlCeZJBbjJZYSB1c2VyIGNhbiBzZXQgdGhlIGRpc3BsYXkgbmFtZSBpZiBub3RoaW5nIGlzIHNldCBaaXRhZGVsIGNvbXB1dGVzICJmaXJzdF9uYW1lIGxhc3RfbmFtZSJKDiJHaWdpIEdpcmFmZmUieMgB+kIFcgMYyAESZwoScHJlZmVycmVkX2xhbmd1YWdlGAUgASgJQkuSQUEyN2xhbmd1YWdlIHRhZyBhbmFsb2cgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMwNjZKBCJlbiJ4CvpCBHICGAoSJwoGZ2VuZGVyGAYgASgOMhcueml0YWRlbC51c2VyLnYxLkdlbmRlcjoekkEbChnSAQpmaXJzdF9uYW1l0gEJbGFzdF9uYW1lGroBCgVFbWFpbBKGAQoFZW1haWwYASABKAlCd5JBbTJUZW1haWwgYWRkcmVzcyBvZiB0aGUgdXNlci4gKHNwZWM6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODIyI3NlY3Rpb24tMy40LjEpShIiZ2lnaUB6aXRhZGVsLmNvbSKAAQH6QgRyAmABEhkKEWlzX2VtYWlsX3ZlcmlmaWVkGAIgASgIOg2SQQoKCNIBBWVtYWlsGs8BCgVQaG9uZRKbAQoFcGhvbmUYASABKAlCiwGSQXwyYW1vYmlsZSBwaG9uZSBudW1iZXIgb2YgdGhlIHVzZXIuICh1c2UgZ2xvYmFsIHBhdHRlcm4gb2Ygc3BlYyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk2NilKEiIrNDEgNzEgMDAwIDAwIDAwIngygAEB+kIJcgcQARgyOgErEhkKEWlzX3Bob25lX3ZlcmlmaWVkGAIgASgIOg2SQQoKCNIBBXBob25lOi6SQSsKKdIBCXVzZXJfbmFtZdIBB3Byb2ZpbGXSAQVlbWFpbNIBCHBhc3N3b3JkOkeSQUQKQjIzUmVxdWVzdCB0byBzZXQgdXAgYW4gb3JnYW5pemF0aW9uLiBVc2VyIGlzIHJlcXVpcmVk0gEDb3Jn0gEEdXNlckILCgR1c2VyEgP4QgEiXwoQU2V0VXBPcmdSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEg4KBm9yZ19pZBgCIAEoCRIPCgd1c2VyX2lkGAMgASgJIlwKEFJlbW92ZU9yZ1JlcXVlc3QSOAoGb3JnX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBOg6SQQsKCdIBBm9yZ19pZCI/ChFSZW1vdmVPcmdSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkkKEUdldElEUEJ5SURSZXF1ZXN0EjQKAmlkGAEgASgJQiiSQRtKEyI2OTIzNDIzMDE5Mzg3Mjk1NSJ4yAGAAQH6QgdyBRABGMgBIjYKEkdldElEUEJ5SURSZXNwb25zZRIgCgNpZHAYASABKAsyEy56aXRhZGVsLmlkcC52MS5JRFAimgEKD0xpc3RJRFBzUmVxdWVzdBIkCgVxdWVyeRgBIAEoCzIVLnppdGFkZWwudjEuTGlzdFF1ZXJ5EjQKDnNvcnRpbmdfY29sdW1uGAIgASgOMhwueml0YWRlbC5pZHAudjEuSURQRmllbGROYW1lEisKB3F1ZXJpZXMYAyADKAsyGi56aXRhZGVsLmFkbWluLnYxLklEUFF1ZXJ5In8KCElEUFF1ZXJ5EjIKDGlkcF9pZF9xdWVyeRgBIAEoCzIaLnppdGFkZWwuaWRwLnYxLklEUElEUXVlcnlIABI2Cg5pZHBfbmFtZV9xdWVyeRgCIAEoCzIcLnppdGFkZWwuaWRwLnYxLklEUE5hbWVRdWVyeUgAQgcKBXF1ZXJ5IpcBChBMaXN0SURQc1Jlc3BvbnNlEigKB2RldGFpbHMYASABKAsyFy56aXRhZGVsLnYxLkxpc3REZXRhaWxzEjQKDnNvcnRpbmdfY29sdW1uGAIgASgOMhwueml0YWRlbC5pZHAudjEuSURQRmllbGROYW1lEiMKBnJlc3VsdBgDIAMoCzITLnppdGFkZWwuaWRwLnYxLklEUCLPBwoRQWRkT0lEQ0lEUFJlcXVlc3QSKwoEbmFtZRgBIAEoCUIdkkEQSggiZ29vZ2xlInjIAYABAfpCB3IFEAEYyAESiwEKDHN0eWxpbmdfdHlwZRgCIAEoDjIeLnppdGFkZWwuaWRwLnYxLklEUFN0eWxpbmdUeXBlQlWSQUoySHNvbWUgaWRlbnRpdHkgcHJvdmlkZXJzIHNwZWNpZnkgdGhlIHN0eWxpbmcgb2YgdGhlIGJ1dHRvbiB0byB0aGVpciBsb2dpbvpCBYIBAhABElQKCWNsaWVudF9pZBgDIAEoCUJBkkE0MixjbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IHRoZSBpZGVudGl0eSBwcm92aWRlcnjIAYABAfpCB3IFEAEYyAESXAoNY2xpZW50X3NlY3JldBgEIAEoCUJFkkE4MjBjbGllbnQgc2VjcmV0IGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXJ4yAGAAQH6QgdyBRABGMgBEmkKBmlzc3VlchgFIAEoCUJZkkFMMih0aGUgb2lkYyBpc3N1ZXIgb2YgdGhlIGlkZW50aXR5IHByb3ZpZGVySh0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tInjIAfpCB3IFEAEYyAESgAEKBnNjb3BlcxgGIAMoCUJwkkFtMkt0aGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCBvbiB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXRKNAQoUZGlzcGxheV9uYW1lX21hcHBpbmcYByABKA4yIC56aXRhZGVsLmlkcC52MS5PSURDTWFwcGluZ0ZpZWxkQk2SQUIyQGRlZmluaXRpb24gd2hpY2ggZmllbGQgaXMgbWFwcGVkIHRvIHRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHVzZXL6QgWCAQIQARKCAQoQdXNlcm5hbWVfbWFwcGluZxgIIAEoDjIgLnppdGFkZWwuaWRwLnYxLk9JRENNYXBwaW5nRmllbGRCRpJBOzI5ZGVmaW5pdGlvbiB3aGljaCBmaWVsZCBpcyBtYXBwZWQgdG8gdGhlIGVtYWlsIG9mIHRoZSB1c2Vy+kIFggECEAESFQoNYXV0b19yZWdpc3RlchgJIAEoCDoxkkEuCizSAQRuYW1l0gEJY2xpZW50X2lk0gENY2xpZW50X3NlY3JldNIBBmlzc3VlciJqChJBZGRPSURDSURQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIoCgZpZHBfaWQYAiABKAlCGJJBFUoTIjUzODI5MDI2ODA2NDg5NDU1IiKbBgoQQWRkSldUSURQUmVxdWVzdBIvCgRuYW1lGAEgASgJQiGSQRBKCCJnb29nbGUieMgBgAEB4kEBAvpCB3IFEAEYyAESiwEKDHN0eWxpbmdfdHlwZRgCIAEoDjIeLnppdGFkZWwuaWRwLnYxLklEUFN0eWxpbmdUeXBlQlWSQUoySHNvbWUgaWRlbnRpdHkgcHJvdmlkZXJzIHNwZWNpZnkgdGhlIHN0eWxpbmcgb2YgdGhlIGJ1dHRvbiB0byB0aGVpciBsb2dpbvpCBYIBAhABEnkKDGp3dF9lbmRwb2ludBgDIAEoCUJjkkFSMit0aGUgZW5kcG9pbnQgd2hlcmUgdGhlIGp3dCBjYW4gYmUgZXh0cmFjdGVkSh0iaHR0cHM6Ly9jdXN0b20uY29tL2F1dGgvand0InjIAYABAeJBAQL6QgdyBRABGMgBEm4KBmlzc3VlchgEIAEoCUJekkFNMiZ0aGUgaXNzdWVyIG9mIHRoZSBqd3QgKGZvciB2YWxpZGF0aW9uKUodImh0dHBzOi8vYWNjb3VudHMuY3VzdG9tLmNvbSJ4yAGAAQHiQQEC+kIHcgUQARjIARKUAQoNa2V5c19lbmRwb2ludBgFIAEoCUJ9kkFsMkB0aGUgZW5kcG9pbnQgdG8gdGhlIGtleSAoSldLKSB3aGljaCBpcyB1c2VkIHRvIHNpZ24gdGhlIEpXVCB3aXRoSiIiaHR0cHM6Ly9hY2NvdW50cy5jdXN0b20uY29tL2tleXMieMgBgAEB4kEBAvpCB3IFEAEYyAEShwEKC2hlYWRlcl9uYW1lGAYgASgJQnKSQWEySXRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgd2hlcmUgdGhlIEpXVCBpcyBzZW50IGluLCBkZWZhdWx0IGlzIGF1dGhvcml6YXRpb25KDiJ4LWF1dGgtdG9rZW4ieMgBgAEB4kEBAvpCB3IFEAEYyAESFQoNYXV0b19yZWdpc3RlchgHIAEoCDolkkEiCiDSAQRuYW1l0gEGaXNzdWVy0gENa2V5c19lbmRwb2ludCJpChFBZGRKV1RJRFBSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEigKBmlkcF9pZBgCIAEoCUIYkkEVShMiNjkyMzQyMzAxOTM4NzI5NTUiIrECChBVcGRhdGVJRFBSZXF1ZXN0EhoKBmlkcF9pZBgBIAEoCUIK+kIHcgUQARjIARIrCgRuYW1lGAIgASgJQh2SQRBKCCJnb29nbGUieMgBgAEB+kIHcgUQARjIARKLAQoMc3R5bGluZ190eXBlGAMgASgOMh4ueml0YWRlbC5pZHAudjEuSURQU3R5bGluZ1R5cGVCVZJBSjJIc29tZSBpZGVudGl0eSBwcm92aWRlcnMgc3BlY2lmeSB0aGUgc3R5bGluZyBvZiB0aGUgYnV0dG9uIHRvIHRoZWlyIGxvZ2lu+kIFggECEAESFQoNYXV0b19yZWdpc3RlchgEIAEoCDovkkEsCioyGFVwZGF0ZXMgZmllbGRzIG9mIGFuIElEUNIBBmlkcF9pZNIBBG5hbWUiPwoRVXBkYXRlSURQUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJgChREZWFjdGl2YXRlSURQUmVxdWVzdBI4CgZpZHBfaWQYASABKAlCKJJBG0oTIjY5NjI5MDIzOTA2NDg4MzM0InjIAYABAfpCB3IFEAEYyAE6DpJBCwoJ0gEGaWRwX2lkIkMKFURlYWN0aXZhdGVJRFBSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzImAKFFJlYWN0aXZhdGVJRFBSZXF1ZXN0EjgKBmlkcF9pZBgBIAEoCUIokkEbShMiNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIAToOkkELCgnSAQZpZHBfaWQiQwoVUmVhY3RpdmF0ZUlEUFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiXAoQUmVtb3ZlSURQUmVxdWVzdBI4CgZpZHBfaWQYASABKAlCKJJBG0oTIjY5NjI5MDIzOTA2NDg4MzM0InjIAYABAfpCB3IFEAEYyAE6DpJBCwoJ0gEGaWRwX2lkIj8KEVJlbW92ZUlEUFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi2AYKGlVwZGF0ZUlEUE9JRENDb25maWdSZXF1ZXN0EjgKBmlkcF9pZBgBIAEoCUIokkEbShMiNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIARJsCgZpc3N1ZXIYAiABKAlCXJJBTzIodGhlIG9pZGMgaXNzdWVyIG9mIHRoZSBpZGVudGl0eSBwcm92aWRlckodImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSJ4yAGAAQH6QgdyBRABGMgBElQKCWNsaWVudF9pZBgDIAEoCUJBkkE0MixjbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IHRoZSBpZGVudGl0eSBwcm92aWRlcnjIAYABAfpCB3IFEAEYyAESfwoNY2xpZW50X3NlY3JldBgEIAEoCUJokkFdMlhjbGllbnQgc2VjcmV0IGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXIuIElmIGVtcHR5IHRoZSBzZWNyZXQgaXMgbm90IG92ZXJ3cml0dGVueMgB+kIFcgMYyAESgAEKBnNjb3BlcxgFIAMoCUJwkkFtMkt0aGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCBvbiB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXRKNAQoUZGlzcGxheV9uYW1lX21hcHBpbmcYBiABKA4yIC56aXRhZGVsLmlkcC52MS5PSURDTWFwcGluZ0ZpZWxkQk2SQUIyQGRlZmluaXRpb24gd2hpY2ggZmllbGQgaXMgbWFwcGVkIHRvIHRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHVzZXL6QgWCAQIQARKCAQoQdXNlcm5hbWVfbWFwcGluZxgHIAEoDjIgLnppdGFkZWwuaWRwLnYxLk9JRENNYXBwaW5nRmllbGRCRpJBOzI5ZGVmaW5pdGlvbiB3aGljaCBmaWVsZCBpcyBtYXBwZWQgdG8gdGhlIGVtYWlsIG9mIHRoZSB1c2Vy+kIFggECEAE6I5JBIAoe0gEGaWRwX2lk0gEGaXNzdWVy0gEJY2xpZW50X2lkIkkKG1VwZGF0ZUlEUE9JRENDb25maWdSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIpQFChlVcGRhdGVJRFBKV1RDb25maWdSZXF1ZXN0EjgKBmlkcF9pZBgBIAEoCUIokkEbShMiNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIARJ1Cgxqd3RfZW5kcG9pbnQYAiABKAlCX5JBUjIrdGhlIGVuZHBvaW50IHdoZXJlIHRoZSBqd3QgY2FuIGJlIGV4dHJhY3RlZEodImh0dHBzOi8vY3VzdG9tLmNvbS9hdXRoL2p3dCJ4yAGAAQH6QgdyBRABGMgBEmoKBmlzc3VlchgDIAEoCUJakkFNMiZ0aGUgaXNzdWVyIG9mIHRoZSBqd3QgKGZvciB2YWxpZGF0aW9uKUodImh0dHBzOi8vYWNjb3VudHMuY3VzdG9tLmNvbSJ4yAGAAQH6QgdyBRABGMgBEpABCg1rZXlzX2VuZHBvaW50GAQgASgJQnmSQWwyQHRoZSBlbmRwb2ludCB0byB0aGUga2V5IChKV0spIHdoaWNoIGlzIHVzZWQgdG8gc2lnbiB0aGUgSldUIHdpdGhKIiJodHRwczovL2FjY291bnRzLmN1c3RvbS5jb20va2V5cyJ4yAGAAQH6QgdyBRABGMgBEoABCgtoZWFkZXJfbmFtZRgFIAEoCUJrkkFeMkl0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIHdoZXJlIHRoZSBKV1QgaXMgc2VudCBpbiwgZGVmYXVsdCBpcyBhdXRob3JpemF0aW9uSg4ieC1hdXRoLXRva2VuInjIAfpCB3IFEAEYyAE6RJJBQQo/0gEGaWRwX2lk0gEMand0X2VuZHBvaW500gEGaXNzdWVy0gENa2V5c19lbmRwb2ludNIBC2hlYWRlcl9uYW1lIkgKGlVwZGF0ZUlEUEpXVENvbmZpZ1Jlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMibgoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSJAoFcXVlcnkYASABKAsyFS56aXRhZGVsLnYxLkxpc3RRdWVyeRIwCgdxdWVyaWVzGAIgAygLMh8ueml0YWRlbC5hZG1pbi52MS5Qcm92aWRlclF1ZXJ5IoQBCg1Qcm92aWRlclF1ZXJ5EjIKDGlkcF9pZF9xdWVyeRgBIAEoCzIaLnppdGFkZWwuaWRwLnYxLklEUElEUXVlcnlIABI2Cg5pZHBfbmFtZV9xdWVyeRgCIAEoCzIcLnppdGFkZWwuaWRwLnYxLklEUE5hbWVRdWVyeUgAQgcKBXF1ZXJ5ImsKFUxpc3RQcm92aWRlcnNSZXNwb25zZRIoCgdkZXRhaWxzGAEgASgLMhcueml0YWRlbC52MS5MaXN0RGV0YWlscxIoCgZyZXN1bHQYAiADKAsyGC56aXRhZGVsLmlkcC52MS5Qcm92aWRlciIwChZHZXRQcm92aWRlckJ5SURSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBIkAKF0dldFByb3ZpZGVyQnlJRFJlc3BvbnNlEiUKA2lkcBgBIAEoCzIYLnppdGFkZWwuaWRwLnYxLlByb3ZpZGVyIo0ICh5BZGRHZW5lcmljT0F1dGhQcm92aWRlclJlcXVlc3QSKgoEbmFtZRgBIAEoCUIckkEPSg0iTXkgUHJvdmlkZXIi+kIHcgUQARjIARJbCgljbGllbnRfaWQYAiABKAlCSJJBOzIsY2xpZW50IGlkIGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKCyJjbGllbnQtaWQi+kIHcgUQARjIARJnCg1jbGllbnRfc2VjcmV0GAMgASgJQlCSQUMyMENsaWVudCBzZWNyZXQgZ2VuZXJhdGVkIGJ5IHRoZSBpZGVudGl0eSBwcm92aWRlckoPImNsaWVudC1zZWNyZXQi+kIHcgUQARjoBxKXAQoWYXV0aG9yaXphdGlvbl9lbmRwb2ludBgEIAEoCUJ3kkFqMjhUaGUgZW5kcG9pbnQgd2hlcmUgWml0YWRlbCBzZW5kIHRoZSB1c2VyIHRvIGF1dGhlbnRpY2F0ZUouImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi92Mi9hdXRoIvpCB3IFEAEYyAESegoOdG9rZW5fZW5kcG9pbnQYBSABKAlCYpJBVTIsVGhlIGVuZHBvaW50IHdoZXJlIFppdGFkZWwgY2FuIGdldCB0aGUgdG9rZW5KJSJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiL6QgdyBRABGMgBEpEBCg11c2VyX2VuZHBvaW50GAYgASgJQnqSQW0yN1RoZSBlbmRwb2ludCB3aGVyZSBaaXRhZGVsIGNhbiBnZXQgdGhlIHVzZXIgaW5mb3JtYXRpb25KMiJodHRwczovL29wZW5pZGNvbm5lY3QuZ29vZ2xlYXBpcy5jb20vdjEvdXNlcmluZm8i+kIHcgUQARjIARKRAQoGc2NvcGVzGAcgAygJQoABkkFtMktUaGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCBvbiB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSdgoMaWRfYXR0cmlidXRlGAggASgJQmCSQVMyRklkZW50aWZ5aW5nIGF0dHJpYnV0ZSBvZiB0aGUgdXNlciBpbiB0aGUgcmVzcG9uc2Ugb2YgdGhlIHVzZXJfZW5kcG9pbnRKCSJ1c2VyX2lkIvpCB3IFEAEYyAESMQoQcHJvdmlkZXJfb3B0aW9ucxgJIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSEAoIdXNlX3BrY2UYCiABKAgiWQofQWRkR2VuZXJpY09BdXRoUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIqQICiFVcGRhdGVHZW5lcmljT0F1dGhQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAESKgoEbmFtZRgCIAEoCUIckkEPSg0iTXkgUHJvdmlkZXIi+kIHcgUQARjIARJbCgljbGllbnRfaWQYAyABKAlCSJJBOzIsQ2xpZW50IGlkIGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKCyJjbGllbnQtaWQi+kIHcgUQARjIARJjCg1jbGllbnRfc2VjcmV0GAQgASgJQkySQUEyLkNsaWVudCBzZWNyZXQgd2lsbCBvbmx5IGJlIHVwZGF0ZWQgaWYgcHJvdmlkZWRKDyJjbGllbnQtc2VjcmV0IvpCBXIDGOgHEpcBChZhdXRob3JpemF0aW9uX2VuZHBvaW50GAUgASgJQneSQWoyOFRoZSBlbmRwb2ludCB3aGVyZSBaaXRhZGVsIHNlbmQgdGhlIHVzZXIgdG8gYXV0aGVudGljYXRlSi4iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL3YyL2F1dGgi+kIHcgUQARjIARJ6Cg50b2tlbl9lbmRwb2ludBgGIAEoCUJikkFVMixUaGUgZW5kcG9pbnQgd2hlcmUgWml0YWRlbCBjYW4gZ2V0IHRoZSB0b2tlbkolImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIvpCB3IFEAEYyAESkQEKDXVzZXJfZW5kcG9pbnQYByABKAlCepJBbTI3VGhlIGVuZHBvaW50IHdoZXJlIFppdGFkZWwgY2FuIGdldCB0aGUgdXNlciBpbmZvcm1hdGlvbkoyImh0dHBzOi8vb3BlbmlkY29ubmVjdC5nb29nbGVhcGlzLmNvbS92MS91c2VyaW5mbyL6QgdyBRABGMgBEpEBCgZzY29wZXMYCCADKAlCgAGSQW0yS1RoZSBzY29wZXMgcmVxdWVzdGVkIGJ5IFppdGFkZWwgZHVyaW5nIHRoZSByZXF1ZXN0IG9uIHRoZSBpZGVudGl0eSBwcm92aWRlckoeWyJvcGVuaWQiLCAicHJvZmlsZSIsICJlbWFpbCJd+kINkgEKEBQiBnIEEAEYZBJ2CgxpZF9hdHRyaWJ1dGUYCSABKAlCYJJBUzJGSWRlbnRpZnlpbmcgYXR0cmlidXRlIG9mIHRoZSB1c2VyIGluIHRoZSByZXNwb25zZSBvZiB0aGUgdXNlcl9lbmRwb2ludEoJInVzZXJfaWQi+kIHcgUQARjIARIxChBwcm92aWRlcl9vcHRpb25zGAogASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucxIQCgh1c2VfcGtjZRgLIAEoCCJQCiJVcGRhdGVHZW5lcmljT0F1dGhQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi3QQKHUFkZEdlbmVyaWNPSURDUHJvdmlkZXJSZXF1ZXN0EiUKBG5hbWUYASABKAlCF5JBCkoIIkdvb2dsZSL6QgdyBRABGMgBEmcKBmlzc3VlchgCIAEoCUJXkkFKMih0aGUgT0lEQyBpc3N1ZXIgb2YgdGhlIGlkZW50aXR5IHByb3ZpZGVySh4iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tLyL6QgdyBRABGMgBElsKCWNsaWVudF9pZBgDIAEoCUJIkkE7MixjbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IHRoZSBpZGVudGl0eSBwcm92aWRlckoLImNsaWVudC1pZCL6QgdyBRABGMgBElkKDWNsaWVudF9zZWNyZXQYBCABKAlCQpJBNTIpc2VjcmV0IGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKCCJzZWNyZXQi+kIHcgUQARjoBxKRAQoGc2NvcGVzGAUgAygJQoABkkFtMkt0aGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCBvbiB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgGIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSGwoTaXNfaWRfdG9rZW5fbWFwcGluZxgHIAEoCBIQCgh1c2VfcGtjZRgIIAEoCCJYCh5BZGRHZW5lcmljT0lEQ1Byb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCSKTBQogVXBkYXRlR2VuZXJpY09JRENQcm92aWRlclJlcXVlc3QSLgoCaWQYASABKAlCIpJBFUoTIjY5NjI5MDIzOTA2NDg4MzM0IvpCB3IFEAEYyAESJQoEbmFtZRgCIAEoCUIXkkEKSggiR29vZ2xlIvpCB3IFEAEYyAESZwoGaXNzdWVyGAMgASgJQleSQUoyKHRoZSBPSURDIGlzc3VlciBvZiB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKHiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vIvpCB3IFEAEYyAESWwoJY2xpZW50X2lkGAQgASgJQkiSQTsyLGNsaWVudCBpZCBnZW5lcmF0ZWQgYnkgdGhlIGlkZW50aXR5IHByb3ZpZGVySgsiY2xpZW50LWlkIvpCB3IFEAEYyAESXAoNY2xpZW50X3NlY3JldBgFIAEoCUJFkkE6Mi5jbGllbnQgc2VjcmV0IHdpbGwgb25seSBiZSB1cGRhdGVkIGlmIHByb3ZpZGVkSggic2VjcmV0IvpCBXIDGOgHEpEBCgZzY29wZXMYBiADKAlCgAGSQW0yS3RoZSBzY29wZXMgcmVxdWVzdGVkIGJ5IFppdGFkZWwgZHVyaW5nIHRoZSByZXF1ZXN0IG9uIHRoZSBpZGVudGl0eSBwcm92aWRlckoeWyJvcGVuaWQiLCAicHJvZmlsZSIsICJlbWFpbCJd+kINkgEKEBQiBnIEEAEYZBIxChBwcm92aWRlcl9vcHRpb25zGAcgASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucxIbChNpc19pZF90b2tlbl9tYXBwaW5nGAggASgIEhAKCHVzZV9wa2NlGAkgASgIIk8KIVVwZGF0ZUdlbmVyaWNPSURDUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzItsBCiFNaWdyYXRlR2VuZXJpY09JRENQcm92aWRlclJlcXVlc3QSLgoCaWQYASABKAlCIpJBFUoTIjY5NjI5MDIzOTA2NDg4MzM0IvpCB3IFEAEYyAESPAoFYXp1cmUYAiABKAsyKy56aXRhZGVsLmFkbWluLnYxLkFkZEF6dXJlQURQcm92aWRlclJlcXVlc3RIABI8CgZnb29nbGUYAyABKAsyKi56aXRhZGVsLmFkbWluLnYxLkFkZEdvb2dsZVByb3ZpZGVyUmVxdWVzdEgAQgoKCHRlbXBsYXRlIlAKIk1pZ3JhdGVHZW5lcmljT0lEQ1Byb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyL3AgoVQWRkSldUUHJvdmlkZXJSZXF1ZXN0EioKBG5hbWUYASABKAlCHJJBD0oNIk15IFByb3ZpZGVyIvpCB3IFEAEYyAESGgoGaXNzdWVyGAIgASgJQgr6QgdyBRABGMgBEiAKDGp3dF9lbmRwb2ludBgDIAEoCUIK+kIHcgUQARjIARIhCg1rZXlzX2VuZHBvaW50GAQgASgJQgr6QgdyBRABGMgBEh8KC2hlYWRlcl9uYW1lGAUgASgJQgr6QgdyBRABGMgBEjEKEHByb3ZpZGVyX29wdGlvbnMYBiABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zEn0KCGF1ZGllbmNlGAcgASgJQmuSQWAyT3RoZSBleHBlY3RlZCBhdWRpZW5jZSBpbiB0aGUgSldULCBpZiBub3QgcHJvdmlkZWQgdGhlIGF1ZGllbmNlIGlzIG5vdCB2YWxpZGF0ZWRKDSJteS1hdWRpZW5jZSL6QgVyAxjIASJQChZBZGRKV1RQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMSCgoCaWQYAiABKAkikAMKGFVwZGF0ZUpXVFByb3ZpZGVyUmVxdWVzdBIWCgJpZBgBIAEoCUIK+kIHcgUQARjIARIqCgRuYW1lGAIgASgJQhySQQ9KDSJNeSBQcm92aWRlciL6QgdyBRABGMgBEhoKBmlzc3VlchgDIAEoCUIK+kIHcgUQARjIARIgCgxqd3RfZW5kcG9pbnQYBCABKAlCCvpCB3IFEAEYyAESHwoNa2V5c19lbmRwb2ludBgFIAEoCUII+kIFcgMYyAESHwoLaGVhZGVyX25hbWUYBiABKAlCCvpCB3IFEAEYyAESMQoQcHJvdmlkZXJfb3B0aW9ucxgHIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSfQoIYXVkaWVuY2UYCCABKAlCa5JBYDJPdGhlIGV4cGVjdGVkIGF1ZGllbmNlIGluIHRoZSBKV1QsIGlmIG5vdCBwcm92aWRlZCB0aGUgYXVkaWVuY2UgaXMgbm90IHZhbGlkYXRlZEoNIm15LWF1ZGllbmNlIvpCBXIDGMgBIkcKGVVwZGF0ZUpXVFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyLTBgoZQWRkQXp1cmVBRFByb3ZpZGVyUmVxdWVzdBInCgRuYW1lGAEgASgJQhmSQQxKCiJBenVyZSBBRCL6QgdyBRABGMgBElIKCWNsaWVudF9pZBgCIAEoCUI/kkEyMiNjbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IHRoZSBBenVyZSBBREoLImNsaWVudC1pZCL6QgdyBRABGMgBElcKDWNsaWVudF9zZWNyZXQYAyABKAlCQJJBMzInY2xpZW50IHNlY3JldCBnZW5lcmF0ZWQgYnkgdGhlIEF6dXJlIEFESggic2VjcmV0IvpCB3IFEAEYyAES0QEKBnRlbmFudBgEIAEoCzIdLnppdGFkZWwuaWRwLnYxLkF6dXJlQURUZW5hbnRCoQGSQZ0BMpoBRGVmaW5lcyB3aGF0IGtpbmQgb2YgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gYXV0aGVudGljYXRlIChQZXJzb25hbCwgT3JnYW5pemF0aW9uYWwsIEFsbCkuIElmIG5vdCBwcm92aWRlZCB0aGUgYGNvbW1vbmAgdGVuYW50IHdpbGwgYmUgdXNlZCAoQWxsIGFjY291bnRzKRLEAQoOZW1haWxfdmVyaWZpZWQYBSABKAhCqwGSQacBMqQBQXp1cmUgQUQgZG9lc24ndCBzZW5kIGlmIHRoZSBlbWFpbCBoYXMgYmVlbiB2ZXJpZmllZC4gRW5hYmxlIHRoaXMgaWYgdGhlIHVzZXIgZW1haWwgc2hvdWxkIGFsd2F5cyBiZSBhZGRlZCB2ZXJpZmllZCBpbiBaaXRhZGVsIChubyB2ZXJpZmljYXRpb24gZW1haWxzIHdpbGwgYmUgc2VudCkSkQEKBnNjb3BlcxgGIAMoCUKAAZJBbTI+dGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3QgdG8gQXp1cmUgQURKK1sib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiLCAiVXNlci5SZWFkIl36Qg2SAQoQFCIGcgQQARhkEjEKEHByb3ZpZGVyX29wdGlvbnMYByABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zIlQKGkFkZEF6dXJlQURQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMSCgoCaWQYAiABKAki8wYKHFVwZGF0ZUF6dXJlQURQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAESJwoEbmFtZRgCIAEoCUIZkkEMSgoiQXp1cmUgQUQi+kIHcgUQARjIARJSCgljbGllbnRfaWQYAyABKAlCP5JBMjIjQ2xpZW50IGlkIGdlbmVyYXRlZCBieSB0aGUgQXp1cmUgQURKCyJjbGllbnQtaWQi+kIHcgUQARjIARJcCg1jbGllbnRfc2VjcmV0GAQgASgJQkWSQToyLkNsaWVudF9zZWNyZXQgd2lsbCBvbmx5IGJlIHVwZGF0ZWQgaWYgcHJvdmlkZWRKCCJzZWNyZXQi+kIFcgMYyAES0QEKBnRlbmFudBgFIAEoCzIdLnppdGFkZWwuaWRwLnYxLkF6dXJlQURUZW5hbnRCoQGSQZ0BMpoBRGVmaW5lcyB3aGF0IGtpbmQgb2YgYWNjb3VudHMgYXJlIGFsbG93ZWQgdG8gYXV0aGVudGljYXRlIChQZXJzb25hbCwgT3JnYW5pemF0aW9uYWwsIEFsbCkuIElmIG5vdCBwcm92aWRlZCB0aGUgYGNvbW1vbmAgdGVuYW50IHdpbGwgYmUgdXNlZCAoQWxsIGFjY291bnRzKRLEAQoOZW1haWxfdmVyaWZpZWQYBiABKAhCqwGSQacBMqQBQXp1cmUgQUQgZG9lc24ndCBzZW5kIGlmIHRoZSBlbWFpbCBoYXMgYmVlbiB2ZXJpZmllZC4gRW5hYmxlIHRoaXMgaWYgdGhlIHVzZXIgZW1haWwgc2hvdWxkIGFsd2F5cyBiZSBhZGRlZCB2ZXJpZmllZCBpbiBaaXRhZGVsIChubyB2ZXJpZmljYXRpb24gZW1haWxzIHdpbGwgYmUgc2VudCkSkQEKBnNjb3BlcxgHIAMoCUKAAZJBbTI+dGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3QgdG8gQXp1cmUgQURKK1sib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiLCAiVXNlci5SZWFkIl36Qg2SAQoQFCIGcgQQARhkEjEKEHByb3ZpZGVyX29wdGlvbnMYCCABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zIksKHVVwZGF0ZUF6dXJlQURQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi0wMKGEFkZEdpdEh1YlByb3ZpZGVyUmVxdWVzdBJbCgRuYW1lGAEgASgJQk2SQUIyNkdpdEh1YiB3aWxsIGJlIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm8gbmFtZSBpcyBwcm92aWRlZEoIIkdpdEh1YiL6QgVyAxjIARJMCgljbGllbnRfaWQYAiABKAlCOZJBLDIdQ2xpZW50IGlkIGdlbmVyYXRlZCBieSBHaXRIdWJKCyJjbGllbnQtaWQi+kIHcgUQARjIARJVCg1jbGllbnRfc2VjcmV0GAMgASgJQj6SQTEyJUNsaWVudCBzZWNyZXQgZ2VuZXJhdGVkIGJ5IHRoZSBHaXRIdWJKCCJzZWNyZXQi+kIHcgUQARjIARKBAQoGc2NvcGVzGAQgAygJQnGSQV4yPFRoZSBzY29wZXMgcmVxdWVzdGVkIGJ5IFppdGFkZWwgZHVyaW5nIHRoZSByZXF1ZXN0IHRvIEdpdEh1YkoeWyJvcGVuaWQiLCAicHJvZmlsZSIsICJlbWFpbCJd+kINkgEKEBQiBnIEEAEYZBIxChBwcm92aWRlcl9vcHRpb25zGAUgASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucyJTChlBZGRHaXRIdWJQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMSCgoCaWQYAiABKAkivQMKG1VwZGF0ZUdpdEh1YlByb3ZpZGVyUmVxdWVzdBIWCgJpZBgBIAEoCUIK+kIHcgUQARjIARIjCgRuYW1lGAIgASgJQhWSQQpKCCJHaXRIdWIi+kIFcgMYyAESTAoJY2xpZW50X2lkGAMgASgJQjmSQSwyHUNsaWVudCBpZCBnZW5lcmF0ZWQgYnkgR2l0SHViSgsiY2xpZW50LWlkIvpCB3IFEAEYyAESXAoNY2xpZW50X3NlY3JldBgEIAEoCUJFkkE6Mi5DbGllbnRfc2VjcmV0IHdpbGwgb25seSBiZSB1cGRhdGVkIGlmIHByb3ZpZGVkSggic2VjcmV0IvpCBXIDGMgBEoEBCgZzY29wZXMYBSADKAlCcZJBXjI8VGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3QgdG8gR2l0SHViSh5bIm9wZW5pZCIsICJwcm9maWxlIiwgImVtYWlsIl36Qg2SAQoQFCIGcgQQARhkEjEKEHByb3ZpZGVyX29wdGlvbnMYBiABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zIkoKHFVwZGF0ZUdpdEh1YlByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyKcBAooQWRkR2l0SHViRW50ZXJwcmlzZVNlcnZlclByb3ZpZGVyUmVxdWVzdBJMCgljbGllbnRfaWQYASABKAlCOZJBLDIdQ2xpZW50IGlkIGdlbmVyYXRlZCBieSBHaXRIdWJKCyJjbGllbnQtaWQi+kIHcgUQARjIARIlCgRuYW1lGAIgASgJQheSQQpKCCJHaXRIdWIi+kIHcgUQARjIARJRCg1jbGllbnRfc2VjcmV0GAMgASgJQjqSQS0yIUNsaWVudCBzZWNyZXQgZ2VuZXJhdGVkIGJ5IEdpdEh1YkoIInNlY3JldCL6QgdyBRABGMgBEioKFmF1dGhvcml6YXRpb25fZW5kcG9pbnQYBCABKAlCCvpCB3IFEAEYyAESIgoOdG9rZW5fZW5kcG9pbnQYBSABKAlCCvpCB3IFEAEYyAESIQoNdXNlcl9lbmRwb2ludBgGIAEoCUIK+kIHcgUQARjIARKBAQoGc2NvcGVzGAcgAygJQnGSQV4yPFRoZSBzY29wZXMgcmVxdWVzdGVkIGJ5IFppdGFkZWwgZHVyaW5nIHRoZSByZXF1ZXN0IHRvIEdpdEh1YkoeWyJvcGVuaWQiLCAicHJvZmlsZSIsICJlbWFpbCJd+kINkgEKEBQiBnIEEAEYZBIxChBwcm92aWRlcl9vcHRpb25zGAggASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucyJjCilBZGRHaXRIdWJFbnRlcnByaXNlU2VydmVyUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIsIECitVcGRhdGVHaXRIdWJFbnRlcnByaXNlU2VydmVyUHJvdmlkZXJSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBEiUKBG5hbWUYAiABKAlCF5JBCkoIIkdpdEh1YiL6QgdyBRABGMgBEkwKCWNsaWVudF9pZBgDIAEoCUI5kkEsMh1DbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IEdpdEh1YkoLImNsaWVudC1pZCL6QgdyBRABGMgBElwKDWNsaWVudF9zZWNyZXQYBCABKAlCRZJBOjIuQ2xpZW50IHNlY3JldCB3aWxsIG9ubHkgYmUgdXBkYXRlZCBpZiBwcm92aWRlZEoIInNlY3JldCL6QgVyAxjIARIqChZhdXRob3JpemF0aW9uX2VuZHBvaW50GAUgASgJQgr6QgdyBRABGMgBEiIKDnRva2VuX2VuZHBvaW50GAYgASgJQgr6QgdyBRABGMgBEiEKDXVzZXJfZW5kcG9pbnQYByABKAlCCvpCB3IFEAEYyAESgQEKBnNjb3BlcxgIIAMoCUJxkkFeMjxUaGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCB0byBHaXRIdWJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgJIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMiWgosVXBkYXRlR2l0SHViRW50ZXJwcmlzZVNlcnZlclByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyLPAwoYQWRkR2l0TGFiUHJvdmlkZXJSZXF1ZXN0ElsKBG5hbWUYASABKAlCTZJBQjI2R2l0TGFiIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0LCBpZiBubyBuYW1lIGlzIHByb3ZpZGVkSggiR2l0TGFiIvpCBXIDGMgBEkwKCWNsaWVudF9pZBgCIAEoCUI5kkEsMh1DbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IEdpdExhYkoLImNsaWVudC1pZCL6QgdyBRABGMgBElEKDWNsaWVudF9zZWNyZXQYAyABKAlCOpJBLTIhQ2xpZW50IHNlY3JldCBnZW5lcmF0ZWQgYnkgR2l0TGFiSggic2VjcmV0IvpCB3IFEAEYyAESgQEKBnNjb3BlcxgEIAMoCUJxkkFeMjxUaGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCB0byBHaXRMYWJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgFIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMiUwoZQWRkR2l0TGFiUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIvUDChtVcGRhdGVHaXRMYWJQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAESWwoEbmFtZRgCIAEoCUJNkkFCMjZHaXRMYWIgd2lsbCBiZSB1c2VkIGFzIGRlZmF1bHQsIGlmIG5vIG5hbWUgaXMgcHJvdmlkZWRKCCJHaXRMYWIi+kIFcgMYyAESTAoJY2xpZW50X2lkGAMgASgJQjmSQSwyHUNsaWVudCBpZCBnZW5lcmF0ZWQgYnkgR2l0TGFiSgsiY2xpZW50LWlkIvpCB3IFEAEYyAESXAoNY2xpZW50X3NlY3JldBgEIAEoCUJFkkE6Mi5DbGllbnQgc2VjcmV0IHdpbGwgb25seSBiZSB1cGRhdGVkIGlmIHByb3ZpZGVkSggic2VjcmV0IvpCBXIDGMgBEoEBCgZzY29wZXMYBSADKAlCcZJBXjI8VGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3QgdG8gR2l0TGFiSh5bIm9wZW5pZCIsICJwcm9maWxlIiwgImVtYWlsIl36Qg2SAQoQFCIGcgQQARhkEjEKEHByb3ZpZGVyX29wdGlvbnMYBiABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zIkoKHFVwZGF0ZUdpdExhYlByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyK/AwoiQWRkR2l0TGFiU2VsZkhvc3RlZFByb3ZpZGVyUmVxdWVzdBIaCgZpc3N1ZXIYASABKAlCCvpCB3IFEAEYyAESJQoEbmFtZRgCIAEoCUIXkkEKSggiR2l0TGFiIvpCB3IFEAEYyAESTAoJY2xpZW50X2lkGAMgASgJQjmSQSwyHUNsaWVudCBpZCBnZW5lcmF0ZWQgYnkgR2l0TGFiSgsiY2xpZW50LWlkIvpCB3IFEAEYyAESUQoNY2xpZW50X3NlY3JldBgEIAEoCUI6kkEtMiFDbGllbnQgc2VjcmV0IGdlbmVyYXRlZCBieSBHaXRMYWJKCCJzZWNyZXQi+kIHcgUQARjIARKBAQoGc2NvcGVzGAUgAygJQnGSQV4yPFRoZSBzY29wZXMgcmVxdWVzdGVkIGJ5IFppdGFkZWwgZHVyaW5nIHRoZSByZXF1ZXN0IHRvIEdpdExhYkoeWyJvcGVuaWQiLCAicHJvZmlsZSIsICJlbWFpbCJd+kINkgEKEBQiBnIEEAEYZBIxChBwcm92aWRlcl9vcHRpb25zGAYgASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucyJdCiNBZGRHaXRMYWJTZWxmSG9zdGVkUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIuUDCiVVcGRhdGVHaXRMYWJTZWxmSG9zdGVkUHJvdmlkZXJSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBEhoKBmlzc3VlchgCIAEoCUIK+kIHcgUQARjIARIlCgRuYW1lGAMgASgJQheSQQpKCCJHaXRMYWIi+kIHcgUQARjIARJMCgljbGllbnRfaWQYBCABKAlCOZJBLDIdQ2xpZW50IGlkIGdlbmVyYXRlZCBieSBHaXRMYWJKCyJjbGllbnQtaWQi+kIHcgUQARjIARJcCg1jbGllbnRfc2VjcmV0GAUgASgJQkWSQToyLkNsaWVudCBzZWNyZXQgd2lsbCBvbmx5IGJlIHVwZGF0ZWQgaWYgcHJvdmlkZWRKCCJzZWNyZXQi+kIFcgMYyAESgQEKBnNjb3BlcxgGIAMoCUJxkkFeMjxUaGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCB0byBHaXRMYWJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgHIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMiVAomVXBkYXRlR2l0TGFiU2VsZkhvc3RlZFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyLPAwoYQWRkR29vZ2xlUHJvdmlkZXJSZXF1ZXN0ElsKBG5hbWUYASABKAlCTZJBQjI2R29vZ2xlIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0LCBpZiBubyBuYW1lIGlzIHByb3ZpZGVkSggiR29vZ2xlIvpCBXIDGMgBEkwKCWNsaWVudF9pZBgCIAEoCUI5kkEsMh1DbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IEdvb2dsZUoLImNsaWVudC1pZCL6QgdyBRABGMgBElEKDWNsaWVudF9zZWNyZXQYAyABKAlCOpJBLTIhQ2xpZW50IHNlY3JldCBnZW5lcmF0ZWQgYnkgR29vZ2xlSggic2VjcmV0IvpCB3IFEAEYyAESgQEKBnNjb3BlcxgEIAMoCUJxkkFeMjxUaGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCB0byBHb29nbGVKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgFIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMiUwoZQWRkR29vZ2xlUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIr0DChtVcGRhdGVHb29nbGVQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAESIwoEbmFtZRgCIAEoCUIVkkEKSggiR29vZ2xlIvpCBXIDGMgBEkwKCWNsaWVudF9pZBgDIAEoCUI5kkEsMh1DbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IEdvb2dsZUoLImNsaWVudC1pZCL6QgdyBRABGMgBElwKDWNsaWVudF9zZWNyZXQYBCABKAlCRZJBOjIuQ2xpZW50IHNlY3JldCB3aWxsIG9ubHkgYmUgdXBkYXRlZCBpZiBwcm92aWRlZEoIInNlY3JldCL6QgVyAxjIARKBAQoGc2NvcGVzGAUgAygJQnGSQV4yPFRoZSBzY29wZXMgcmVxdWVzdGVkIGJ5IFppdGFkZWwgZHVyaW5nIHRoZSByZXF1ZXN0IHRvIEdvb2dsZUoeWyJvcGVuaWQiLCAicHJvZmlsZSIsICJlbWFpbCJd+kINkgEKEBQiBnIEEAEYZBIxChBwcm92aWRlcl9vcHRpb25zGAYgASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucyJKChxVcGRhdGVHb29nbGVQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi8gMKFkFkZExEQVBQcm92aWRlclJlcXVlc3QSGAoEbmFtZRgBIAEoCUIK+kIHcgUQARjIARIkCgdzZXJ2ZXJzGAIgAygJQhP6QhCSAQ0IARAUIgdyBRABGMgBEhEKCXN0YXJ0X3RscxgDIAEoCBIbCgdiYXNlX2RuGAQgASgJQgr6QgdyBRABGMgBEhsKB2JpbmRfZG4YBSABKAlCCvpCB3IFEAEYyAESIQoNYmluZF9wYXNzd29yZBgGIAEoCUIK+kIHcgUQARjIARIdCgl1c2VyX2Jhc2UYByABKAlCCvpCB3IFEAEYyAESMAoTdXNlcl9vYmplY3RfY2xhc3NlcxgIIAMoCUIT+kIQkgENCAEQFCIHcgUQARjIARIpCgx1c2VyX2ZpbHRlcnMYCSADKAlCE/pCEJIBDQgBEBQiB3IFEAEYyAESKgoHdGltZW91dBgKIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIyCgphdHRyaWJ1dGVzGAsgASgLMh4ueml0YWRlbC5pZHAudjEuTERBUEF0dHJpYnV0ZXMSMQoQcHJvdmlkZXJfb3B0aW9ucxgMIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSGQoHcm9vdF9jYRgNIAEoDEII+kIFegMY4F0iUQoXQWRkTERBUFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCSKLBAoZVXBkYXRlTERBUFByb3ZpZGVyUmVxdWVzdBIWCgJpZBgBIAEoCUIK+kIHcgUQARjIARIYCgRuYW1lGAIgASgJQgr6QgdyBRABGMgBEiQKB3NlcnZlcnMYAyADKAlCE/pCEJIBDQgBEBQiB3IFEAEYyAESEQoJc3RhcnRfdGxzGAQgASgIEhsKB2Jhc2VfZG4YBSABKAlCCvpCB3IFEAEYyAESGwoHYmluZF9kbhgGIAEoCUIK+kIHcgUQARjIARIfCg1iaW5kX3Bhc3N3b3JkGAcgASgJQgj6QgVyAxjIARIdCgl1c2VyX2Jhc2UYCCABKAlCCvpCB3IFEAEYyAESMAoTdXNlcl9vYmplY3RfY2xhc3NlcxgJIAMoCUIT+kIQkgENCAEQFCIHcgUQARjIARIpCgx1c2VyX2ZpbHRlcnMYCiADKAlCE/pCEJIBDQgBEBQiB3IFEAEYyAESKgoHdGltZW91dBgLIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIyCgphdHRyaWJ1dGVzGAwgASgLMh4ueml0YWRlbC5pZHAudjEuTERBUEF0dHJpYnV0ZXMSMQoQcHJvdmlkZXJfb3B0aW9ucxgNIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSGQoHcm9vdF9jYRgOIAEoDEII+kIFegMY4F0iSAoaVXBkYXRlTERBUFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyLWBQoXQWRkQXBwbGVQcm92aWRlclJlcXVlc3QSXAoEbmFtZRgBIAEoCUJOkkFDMjVBcHBsZSB3aWxsIGJlIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm8gbmFtZSBpcyBwcm92aWRlZEoHIkFwcGxlInjIAfpCBXIDGMgBEmsKCWNsaWVudF9pZBgCIAEoCUJYkkFHMjJDbGllbnQgaWQgKEFwcCBJRCBvciBTZXJ2aWNlIElEKSBwcm92aWRlZCBieSBBcHBsZUoLImNsaWVudC1pZCJ4yAGAAQHiQQEC+kIHcgUQARjIARJdCgd0ZWFtX2lkGAMgASgJQkySQT0yKCgxMC1jaGFyYWN0ZXIpIFRlYW0gSUQgcHJvdmlkZWQgYnkgQXBwbGVKDCJBTFQwM0pWM09TIngKgAEK4kEBAvpCBXIDmAEKEmoKBmtleV9pZBgEIAEoCUJakkFLMjcoMTAtY2hhcmFjdGVyKSBJRCBvZiB0aGUgcHJpdmF0ZSBrZXkgZ2VuZXJhdGVkIGJ5IEFwcGxlSgsiT0dLREsyNUtEIngKgAEK4kEBAvpCBXIDmAEKEnoKC3ByaXZhdGVfa2V5GAUgASgMQmWSQVQyHlByaXZhdGUgS2V5IGdlbmVyYXRlZCBieSBBcHBsZUosIkxTMHRMUzFDUlVkSlRpQlFVa2xXUVZSRklFdEZXUzB0TFMwdENrMS4uLiJ4iCeAAQHiQQEC+kIHegUQARiIJxJ2CgZzY29wZXMYBiADKAlCZpJBUzI7VGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3QgdG8gQXBwbGVKEVsibmFtZSIsICJlbWFpbCJdoAEU+kINkgEKEBQiBnIEEAEYZBIxChBwcm92aWRlcl9vcHRpb25zGAcgASgLMhcueml0YWRlbC5pZHAudjEuT3B0aW9ucyJSChhBZGRBcHBsZVByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscxIKCgJpZBgCIAEoCSK/BQoaVXBkYXRlQXBwbGVQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAESJQoEbmFtZRgCIAEoCUIXkkEMSgciQXBwbGUieMgB+kIFcgMYyAESawoJY2xpZW50X2lkGAMgASgJQliSQUcyMkNsaWVudCBpZCAoQXBwIElEIG9yIFNlcnZpY2UgSUQpIHByb3ZpZGVkIGJ5IEFwcGxlSgsiY2xpZW50LWlkInjIAYABAeJBAQL6QgdyBRABGMgBEl0KB3RlYW1faWQYBCABKAlCTJJBPTIoKDEwLWNoYXJhY3RlcikgVGVhbSBJRCBwcm92aWRlZCBieSBBcHBsZUoMIkFMVDAzSlYzT1MieAqAAQriQQEC+kIFcgOYAQoSagoGa2V5X2lkGAUgASgJQlqSQUsyNygxMC1jaGFyYWN0ZXIpIElEIG9mIHRoZSBwcml2YXRlIGtleSBnZW5lcmF0ZWQgYnkgQXBwbGVKCyJPR0tESzI1S0QieAqAAQriQQEC+kIFcgOYAQoScQoLcHJpdmF0ZV9rZXkYBiABKAxCXJJBUTIeUHJpdmF0ZSBLZXkgZ2VuZXJhdGVkIGJ5IEFwcGxlSiwiTFMwdExTMUNSVWRKVGlCUVVrbFdRVlJGSUV0RldTMHRMUzB0Q2sxLi4uIniIJ/pCBXoDGIgnEoMBCgZzY29wZXMYByADKAlCc5JBYDI7VGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3QgdG8gQXBwbGVKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXaABFPpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgIIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMiSQobVXBkYXRlQXBwbGVQcm92aWRlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi2gQKFkFkZFNBTUxQcm92aWRlclJlcXVlc3QSGAoEbmFtZRgBIAEoCUIK+kIHcgUQARjIARIhCgxtZXRhZGF0YV94bWwYAiABKAxCCfpCBnoEGKDCHkgAEkUKDG1ldGFkYXRhX3VybBgDIAEoCUItkkEiSiAiaHR0cHM6Ly90ZXN0LmNvbS9zYW1sL21ldGFkYXRhIvpCBXIDGMgBSAASLAoHYmluZGluZxgEIAEoDjIbLnppdGFkZWwuaWRwLnYxLlNBTUxCaW5kaW5nEhsKE3dpdGhfc2lnbmVkX3JlcXVlc3QYBSABKAgSMQoQcHJvdmlkZXJfb3B0aW9ucxgGIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSPQoObmFtZV9pZF9mb3JtYXQYByABKA4yIC56aXRhZGVsLmlkcC52MS5TQU1MTmFtZUlERm9ybWF0SAGIAQESLQogdHJhbnNpZW50X21hcHBpbmdfYXR0cmlidXRlX25hbWUYCCABKAlIAogBARIlChhmZWRlcmF0ZWRfbG9nb3V0X2VuYWJsZWQYCSABKAhIA4gBARJDChNzaWduYXR1cmVfYWxnb3JpdGhtGAogASgOMiYueml0YWRlbC5pZHAudjEuU0FNTFNpZ25hdHVyZUFsZ29yaXRobUIPCghtZXRhZGF0YRID+EIBQhEKD19uYW1lX2lkX2Zvcm1hdEIjCiFfdHJhbnNpZW50X21hcHBpbmdfYXR0cmlidXRlX25hbWVCGwoZX2ZlZGVyYXRlZF9sb2dvdXRfZW5hYmxlZCJRChdBZGRTQU1MUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIvUEChlVcGRhdGVTQU1MUHJvdmlkZXJSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBEhgKBG5hbWUYAiABKAlCCvpCB3IFEAEYyAESIQoMbWV0YWRhdGFfeG1sGAMgASgMQgn6QgZ6BBigwh5IABJFCgxtZXRhZGF0YV91cmwYBCABKAlCLZJBIkogImh0dHBzOi8vdGVzdC5jb20vc2FtbC9tZXRhZGF0YSL6QgVyAxjIAUgAEiwKB2JpbmRpbmcYBSABKA4yGy56aXRhZGVsLmlkcC52MS5TQU1MQmluZGluZxIbChN3aXRoX3NpZ25lZF9yZXF1ZXN0GAYgASgIEjEKEHByb3ZpZGVyX29wdGlvbnMYByABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zEj0KDm5hbWVfaWRfZm9ybWF0GAggASgOMiAueml0YWRlbC5pZHAudjEuU0FNTE5hbWVJREZvcm1hdEgBiAEBEi0KIHRyYW5zaWVudF9tYXBwaW5nX2F0dHJpYnV0ZV9uYW1lGAkgASgJSAKIAQESJQoYZmVkZXJhdGVkX2xvZ291dF9lbmFibGVkGAogASgISAOIAQESQwoTc2lnbmF0dXJlX2FsZ29yaXRobRgLIAEoDjImLnppdGFkZWwuaWRwLnYxLlNBTUxTaWduYXR1cmVBbGdvcml0aG1CDwoIbWV0YWRhdGESA/hCAUIRCg9fbmFtZV9pZF9mb3JtYXRCIwohX3RyYW5zaWVudF9tYXBwaW5nX2F0dHJpYnV0ZV9uYW1lQhsKGV9mZWRlcmF0ZWRfbG9nb3V0X2VuYWJsZWQiSAoaVXBkYXRlU0FNTFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJCCihSZWdlbmVyYXRlU0FNTFByb3ZpZGVyQ2VydGlmaWNhdGVSZXF1ZXN0EhYKAmlkGAEgASgJQgr6QgdyBRABGMgBIlcKKVJlZ2VuZXJhdGVTQU1MUHJvdmlkZXJDZXJ0aWZpY2F0ZVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi9QQKGUFkZFppdGFkZWxQcm92aWRlclJlcXVlc3QSJgoEbmFtZRgBIAEoCUIYkkELSgkiWml0YWRlbCL6QgdyBRABGMgBEmcKBmlzc3VlchgCIAEoCUJXkkFKMih0aGUgT0lEQyBpc3N1ZXIgb2YgdGhlIGlkZW50aXR5IHByb3ZpZGVySh4iaHR0cHM6Ly96aXRhZGVsLmV4YW1wbGUuY29tLyL6QgdyBRABGMgBElsKCWNsaWVudF9pZBgDIAEoCUJIkkE7MixjbGllbnQgaWQgZ2VuZXJhdGVkIGJ5IHRoZSBpZGVudGl0eSBwcm92aWRlckoLImNsaWVudC1pZCL6QgdyBRABGMgBElkKDWNsaWVudF9zZWNyZXQYBCABKAlCQpJBNTIpc2VjcmV0IGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKCCJzZWNyZXQi+kIHcgUQARjoBxKRAQoGc2NvcGVzGAUgAygJQoABkkFtMkt0aGUgc2NvcGVzIHJlcXVlc3RlZCBieSBaaXRhZGVsIGR1cmluZyB0aGUgcmVxdWVzdCBvbiB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKHlsib3BlbmlkIiwgInByb2ZpbGUiLCAiZW1haWwiXfpCDZIBChAUIgZyBBABGGQSMQoQcHJvdmlkZXJfb3B0aW9ucxgGIAEoCzIXLnppdGFkZWwuaWRwLnYxLk9wdGlvbnMSSAoTaW5zdGFuY2Vfcm9sZXNfaW5mbxgHIAMoCzIhLnppdGFkZWwuaWRwLnYxLkluc3RhbmNlUm9sZXNJbmZvQgj6QgWSAQIQFCJUChpBZGRaaXRhZGVsUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEgoKAmlkGAIgASgJIqsFChxVcGRhdGVaaXRhZGVsUHJvdmlkZXJSZXF1ZXN0Ei4KAmlkGAEgASgJQiKSQRVKEyI2OTYyOTAyMzkwNjQ4ODMzNCL6QgdyBRABGMgBEiYKBG5hbWUYAiABKAlCGJJBC0oJIlppdGFkZWwi+kIHcgUQARjIARJnCgZpc3N1ZXIYAyABKAlCV5JBSjIodGhlIE9JREMgaXNzdWVyIG9mIHRoZSBpZGVudGl0eSBwcm92aWRlckoeImh0dHBzOi8veml0YWRlbC5leGFtcGxlLmNvbS8i+kIHcgUQARjIARJbCgljbGllbnRfaWQYBCABKAlCSJJBOzIsY2xpZW50IGlkIGdlbmVyYXRlZCBieSB0aGUgaWRlbnRpdHkgcHJvdmlkZXJKCyJjbGllbnQtaWQi+kIHcgUQARjIARJcCg1jbGllbnRfc2VjcmV0GAUgASgJQkWSQToyLmNsaWVudCBzZWNyZXQgd2lsbCBvbmx5IGJlIHVwZGF0ZWQgaWYgcHJvdmlkZWRKCCJzZWNyZXQi+kIFcgMY6AcSkQEKBnNjb3BlcxgGIAMoCUKAAZJBbTJLdGhlIHNjb3BlcyByZXF1ZXN0ZWQgYnkgWml0YWRlbCBkdXJpbmcgdGhlIHJlcXVlc3Qgb24gdGhlIGlkZW50aXR5IHByb3ZpZGVySh5bIm9wZW5pZCIsICJwcm9maWxlIiwgImVtYWlsIl36Qg2SAQoQFCIGcgQQARhkEjEKEHByb3ZpZGVyX29wdGlvbnMYByABKAsyFy56aXRhZGVsLmlkcC52MS5PcHRpb25zEkgKE2luc3RhbmNlX3JvbGVzX2luZm8YCCADKAsyIS56aXRhZGVsLmlkcC52MS5JbnN0YW5jZVJvbGVzSW5mb0II+kIFkgECEBQiSwodVXBkYXRlWml0YWRlbFByb3ZpZGVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIvChVEZWxldGVQcm92aWRlclJlcXVlc3QSFgoCaWQYASABKAlCCvpCB3IFEAEYyAEiRAoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIhgKFkdldE9yZ0lBTVBvbGljeVJlcXVlc3QiSgoXR2V0T3JnSUFNUG9saWN5UmVzcG9uc2USLwoGcG9saWN5GAEgASgLMh8ueml0YWRlbC5wb2xpY3kudjEuT3JnSUFNUG9saWN5Ij4KGVVwZGF0ZU9yZ0lBTVBvbGljeVJlcXVlc3QSIQoZdXNlcl9sb2dpbl9tdXN0X2JlX2RvbWFpbhgBIAEoCCJIChpVcGRhdGVPcmdJQU1Qb2xpY3lSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzImgKHEdldEN1c3RvbU9yZ0lBTVBvbGljeVJlcXVlc3QSOAoGb3JnX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBOg6SQQsKCdIBBm9yZ19pZCJkCh1HZXRDdXN0b21PcmdJQU1Qb2xpY3lSZXNwb25zZRIvCgZwb2xpY3kYASABKAsyHy56aXRhZGVsLnBvbGljeS52MS5PcmdJQU1Qb2xpY3kSEgoKaXNfZGVmYXVsdBgCIAEoCCLOAQocQWRkQ3VzdG9tT3JnSUFNUG9saWN5UmVxdWVzdBI5CgZvcmdfaWQYASABKAlCKZJBHEoUIiM2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBEmMKGXVzZXJfbG9naW5fbXVzdF9iZV9kb21haW4YAiABKAhCQJJBPTI7dGhlIHVzZXJuYW1lIGhhcyB0byBlbmQgd2l0aCB0aGUgZG9tYWluIG9mIGl0cyBvcmdhbml6YXRpb246DpJBCwoJ0gEGb3JnX2lkIksKHUFkZEN1c3RvbU9yZ0lBTVBvbGljeVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi0AEKH1VwZGF0ZUN1c3RvbU9yZ0lBTVBvbGljeVJlcXVlc3QSOAoGb3JnX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBEmMKGXVzZXJfbG9naW5fbXVzdF9iZV9kb21haW4YAiABKAhCQJJBPTI7dGhlIHVzZXJuYW1lIGhhcyB0byBlbmQgd2l0aCB0aGUgZG9tYWluIG9mIGl0cyBvcmdhbml6YXRpb246DpJBCwoJ0gEGb3JnX2lkIk4KIFVwZGF0ZUN1c3RvbU9yZ0lBTVBvbGljeVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMicwonUmVzZXRDdXN0b21PcmdJQU1Qb2xpY3lUb0RlZmF1bHRSZXF1ZXN0EjgKBm9yZ19pZBgBIAEoCUIokkEbShMiNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIAToOkkELCgnSAQZvcmdfaWQiVgooUmVzZXRDdXN0b21PcmdJQU1Qb2xpY3lUb0RlZmF1bHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIhgKFkdldERvbWFpblBvbGljeVJlcXVlc3QiSgoXR2V0RG9tYWluUG9saWN5UmVzcG9uc2USLwoGcG9saWN5GAEgASgLMh8ueml0YWRlbC5wb2xpY3kudjEuRG9tYWluUG9saWN5IpEBChlVcGRhdGVEb21haW5Qb2xpY3lSZXF1ZXN0EiEKGXVzZXJfbG9naW5fbXVzdF9iZV9kb21haW4YASABKAgSHAoUdmFsaWRhdGVfb3JnX2RvbWFpbnMYAiABKAgSMworc210cF9zZW5kZXJfYWRkcmVzc19tYXRjaGVzX2luc3RhbmNlX2RvbWFpbhgDIAEoCCJIChpVcGRhdGVEb21haW5Qb2xpY3lSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzImkKHEdldEN1c3RvbURvbWFpblBvbGljeVJlcXVlc3QSOQoGb3JnX2lkGAEgASgJQimSQRxKFCIjNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIAToOkkELCgnSAQZvcmdfaWQiZAodR2V0Q3VzdG9tRG9tYWluUG9saWN5UmVzcG9uc2USLwoGcG9saWN5GAEgASgLMh8ueml0YWRlbC5wb2xpY3kudjEuRG9tYWluUG9saWN5EhIKCmlzX2RlZmF1bHQYAiABKAgi4QMKHEFkZEN1c3RvbURvbWFpblBvbGljeVJlcXVlc3QSOQoGb3JnX2lkGAEgASgJQimSQRxKFCIjNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIARJjChl1c2VyX2xvZ2luX211c3RfYmVfZG9tYWluGAIgASgIQkCSQT0yO3RoZSB1c2VybmFtZSBoYXMgdG8gZW5kIHdpdGggdGhlIGRvbWFpbiBvZiBpdHMgb3JnYW5pemF0aW9uEnsKFHZhbGlkYXRlX29yZ19kb21haW5zGAMgASgIQl2SQVoyWGRlZmluZXMgaWYgT3JnYW5pemF0aW9uIERvbWFpbnMgc2hvdWxkIGJlIHZhbGlkYXRlZCBvcmcgY291bnQgYXMgdmFsaWRhdGVkIGF1dG9tYXRpY2FsbHkSkwEKK3NtdHBfc2VuZGVyX2FkZHJlc3NfbWF0Y2hlc19pbnN0YW5jZV9kb21haW4YBCABKAhCXpJBWzJZZGVmaW5lcyBpZiB0aGUgU01UUCBzZW5kZXIgYWRkcmVzcyBkb21haW4gc2hvdWxkIG1hdGNoIGFuIGV4aXN0aW5nIGRvbWFpbiBvbiB0aGUgaW5zdGFuY2U6DpJBCwoJ0gEGb3JnX2lkIksKHUFkZEN1c3RvbURvbWFpblBvbGljeVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMi4wMKH1VwZGF0ZUN1c3RvbURvbWFpblBvbGljeVJlcXVlc3QSOAoGb3JnX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBEmMKGXVzZXJfbG9naW5fbXVzdF9iZV9kb21haW4YAiABKAhCQJJBPTI7dGhlIHVzZXJuYW1lIGhhcyB0byBlbmQgd2l0aCB0aGUgZG9tYWluIG9mIGl0cyBvcmdhbml6YXRpb24SewoUdmFsaWRhdGVfb3JnX2RvbWFpbnMYAyABKAhCXZJBWjJYZGVmaW5lcyBpZiBPcmdhbml6YXRpb24gRG9tYWlucyBzaG91bGQgYmUgdmFsaWRhdGVkIG9yZyBjb3VudCBhcyB2YWxpZGF0ZWQgYXV0b21hdGljYWxseRKTAQorc210cF9zZW5kZXJfYWRkcmVzc19tYXRjaGVzX2luc3RhbmNlX2RvbWFpbhgEIAEoCEJekkFbMllkZWZpbmVzIGlmIHRoZSBTTVRQIHNlbmRlciBhZGRyZXNzIGRvbWFpbiBzaG91bGQgbWF0Y2ggYW4gZXhpc3RpbmcgZG9tYWluIG9uIHRoZSBpbnN0YW5jZToOkkELCgnSAQZvcmdfaWQiTgogVXBkYXRlQ3VzdG9tRG9tYWluUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJzCidSZXNldEN1c3RvbURvbWFpblBvbGljeVRvRGVmYXVsdFJlcXVlc3QSOAoGb3JnX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBOg6SQQsKCdIBBm9yZ19pZCJWCihSZXNldEN1c3RvbURvbWFpblBvbGljeVRvRGVmYXVsdFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiFwoVR2V0TGFiZWxQb2xpY3lSZXF1ZXN0IkgKFkdldExhYmVsUG9saWN5UmVzcG9uc2USLgoGcG9saWN5GAEgASgLMh4ueml0YWRlbC5wb2xpY3kudjEuTGFiZWxQb2xpY3kiHgocR2V0UHJldmlld0xhYmVsUG9saWN5UmVxdWVzdCJPCh1HZXRQcmV2aWV3TGFiZWxQb2xpY3lSZXNwb25zZRIuCgZwb2xpY3kYASABKAsyHi56aXRhZGVsLnBvbGljeS52MS5MYWJlbFBvbGljeSLpBwoYVXBkYXRlTGFiZWxQb2xpY3lSZXF1ZXN0EkkKDXByaW1hcnlfY29sb3IYASABKAlCMpJBKDIZcmVwcmVzZW50cyBhIGNvbG9yIHNjaGVtZUoJIiMzNTM1MzUieDL6QgRyAhgyEpEBChZoaWRlX2xvZ2luX25hbWVfc3VmZml4GAMgASgIQnGSQW4ybGhpZGVzIHRoZSBvcmcgc3VmZml4IG9uIHRoZSBsb2dpbiBmb3JtIGlmIHRoZSBzY29wZSAidXJuOnppdGFkZWw6aWFtOm9yZzpkb21haW46cHJpbWFyeTp7ZG9tYWlubmFtZX0iIGlzIHNldBJFCgp3YXJuX2NvbG9yGAQgASgJQjGSQScyGGhleCB2YWx1ZSBmb3Igd2FybiBjb2xvckoJIiNDRDNENTYieDL6QgRyAhgyElEKEGJhY2tncm91bmRfY29sb3IYBSABKAlCN5JBLTIeaGV4IHZhbHVlIGZvciBiYWNrZ3JvdW5kIGNvbG9ySgkiI0ZBRkFGQSJ4MvpCBHICGDISRQoKZm9udF9jb2xvchgGIAEoCUIxkkEnMhhoZXggdmFsdWUgZm9yIGZvbnQgY29sb3JKCSIjMDAwMDAwIngy+kIEcgIYMhJfChJwcmltYXJ5X2NvbG9yX2RhcmsYByABKAlCQ5JBOTIqaGV4IHZhbHVlIGZvciB0aGUgcHJpbWFyeSBjb2xvciBkYXJrIHRoZW1lSgkiI0JCQkFGQSJ4MvpCBHICGDISYQoVYmFja2dyb3VuZF9jb2xvcl9kYXJrGAggASgJQkKSQTgyKWhleCB2YWx1ZSBmb3IgYmFja2dyb3VuZCBjb2xvciBkYXJrIHRoZW1lSgkiIzExMTgyNyJ4MvpCBHICGDISWAoPd2Fybl9jb2xvcl9kYXJrGAkgASgJQj+SQTUyJmhleCB2YWx1ZSBmb3Igd2FybmluZyBjb2xvciBkYXJrIHRoZW1lSgkiI0ZGM0I1QiJ4MvpCBHICGDISVQoPZm9udF9jb2xvcl9kYXJrGAogASgJQjySQTIyI2hleCB2YWx1ZSBmb3IgZm9udCBjb2xvciBkYXJrIHRoZW1lSgkiI0ZGRkZGRiJ4MvpCBHICGDISGQoRZGlzYWJsZV93YXRlcm1hcmsYCyABKAgSfQoKdGhlbWVfbW9kZRgMIAEoDjIcLnppdGFkZWwucG9saWN5LnYxLlRoZW1lTW9kZUJLkkFIMkZzZXR0aW5nIGlmIHRoZXJlIHNob3VsZCBiZSBhIHJlc3RyaWN0aW9uIG9uIHdoaWNoIHRoZW1lcyBhcmUgYXZhaWxhYmxlIkcKGVVwZGF0ZUxhYmVsUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIcChpBY3RpdmF0ZUxhYmVsUG9saWN5UmVxdWVzdCJJChtBY3RpdmF0ZUxhYmVsUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIeChxSZW1vdmVMYWJlbFBvbGljeUxvZ29SZXF1ZXN0IksKHVJlbW92ZUxhYmVsUG9saWN5TG9nb1Jlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiIgogUmVtb3ZlTGFiZWxQb2xpY3lMb2dvRGFya1JlcXVlc3QiTwohUmVtb3ZlTGFiZWxQb2xpY3lMb2dvRGFya1Jlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiHgocUmVtb3ZlTGFiZWxQb2xpY3lJY29uUmVxdWVzdCJLCh1SZW1vdmVMYWJlbFBvbGljeUljb25SZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIiIKIFJlbW92ZUxhYmVsUG9saWN5SWNvbkRhcmtSZXF1ZXN0Ik8KIVJlbW92ZUxhYmVsUG9saWN5SWNvbkRhcmtSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIh4KHFJlbW92ZUxhYmVsUG9saWN5Rm9udFJlcXVlc3QiSwodUmVtb3ZlTGFiZWxQb2xpY3lGb250UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIXChVHZXRMb2dpblBvbGljeVJlcXVlc3QiSAoWR2V0TG9naW5Qb2xpY3lSZXNwb25zZRIuCgZwb2xpY3kYASABKAsyHi56aXRhZGVsLnBvbGljeS52MS5Mb2dpblBvbGljeSKpDwoYVXBkYXRlTG9naW5Qb2xpY3lSZXF1ZXN0EmcKF2FsbG93X3VzZXJuYW1lX3Bhc3N3b3JkGAEgASgIQkaSQUMyQWRlZmluZXMgaWYgYSB1c2VyIGlzIGFsbG93ZWQgdG8gbG9nIGluIHdpdGggdXNlcm5hbWUgYW5kIHBhc3N3b3JkEmMKDmFsbG93X3JlZ2lzdGVyGAIgASgIQkuSQUgyRmRlZmluZXMgaWYgYSBwZXJzb24gaXMgYWxsb3dlZCB0byByZWdpc3RlciBhIHVzZXIgb24gdGhpcyBvcmdhbml6YXRpb24ScgoSYWxsb3dfZXh0ZXJuYWxfaWRwGAMgASgIQlaSQVMyUWRlZmluZXMgaWYgYSB1c2VyIGlzIGFsbG93ZWQgdG8gYWRkIGEgZGVmaW5lZCBpZGVudGl0eSBwcm92aWRlci4gRS5nLiBHb29nbGUgYXV0aBJLCglmb3JjZV9tZmEYBCABKAhCOJJBNTIzZGVmaW5lcyBpZiBhIHVzZXIgTVVTVCB1c2UgYSBtdWx0aS1mYWN0b3IgdG8gbG9nIGluEnkKEXBhc3N3b3JkbGVzc190eXBlGAUgASgOMiMueml0YWRlbC5wb2xpY3kudjEuUGFzc3dvcmRsZXNzVHlwZUI5kkEuMixkZWZpbmVzIGlmIHBhc3N3b3JkbGVzcyBpcyBhbGxvd2VkIGZvciB1c2Vyc/pCBYIBAhABEmQKE2hpZGVfcGFzc3dvcmRfcmVzZXQYBiABKAhCR5JBRDJCZGVmaW5lcyBpZiBwYXNzd29yZCByZXNldCBsaW5rIHNob3VsZCBiZSBzaG93biBpbiB0aGUgbG9naW4gc2NyZWVuEpMBChhpZ25vcmVfdW5rbm93bl91c2VybmFtZXMYByABKAhCcZJBbjJsZGVmaW5lcyBpZiB1bmtub3duIHVzZXJuYW1lIG9uIGxvZ2luIHNjcmVlbiBkaXJlY3RseSByZXR1cm5zIGFuIGVycm9yIG9yIGFsd2F5cyBkaXNwbGF5cyB0aGUgcGFzc3dvcmQgc2NyZWVuEowBChRkZWZhdWx0X3JlZGlyZWN0X3VyaRgIIAEoCUJukkFrMmlkZWZpbmVzIHdoZXJlIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byBpZiB0aGUgbG9naW4gaXMgc3RhcnRlZCB3aXRob3V0IGFwcCBjb250ZXh0IChlLmcuIGZyb20gbWFpbCkSOgoXcGFzc3dvcmRfY2hlY2tfbGlmZXRpbWUYCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SQAodZXh0ZXJuYWxfbG9naW5fY2hlY2tfbGlmZXRpbWUYCiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SOQoWbWZhX2luaXRfc2tpcF9saWZldGltZRgLIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhI/ChxzZWNvbmRfZmFjdG9yX2NoZWNrX2xpZmV0aW1lGAwgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEj4KG211bHRpX2ZhY3Rvcl9jaGVja19saWZldGltZRgNIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhLwAQoWYWxsb3dfZG9tYWluX2Rpc2NvdmVyeRgOIAEoCELPAZJBywEyyAFJZiBzZXQgdG8gdHJ1ZSwgdGhlIHN1ZmZpeCAoQGRvbWFpbi5jb20pIG9mIGFuIHVua25vd24gdXNlcm5hbWUgaW5wdXQgb24gdGhlIGxvZ2luIHNjcmVlbiB3aWxsIGJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgb3JnIGRvbWFpbnMgYW5kIHdpbGwgcmVkaXJlY3QgdG8gdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGF0IG9yZ2FuaXphdGlvbiBvbiBzdWNjZXNzLhKNAQoYZGlzYWJsZV9sb2dpbl93aXRoX2VtYWlsGA8gASgIQmuSQWgyZmRlZmluZXMgaWYgdGhlIHVzZXIgY2FuIGFkZGl0aW9uYWxseSAodG8gdGhlIGxvZ2luIG5hbWUpIGJlIGlkZW50aWZpZWQgYnkgdGhlaXIgdmVyaWZpZWQgZW1haWwgYWRkcmVzcxKMAQoYZGlzYWJsZV9sb2dpbl93aXRoX3Bob25lGBAgASgIQmqSQWcyZWRlZmluZXMgaWYgdGhlIHVzZXIgY2FuIGFkZGl0aW9uYWxseSAodG8gdGhlIGxvZ2luIG5hbWUpIGJlIGlkZW50aWZpZWQgYnkgdGhlaXIgdmVyaWZpZWQgcGhvbmUgbnVtYmVyEqsBChRmb3JjZV9tZmFfbG9jYWxfb25seRgRIAEoCEKMAZJBiAEyhQFpZiBhY3RpdmF0ZWQsIG9ubHkgbG9jYWwgYXV0aGVudGljYXRlZCB1c2VycyBhcmUgZm9yY2VkIHRvIHVzZSBNRkEuIEF1dGhlbnRpY2F0aW9uIHRocm91Z2ggSURQcyB3b24ndCBwcm9tcHQgYSBNRkEgc3RlcCBpbiB0aGUgbG9naW4uIkcKGVVwZGF0ZUxvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJCChpMaXN0TG9naW5Qb2xpY3lJRFBzUmVxdWVzdBIkCgVxdWVyeRgBIAEoCzIVLnppdGFkZWwudjEuTGlzdFF1ZXJ5InsKG0xpc3RMb2dpblBvbGljeUlEUHNSZXNwb25zZRIoCgdkZXRhaWxzGAEgASgLMhcueml0YWRlbC52MS5MaXN0RGV0YWlscxIyCgZyZXN1bHQYAiADKAsyIi56aXRhZGVsLmlkcC52MS5JRFBMb2dpblBvbGljeUxpbmsikgEKGkFkZElEUFRvTG9naW5Qb2xpY3lSZXF1ZXN0EmQKBmlkcF9pZBgBIAEoCUJUkkFDMiZJZCBvZiB0aGUgcHJlZGVmaW5lZCBpZHAgY29uZmlndXJhdGlvbkoTIjY5NjI5MDIzOTA2NDg4MzM0InjIAYABAeJBAQL6QgdyBRABGMgBOg6SQQsKCdIBBm9yZ19pZCJJChtBZGRJRFBUb0xvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJrCh9SZW1vdmVJRFBGcm9tTG9naW5Qb2xpY3lSZXF1ZXN0EjgKBmlkcF9pZBgBIAEoCUIokkEbShMiNjk2MjkwMjM5MDY0ODgzMzQieMgBgAEB+kIHcgUQARjIAToOkkELCgnSAQZpZHBfaWQiTgogUmVtb3ZlSURQRnJvbUxvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIlCiNMaXN0TG9naW5Qb2xpY3lTZWNvbmRGYWN0b3JzUmVxdWVzdCKFAQokTGlzdExvZ2luUG9saWN5U2Vjb25kRmFjdG9yc1Jlc3BvbnNlEigKB2RldGFpbHMYASABKAsyFy56aXRhZGVsLnYxLkxpc3REZXRhaWxzEjMKBnJlc3VsdBgCIAMoDjIjLnppdGFkZWwucG9saWN5LnYxLlNlY29uZEZhY3RvclR5cGUicgojQWRkU2Vjb25kRmFjdG9yVG9Mb2dpblBvbGljeVJlcXVlc3QSPQoEdHlwZRgBIAEoDjIjLnppdGFkZWwucG9saWN5LnYxLlNlY29uZEZhY3RvclR5cGVCCvpCB4IBBBABIAA6DJJBCQoH0gEEdHlwZSJSCiRBZGRTZWNvbmRGYWN0b3JUb0xvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJ3CihSZW1vdmVTZWNvbmRGYWN0b3JGcm9tTG9naW5Qb2xpY3lSZXF1ZXN0Ej0KBHR5cGUYASABKA4yIy56aXRhZGVsLnBvbGljeS52MS5TZWNvbmRGYWN0b3JUeXBlQgr6QgeCAQQQASAAOgySQQkKB9IBBHR5cGUiVwopUmVtb3ZlU2Vjb25kRmFjdG9yRnJvbUxvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIkCiJMaXN0TG9naW5Qb2xpY3lNdWx0aUZhY3RvcnNSZXF1ZXN0IoMBCiNMaXN0TG9naW5Qb2xpY3lNdWx0aUZhY3RvcnNSZXNwb25zZRIoCgdkZXRhaWxzGAEgASgLMhcueml0YWRlbC52MS5MaXN0RGV0YWlscxIyCgZyZXN1bHQYAiADKA4yIi56aXRhZGVsLnBvbGljeS52MS5NdWx0aUZhY3RvclR5cGUicAoiQWRkTXVsdGlGYWN0b3JUb0xvZ2luUG9saWN5UmVxdWVzdBI8CgR0eXBlGAEgASgOMiIueml0YWRlbC5wb2xpY3kudjEuTXVsdGlGYWN0b3JUeXBlQgr6QgeCAQQQASAAOgySQQkKB9IBBHR5cGUiUQojQWRkTXVsdGlGYWN0b3JUb0xvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJ1CidSZW1vdmVNdWx0aUZhY3RvckZyb21Mb2dpblBvbGljeVJlcXVlc3QSPAoEdHlwZRgBIAEoDjIiLnppdGFkZWwucG9saWN5LnYxLk11bHRpRmFjdG9yVHlwZUIK+kIHggEEEAEgADoMkkEJCgfSAQR0eXBlIlYKKFJlbW92ZU11bHRpRmFjdG9yRnJvbUxvZ2luUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIkCiJHZXRQYXNzd29yZENvbXBsZXhpdHlQb2xpY3lSZXF1ZXN0ImIKI0dldFBhc3N3b3JkQ29tcGxleGl0eVBvbGljeVJlc3BvbnNlEjsKBnBvbGljeRgBIAEoCzIrLnppdGFkZWwucG9saWN5LnYxLlBhc3N3b3JkQ29tcGxleGl0eVBvbGljeSKLAwolVXBkYXRlUGFzc3dvcmRDb21wbGV4aXR5UG9saWN5UmVxdWVzdBIcCgptaW5fbGVuZ3RoGAEgASgNQgiSQQVKAyI4IhJVCg1oYXNfdXBwZXJjYXNlGAIgASgIQj6SQTsyOURlZmluZXMgaWYgdGhlIHBhc3N3b3JkIE1VU1QgY29udGFpbiBhbiB1cHBlciBjYXNlIGxldHRlchJTCg1oYXNfbG93ZXJjYXNlGAMgASgIQjySQTkyN0RlZmluZXMgaWYgdGhlIHBhc3N3b3JkIE1VU1QgY29udGFpbiBhIGxvd2VyY2FzZSBsZXR0ZXISRgoKaGFzX251bWJlchgEIAEoCEIykkEvMi1EZWZpbmVzIGlmIHRoZSBwYXNzd29yZCBNVVNUIGNvbnRhaW4gYSBudW1iZXISUAoKaGFzX3N5bWJvbBgFIAEoCEI8kkE5MjdEZWZpbmVzIGlmIHRoZSBwYXNzd29yZCBNVVNUIGNvbnRhaW4gYSBzeW1ib2wuIEUuZy4gIiQiIlQKJlVwZGF0ZVBhc3N3b3JkQ29tcGxleGl0eVBvbGljeVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiHQobR2V0UGFzc3dvcmRBZ2VQb2xpY3lSZXF1ZXN0IlQKHEdldFBhc3N3b3JkQWdlUG9saWN5UmVzcG9uc2USNAoGcG9saWN5GAEgASgLMiQueml0YWRlbC5wb2xpY3kudjEuUGFzc3dvcmRBZ2VQb2xpY3kiUAoeVXBkYXRlUGFzc3dvcmRBZ2VQb2xpY3lSZXF1ZXN0EhQKDG1heF9hZ2VfZGF5cxgBIAEoDRIYChBleHBpcmVfd2Fybl9kYXlzGAIgASgNIk0KH1VwZGF0ZVBhc3N3b3JkQWdlUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIZChdHZXRMb2Nrb3V0UG9saWN5UmVxdWVzdCJMChhHZXRMb2Nrb3V0UG9saWN5UmVzcG9uc2USMAoGcG9saWN5GAEgASgLMiAueml0YWRlbC5wb2xpY3kudjEuTG9ja291dFBvbGljeSLaAwoaVXBkYXRlTG9ja291dFBvbGljeVJlcXVlc3QSxgEKFW1heF9wYXNzd29yZF9hdHRlbXB0cxgBIAEoDUKmAZJBogEymQFNYXhpbXVtIHBhc3N3b3JkIGNoZWNrIGF0dGVtcHRzIGJlZm9yZSB0aGUgYWNjb3VudCBnZXRzIGxvY2tlZC4gQXR0ZW1wdHMgYXJlIHJlc2V0IGFzIHNvb24gYXMgdGhlIHBhc3N3b3JkIGlzIGVudGVyZWQgY29ycmVjdGx5IG9yIHRoZSBwYXNzd29yZCBpcyByZXNldC5KBCIxMCIS8gEKEG1heF9vdHBfYXR0ZW1wdHMYAiABKA1C1wGSQdMBMsoBTWF4aW11bSBmYWlsZWQgYXR0ZW1wdHMgZm9yIGEgc2luZ2xlIE9UUCB0eXBlIChUT1RQLCBTTVMsIEVtYWlsKSBiZWZvcmUgdGhlIGFjY291bnQgZ2V0cyBsb2NrZWQuIEF0dGVtcHRzIGFyZSByZXNldCBhcyBzb29uIGFzIHRoZSBPVFAgaXMgZW50ZXJlZCBjb3JyZWN0bHkuIElmIHNldCB0byAwIHRoZSBhY2NvdW50IHdpbGwgbmV2ZXIgYmUgbG9ja2VkLkoEIjEwIiJJChtVcGRhdGVMb2Nrb3V0UG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIZChdHZXRQcml2YWN5UG9saWN5UmVxdWVzdCJMChhHZXRQcml2YWN5UG9saWN5UmVzcG9uc2USMAoGcG9saWN5GAEgASgLMiAueml0YWRlbC5wb2xpY3kudjEuUHJpdmFjeVBvbGljeSKiBQoaVXBkYXRlUHJpdmFjeVBvbGljeVJlcXVlc3QSSAoIdG9zX2xpbmsYASABKAlCNpJBM0oxImh0dHBzOi8veml0YWRlbC5jb20vZG9jcy9sZWdhbC90ZXJtcy1vZi1zZXJ2aWNlIhJKCgxwcml2YWN5X2xpbmsYAiABKAlCNJJBMUovImh0dHBzOi8veml0YWRlbC5jb20vZG9jcy9sZWdhbC9wcml2YWN5LXBvbGljeSISRwoJaGVscF9saW5rGAMgASgJQjSSQTFKLyJodHRwczovL3ppdGFkZWwuY29tL2RvY3MvbWFudWFscy9pbnRyb2R1Y3Rpb24iEmAKDXN1cHBvcnRfZW1haWwYBCABKAlCSZJBOTIdaGVscCAvIHN1cHBvcnQgZW1haWwgYWRkcmVzcy5KGCJzdXBwb3J0LWVtYWlsQHRlc3QuY29tIvpCCnIIGMAC0AEBYAESMgoJZG9jc19saW5rGAUgASgJQh+SQRxKGiJodHRwczovL3ppdGFkZWwuY29tL2RvY3MiEooBCgtjdXN0b21fbGluaxgGIAEoCUJ1kkFyMldMaW5rIHRvIGFuIGV4dGVybmFsIHJlc291cmNlIHRoYXQgd2lsbCBiZSBhdmFpbGFibGUgdG8gdXNlcnMgaW4gdGhlIG1hbmFnZW1lbnQgY29uc29sZS5KFyJodHRwczovL2V4dGVybmFsLmxpbmsiEoEBChBjdXN0b21fbGlua190ZXh0GAcgASgJQmeSQWQyVlRoZSBidXR0b24gdGV4dCB0aGF0IHdvdWxkIGJlIHNob3duIGluIHRoZSBtYW5hZ2VtZW50IGNvbnNvbGUgcG9pbnRpbmcgdG8gY3VzdG9tIGxpbmsuSgoiRXh0ZXJuYWwiIkkKG1VwZGF0ZVByaXZhY3lQb2xpY3lSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIpgBChxBZGROb3RpZmljYXRpb25Qb2xpY3lSZXF1ZXN0EngKD3Bhc3N3b3JkX2NoYW5nZRgBIAEoCEJfkkFcMlpJZiBzZXQgdG8gdHJ1ZSB0aGUgdXNlcnMgd2lsbCBnZXQgYSBub3RpZmljYXRpb24gd2hlbmV2ZXIgdGhlaXIgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZC4iSwodQWRkTm90aWZpY2F0aW9uUG9saWN5UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIeChxHZXROb3RpZmljYXRpb25Qb2xpY3lSZXF1ZXN0IlYKHUdldE5vdGlmaWNhdGlvblBvbGljeVJlc3BvbnNlEjUKBnBvbGljeRgBIAEoCzIlLnppdGFkZWwucG9saWN5LnYxLk5vdGlmaWNhdGlvblBvbGljeSKbAQofVXBkYXRlTm90aWZpY2F0aW9uUG9saWN5UmVxdWVzdBJ4Cg9wYXNzd29yZF9jaGFuZ2UYASABKAhCX5JBXDJaSWYgc2V0IHRvIHRydWUgdGhlIHVzZXJzIHdpbGwgZ2V0IGEgbm90aWZpY2F0aW9uIHdoZW5ldmVyIHRoZWlyIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWQuIk4KIFVwZGF0ZU5vdGlmaWNhdGlvblBvbGljeVJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiQAogR2V0RGVmYXVsdEluaXRNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiXAohR2V0RGVmYXVsdEluaXRNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0Ij8KH0dldEN1c3RvbUluaXRNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiWwogR2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQipAUKIFNldERlZmF1bHRJbml0TWVzc2FnZVRleHRSZXF1ZXN0Ei8KCGxhbmd1YWdlGAEgASgJQh2SQQxKBCJkZSJ4yAGAAQHiQQEC+kIHcgUQARjIARI6CgV0aXRsZRgCIAEoCUIrkkEgShsiWklUQURFTCAtIEluaXRpYWxpemUgVXNlciJ49AP6QgVyAyjQDxI1CgpwcmVfaGVhZGVyGAMgASgJQiGSQRZKESJJbml0aWFsaXplIFVzZXIiePQD+kIFcgMo0A8SMgoHc3ViamVjdBgEIAEoCUIhkkEWShEiSW5pdGlhbGl6ZSBVc2VyInj0A/pCBXIDKNAPEkcKCGdyZWV0aW5nGAUgASgJQjWSQSpKJSJIZWxsbyB7ey5GaXJzdE5hbWV9fSB7ey5MYXN0TmFtZX19LCJ46Af6QgVyAyigHxKBAgoEdGV4dBgGIAEoCULyAZJB5QFK3wEiVGhpcyB1c2VyIHdhcyBjcmVhdGVkIGluIFppdGFkZWwuIFVzZSB0aGUgdXNlcm5hbWUge3suUHJlZmVycmVkTG9naW5OYW1lfX0gdG8gbG9nIGluLiBQbGVhc2UgY2xpY2sgdGhlIGJ1dHRvbiBiZWxvdyB0byBmaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuIChDb2RlIHt7LkNvZGV9fSkgSWYgeW91IGRpZG4ndCBhc2sgZm9yIHRoaXMgbWFpbCwgcGxlYXNlIGlnbm9yZSBpdC4ieJBO+kIGcgQowLgCEjwKC2J1dHRvbl90ZXh0GAcgASgJQieSQRxKFyJGaW5pc2ggaW5pdGlhbGl6YXRpb24ieOgH+kIFcgMooB8SHQoLZm9vdGVyX3RleHQYCCABKAlCCPpCBXIDKMA+Ik8KIVNldERlZmF1bHRJbml0TWVzc2FnZVRleHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkoKKlJlc2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJZCitSZXNldEN1c3RvbUluaXRNZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiSQopR2V0RGVmYXVsdFBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiZQoqR2V0RGVmYXVsdFBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0IkgKKEdldEN1c3RvbVBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiZAopR2V0Q3VzdG9tUGFzc3dvcmRSZXNldE1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQi4wQKKVNldERlZmF1bHRQYXNzd29yZFJlc2V0TWVzc2FnZVRleHRSZXF1ZXN0Ei8KCGxhbmd1YWdlGAEgASgJQh2SQQxKBCJkZSJ4yAGAAQHiQQEC+kIHcgUQARjIARI5CgV0aXRsZRgCIAEoCUIqkkEfShoiWklUQURFTCAtIFJlc2V0IFBhc3N3b3JkInj0A/pCBXIDKNAPEjQKCnByZV9oZWFkZXIYAyABKAlCIJJBFUoQIlJlc2V0IFBhc3N3b3JkInj0A/pCBXIDKNAPEjEKB3N1YmplY3QYBCABKAlCIJJBFUoQIlJlc2V0IFBhc3N3b3JkInj0A/pCBXIDKNAPEkcKCGdyZWV0aW5nGAUgASgJQjWSQSpKJSJIZWxsbyB7ey5GaXJzdE5hbWV9fSB7ey5MYXN0TmFtZX19LCJ46Af6QgVyAyigHxLBAQoEdGV4dBgGIAEoCUKyAZJBpQFKnwEiV2UgcmVjZWl2ZWQgYSBwYXNzd29yZCByZXNldCByZXF1ZXN0LiBQbGVhc2UgdXNlIHRoZSBidXR0b24gYmVsb3cgdG8gcmVzZXQgeW91ciBwYXNzd29yZC4gKENvZGUge3suQ29kZX19KSBJZiB5b3UgZGlkbid0IGFzayBmb3IgdGhpcyBtYWlsLCBwbGVhc2UgaWdub3JlIGl0LiJ4kE76QgZyBCjAuAISNQoLYnV0dG9uX3RleHQYByABKAlCIJJBFUoQIlJlc2V0IFBhc3N3b3JkInj0A/pCBXIDKKAfEh0KC2Zvb3Rlcl90ZXh0GAggASgJQgj6QgVyAyjAPiJYCipTZXREZWZhdWx0UGFzc3dvcmRSZXNldE1lc3NhZ2VUZXh0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJTCjNSZXNldEN1c3RvbVBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiYgo0UmVzZXRDdXN0b21QYXNzd29yZFJlc2V0TWVzc2FnZVRleHRUb0RlZmF1bHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkcKJ0dldERlZmF1bHRWZXJpZnlFbWFpbE1lc3NhZ2VUZXh0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJjCihHZXREZWZhdWx0VmVyaWZ5RW1haWxNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0IkYKJkdldEN1c3RvbVZlcmlmeUVtYWlsTWVzc2FnZVRleHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBImIKJ0dldEN1c3RvbVZlcmlmeUVtYWlsTWVzc2FnZVRleHRSZXNwb25zZRI3CgtjdXN0b21fdGV4dBgBIAEoCzIiLnppdGFkZWwudGV4dC52MS5NZXNzYWdlQ3VzdG9tVGV4dCLTBAonU2V0RGVmYXVsdFZlcmlmeUVtYWlsTWVzc2FnZVRleHRSZXF1ZXN0Ei8KCGxhbmd1YWdlGAEgASgJQh2SQQxKBCJkZSJ4yAGAAQHiQQEC+kIHcgUQARjIARI3CgV0aXRsZRgCIAEoCUIokkEdShgiWklUQURFTCAtIFZlcmlmeSBFbWFpbCJ49AP6QgVyAyjQDxIyCgpwcmVfaGVhZGVyGAMgASgJQh6SQRNKDiJWZXJpZnkgRW1haWwiePQD+kIFcgMo0A8SLwoHc3ViamVjdBgEIAEoCUIekkETSg4iVmVyaWZ5IEVtYWlsInj0A/pCBXIDKNAPEkcKCGdyZWV0aW5nGAUgASgJQjWSQSpKJSJIZWxsbyB7ey5GaXJzdE5hbWV9fSB7ey5MYXN0TmFtZX19LCJ46Af6QgVyAyigHxK7AQoEdGV4dBgGIAEoCUKsAZJBnwFKmQEiQSBuZXcgZW1haWwgaGFzIGJlZW4gYWRkZWQuIFBsZWFzZSB1c2UgdGhlIGJ1dHRvbiBiZWxvdyB0byB2ZXJpZnkgeW91ciBlbWFpbC4gKENvZGUge3suQ29kZX19KSBJZiB5b3UgZGlkbid0IGFkZCBhIG5ldyBlbWFpbCwgcGxlYXNlIGlnbm9yZSB0aGlzIGVtYWlsLiJ4kE76QgZyBCjAuAISMwoLYnV0dG9uX3RleHQYByABKAlCHpJBE0oOIlZlcmlmeSBFbWFpbCJ46Af6QgVyAyigHxIdCgtmb290ZXJfdGV4dBgIIAEoCUII+kIFcgMowD4iVgooU2V0RGVmYXVsdFZlcmlmeUVtYWlsTWVzc2FnZVRleHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIlEKMVJlc2V0Q3VzdG9tVmVyaWZ5RW1haWxNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiYAoyUmVzZXRDdXN0b21WZXJpZnlFbWFpbE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJHCidHZXREZWZhdWx0VmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiYwooR2V0RGVmYXVsdFZlcmlmeVBob25lTWVzc2FnZVRleHRSZXNwb25zZRI3CgtjdXN0b21fdGV4dBgBIAEoCzIiLnppdGFkZWwudGV4dC52MS5NZXNzYWdlQ3VzdG9tVGV4dCJGCiZHZXRDdXN0b21WZXJpZnlQaG9uZU1lc3NhZ2VUZXh0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJiCidHZXRDdXN0b21WZXJpZnlQaG9uZU1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQijwQKJ1NldERlZmF1bHRWZXJpZnlQaG9uZU1lc3NhZ2VUZXh0UmVxdWVzdBIvCghsYW5ndWFnZRgBIAEoCUIdkkEMSgQiZGUieMgBgAEB4kEBAvpCB3IFEAEYyAESNwoFdGl0bGUYAiABKAlCKJJBHUoYIlpJVEFERUwgLSBWZXJpZnkgUGhvbmUiePQD+kIFcgMo0A8SMgoKcHJlX2hlYWRlchgDIAEoCUIekkETSg4iVmVyaWZ5IFBob25lInj0A/pCBXIDKNAPEi8KB3N1YmplY3QYBCABKAlCHpJBE0oOIlZlcmlmeSBQaG9uZSJ49AP6QgVyAyjQDxJHCghncmVldGluZxgFIAEoCUI1kkEqSiUiSGVsbG8ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSwieOgH+kIFcgMooB8SeAoEdGV4dBgGIAEoCUJqkkFfSloiQSBuZXcgcGhvbmUgbnVtYmVyIGhhcyBiZWVuIGFkZGVkLiBQbGVhc2UgdXNlIHRoZSBmb2xsb3dpbmcgY29kZSB0byB2ZXJpZnkgaXQge3suQ29kZX19LiJ4oAb6QgVyAxigBhIzCgtidXR0b25fdGV4dBgHIAEoCUIekkETSg4iVmVyaWZ5IFBob25lInjoB/pCBXIDKKAfEh0KC2Zvb3Rlcl90ZXh0GAggASgJQgj6QgVyAyjAPiJWCihTZXREZWZhdWx0VmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiUQoxUmVzZXRDdXN0b21WZXJpZnlQaG9uZU1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJgCjJSZXNldEN1c3RvbVZlcmlmeVBob25lTWVzc2FnZVRleHRUb0RlZmF1bHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkcKJ0dldEN1c3RvbVZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJjCihHZXRDdXN0b21WZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0IkgKKEdldERlZmF1bHRWZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiZAopR2V0RGVmYXVsdFZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQioAIKKFNldERlZmF1bHRWZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlcXVlc3QSKQoIbGFuZ3VhZ2UYASABKAlCF5JBBkoEImRlIuJBAQL6QgdyBRABGMgBEsgBCgR0ZXh0GAIgASgJQrkBkkGtAUqnASJQbGVhc2UgdmlzaXQge3sgLlZlcmlmeVVSTCB9fSBvciBjb3B5IHRoZSBPVFAge3suT1RQfX0gYW5kIHBhc3RlIGl0IHRvIHRvIHRoZSBhdXRoZW50aWNhdGlvbiBzY3JlZW4gaW4gb3JkZXIgdG8gYXV0aGVudGljYXRlIGF0IFppdGFkZWwgd2l0aGluIHRoZSBuZXh0IGZpdmUgbWludXRlcy4ieKAG+kIFcgMYoAYiVwopU2V0RGVmYXVsdFZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJSCjJSZXNldEN1c3RvbVZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJhCjNSZXNldEN1c3RvbVZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJJCilHZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJlCipHZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQiSgoqR2V0RGVmYXVsdFZlcmlmeUVtYWlsT1RQTWVzc2FnZVRleHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBImYKK0dldERlZmF1bHRWZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQi2gQKKlNldERlZmF1bHRWZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0UmVxdWVzdBIpCghsYW5ndWFnZRgBIAEoCUIXkkEGSgQiZGUi4kEBAvpCB3IFEAEYyAESLgoFdGl0bGUYAiABKAlCH5JBFEoPIlpJVEFERUwgLSBPVFAiePQD+kIFcgMo0A8SMAoKcHJlX2hlYWRlchgDIAEoCUIckkERSgwiVmVyaWZ5IE9UUCJ49AP6QgVyAyjQDxItCgdzdWJqZWN0GAQgASgJQhySQRFKDCJWZXJpZnkgT1RQInj0A/pCBXIDKNAPEkcKCGdyZWV0aW5nGAUgASgJQjWSQSpKJSJIZWxsbyB7ey5GaXJzdE5hbWV9fSB7ey5MYXN0TmFtZX19LCJ46Af6QgVyAyigHxLSAQoEdGV4dBgGIAEoCULDAZJBtgFKsAEiUGxlYXNlIHVzZSB0aGUgXCJBdXRoZW50aWNhdGVcIiBidXR0b24gb3IgY29weSB0aGUgT1RQIHt7Lk9UUH19IGFuZCBwYXN0ZSBpdCB0byB0byB0aGUgYXV0aGVudGljYXRpb24gc2NyZWVuIGluIG9yZGVyIHRvIGF1dGhlbnRpY2F0ZSBhdCBaaXRhZGVsIHdpdGhpbiB0aGUgbmV4dCBmaXZlIG1pbnV0ZXMuIniQTvpCBnIEKMC4AhIzCgtidXR0b25fdGV4dBgHIAEoCUIekkETSg4iQXV0aGVudGljYXRlInj0A/pCBXIDKKAfEh0KC2Zvb3Rlcl90ZXh0GAggASgJQgj6QgVyAyjAPiJZCitTZXREZWZhdWx0VmVyaWZ5RW1haWxPVFBNZXNzYWdlVGV4dFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiVAo0UmVzZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJjCjVSZXNldEN1c3RvbVZlcmlmeUVtYWlsT1RQTWVzc2FnZVRleHRUb0RlZmF1bHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkkKKUdldERlZmF1bHREb21haW5DbGFpbWVkTWVzc2FnZVRleHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBImUKKkdldERlZmF1bHREb21haW5DbGFpbWVkTWVzc2FnZVRleHRSZXNwb25zZRI3CgtjdXN0b21fdGV4dBgBIAEoCzIiLnppdGFkZWwudGV4dC52MS5NZXNzYWdlQ3VzdG9tVGV4dCJICihHZXRDdXN0b21Eb21haW5DbGFpbWVkTWVzc2FnZVRleHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBImQKKUdldEN1c3RvbURvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0ItoFCilTZXREZWZhdWx0RG9tYWluQ2xhaW1lZE1lc3NhZ2VUZXh0UmVxdWVzdBIvCghsYW5ndWFnZRgBIAEoCUIdkkEMSgQiZGUieMgBgAEB4kEBAvpCB3IFEAEYyAESQgoFdGl0bGUYAiABKAlCM5JBKEojIlpJVEFERUwgLSBEb21haW4gaGFzIGJlZW4gY2xhaW1lZCJ49AP6QgVyAyjQDxI9CgpwcmVfaGVhZGVyGAMgASgJQimSQR5KGSJDaGFuZ2UgZW1haWwgLyB1c2VybmFtZSJ49AP6QgVyAyjQDxI6CgdzdWJqZWN0GAQgASgJQimSQR5KGSJEb21haW4gaGFzIGJlZW4gY2xhaW1lZCJ49AP6QgVyAyjQDxJHCghncmVldGluZxgFIAEoCUI1kkEqSiUiSGVsbG8ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSwieOgH+kIFcgMooB8SpgIKBHRleHQYBiABKAlClwKSQYoCSoQCIlRoZSBkb21haW4ge3suRG9tYWlufX0gaGFzIGJlZW4gY2xhaW1lZCBieSBhbiBvcmdhbml6YXRpb24uIFlvdXIgY3VycmVudCB1c2VyIHt7LlVzZXJOYW1lfX0gaXMgbm90IHBhcnQgb2YgdGhpcyBvcmdhbml6YXRpb24uIFRoZXJlZm9yZSB5b3UnbGwgaGF2ZSB0byBjaGFuZ2UgeW91ciBlbWFpbCB3aGVuIHlvdSBsb2cgaW4uIFdlIGhhdmUgY3JlYXRlZCBhIHRlbXBvcmFyeSB1c2VybmFtZSAoe3suVGVtcFVzZXJuYW1lfX0pIGZvciB0aGlzIGxvZ2luLiJ4kE76QgZyBCjAuAISLAoLYnV0dG9uX3RleHQYByABKAlCF5JBDEoHIkxvZ2luInjoB/pCBXIDKKAfEh0KC2Zvb3Rlcl90ZXh0GAggASgJQgj6QgVyAyjAPiJYCipTZXREZWZhdWx0RG9tYWluQ2xhaW1lZE1lc3NhZ2VUZXh0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJTCjNSZXNldEN1c3RvbURvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiYgo0UmVzZXRDdXN0b21Eb21haW5DbGFpbWVkTWVzc2FnZVRleHRUb0RlZmF1bHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkoKKkdldERlZmF1bHRQYXNzd29yZENoYW5nZU1lc3NhZ2VUZXh0UmVxdWVzdBIcCghsYW5ndWFnZRgBIAEoCUIK+kIHcgUQARjIASJmCitHZXREZWZhdWx0UGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0IkkKKUdldEN1c3RvbVBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBImUKKkdldEN1c3RvbVBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRSZXNwb25zZRI3CgtjdXN0b21fdGV4dBgBIAEoCzIiLnppdGFkZWwudGV4dC52MS5NZXNzYWdlQ3VzdG9tVGV4dCLgBAoqU2V0RGVmYXVsdFBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRSZXF1ZXN0Ei8KCGxhbmd1YWdlGAEgASgJQh2SQQxKBCJkZSJ4yAGAAQHiQQEC+kIHcgUQARjIARJLCgV0aXRsZRgCIAEoCUI8kkExSiwiWklUQURFTCAtIFBhc3N3b3JkIG9mIHRoZSB1c2VyIGhhcyBjaGFuZ2VkInj0A/pCBXIDKNAPEjYKCnByZV9oZWFkZXIYAyABKAlCIpJBF0oSIlBhc3N3b3JkIENoYW5nZWQiePQD+kIFcgMo0A8SPwoHc3ViamVjdBgEIAEoCUIukkEjSh4iUGFzc3dvcmQgb2YgdXNlciBoYXMgY2hhbmdlZCJ49AP6QgVyAyjQDxJHCghncmVldGluZxgFIAEoCUI1kkEqSiUiSGVsbG8ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSwieOgH+kIFcgMooB8SpAEKBHRleHQYBiABKAlClQGSQYgBSoIBIlRoZSBwYXNzd29yZCBvZiB5b3VyIHVzZXIgaGFzIGNoYW5nZWQsIGlmIHRoaXMgY2hhbmdlIHdhcyBub3QgZG9uZSBieSB5b3UsIHBsZWFzZSBiZSBhZHZpc2VkIHRvIGltbWVkaWF0ZWx5IHJlc2V0IHlvdXIgcGFzc3dvcmQuIniQTvpCBnIEKMC4AhIsCgtidXR0b25fdGV4dBgHIAEoCUIXkkEMSgciTG9naW4ieOgH+kIFcgMooB8SHQoLZm9vdGVyX3RleHQYCCABKAlCCPpCBXIDGMA+IlkKK1NldERlZmF1bHRQYXNzd29yZENoYW5nZU1lc3NhZ2VUZXh0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJUCjRSZXNldEN1c3RvbVBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRUb0RlZmF1bHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBImMKNVJlc2V0Q3VzdG9tUGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiRgomR2V0RGVmYXVsdEludml0ZVVzZXJNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiYgonR2V0RGVmYXVsdEludml0ZVVzZXJNZXNzYWdlVGV4dFJlc3BvbnNlEjcKC2N1c3RvbV90ZXh0GAEgASgLMiIueml0YWRlbC50ZXh0LnYxLk1lc3NhZ2VDdXN0b21UZXh0IkUKJUdldEN1c3RvbUludml0ZVVzZXJNZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiYQomR2V0Q3VzdG9tSW52aXRlVXNlck1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQiigUKJlNldERlZmF1bHRJbnZpdGVVc2VyTWVzc2FnZVRleHRSZXF1ZXN0Ei8KCGxhbmd1YWdlGAEgASgJQh2SQQxKBCJkZSJ4yAGAAQHiQQEC+kIHcgUQARjIARJDCgV0aXRsZRgCIAEoCUI0kkEpSiQiSW52aXRhdGlvbiB0byB7ey5BcHBsaWNhdGlvbk5hbWV9fSJ49AP6QgVyAyjQDxJICgpwcmVfaGVhZGVyGAMgASgJQjSSQSlKJCJJbnZpdGF0aW9uIHRvIHt7LkFwcGxpY2F0aW9uTmFtZX19Inj0A/pCBXIDKNAPEkUKB3N1YmplY3QYBCABKAlCNJJBKUokIkludml0YXRpb24gdG8ge3suQXBwbGljYXRpb25OYW1lfX0iePQD+kIFcgMo0A8SOwoIZ3JlZXRpbmcYBSABKAlCKZJBHkoZIkhlbGxvIHt7LkRpc3BsYXlOYW1lfX0sInjoB/pCBXIDKKAfEsYBCgR0ZXh0GAYgASgJQrcBkkGqAUqkASJZb3VyIHVzZXIgaGFzIGJlZW4gaW52aXRlZCB0byB7ey5BcHBsaWNhdGlvbk5hbWV9fS4gUGxlYXNlIGNsaWNrIHRoZSBidXR0b24gYmVsb3cgdG8gZmluaXNoIHRoZSBpbnZpdGUgcHJvY2Vzcy4gSWYgeW91IGRpZG4ndCBhc2sgZm9yIHRoaXMgbWFpbCwgcGxlYXNlIGlnbm9yZSBpdC4ieJBO+kIGcgQowLgCEjQKC2J1dHRvbl90ZXh0GAcgASgJQh+SQRRKDyJBY2NlcHQgaW52aXRlInjoB/pCBXIDKKAfEh0KC2Zvb3Rlcl90ZXh0GAggASgJQgj6QgVyAxjAPiJVCidTZXREZWZhdWx0SW52aXRlVXNlck1lc3NhZ2VUZXh0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyJQCjBSZXNldEN1c3RvbUludml0ZVVzZXJNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiXwoxUmVzZXRDdXN0b21JbnZpdGVVc2VyTWVzc2FnZVRleHRUb0RlZmF1bHRSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIlQKNEdldERlZmF1bHRQYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEicAo1R2V0RGVmYXVsdFBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQiUwozR2V0Q3VzdG9tUGFzc3dvcmRsZXNzUmVnaXN0cmF0aW9uTWVzc2FnZVRleHRSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBIm8KNEdldEN1c3RvbVBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0UmVzcG9uc2USNwoLY3VzdG9tX3RleHQYASABKAsyIi56aXRhZGVsLnRleHQudjEuTWVzc2FnZUN1c3RvbVRleHQi/QQKNFNldERlZmF1bHRQYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFJlcXVlc3QSLwoIbGFuZ3VhZ2UYASABKAlCHZJBDEoEImRlInjIAYABAeJBAQL6QgdyBRABGMgBEkEKBXRpdGxlGAIgASgJQjKSQSdKIiJaSVRBREVMIC0gQWRkIFBhc3N3b3JkbGVzcyBMb2dpbiJ49AP6QgVyAyjQDxI8CgpwcmVfaGVhZGVyGAMgASgJQiiSQR1KGCJBZGQgUGFzc3dvcmRsZXNzIExvZ2luInj0A/pCBXIDKNAPEjkKB3N1YmplY3QYBCABKAlCKJJBHUoYIkFkZCBQYXNzd29yZGxlc3MgTG9naW4iePQD+kIFcgMo0A8SRwoIZ3JlZXRpbmcYBSABKAlCNZJBKkolIkhlbGxvIHt7LkZpcnN0TmFtZX19IHt7Lkxhc3ROYW1lfX0sInj0A/pCBXIDKKAfErABCgR0ZXh0GAYgASgJQqEBkkGUAUqOASJXZSByZWNlaXZlZCBhIHJlcXVlc3QgdG8gYWRkIGEgdG9rZW4gZm9yIHBhc3N3b3JkbGVzcyBsb2dpbi4gUGxlYXNlIHVzZSB0aGUgYnV0dG9uIGJlbG93IHRvIGFkZCB5b3VyIHRva2VuIG9yIGRldmljZSBmb3IgcGFzc3dvcmRsZXNzIGxvZ2luLiJ4kE76QgZyBCjAuAISPQoLYnV0dG9uX3RleHQYByABKAlCKJJBHUoYIkFkZCBQYXNzd29yZGxlc3MgTG9naW4ieOgH+kIFcgMooB8SHQoLZm9vdGVyX3RleHQYCCABKAlCCPpCBXIDKMA+ImMKNVNldERlZmF1bHRQYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiXgo+UmVzZXRDdXN0b21QYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEibQo/UmVzZXRDdXN0b21QYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiOwobR2V0RGVmYXVsdExvZ2luVGV4dHNSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBIlUKHEdldERlZmF1bHRMb2dpblRleHRzUmVzcG9uc2USNQoLY3VzdG9tX3RleHQYASABKAsyIC56aXRhZGVsLnRleHQudjEuTG9naW5DdXN0b21UZXh0IjoKGkdldEN1c3RvbUxvZ2luVGV4dHNSZXF1ZXN0EhwKCGxhbmd1YWdlGAEgASgJQgr6QgdyBRABGMgBIlQKG0dldEN1c3RvbUxvZ2luVGV4dHNSZXNwb25zZRI1CgtjdXN0b21fdGV4dBgBIAEoCzIgLnppdGFkZWwudGV4dC52MS5Mb2dpbkN1c3RvbVRleHQihxUKGlNldEN1c3RvbUxvZ2luVGV4dHNSZXF1ZXN0EiUKCGxhbmd1YWdlGAEgASgJQhOSQQZKBCJkZSL6QgdyBRABGMgBEkUKE3NlbGVjdF9hY2NvdW50X3RleHQYAiABKAsyKC56aXRhZGVsLnRleHQudjEuU2VsZWN0QWNjb3VudFNjcmVlblRleHQSNAoKbG9naW5fdGV4dBgDIAEoCzIgLnppdGFkZWwudGV4dC52MS5Mb2dpblNjcmVlblRleHQSOgoNcGFzc3dvcmRfdGV4dBgEIAEoCzIjLnppdGFkZWwudGV4dC52MS5QYXNzd29yZFNjcmVlblRleHQSRwoUdXNlcm5hbWVfY2hhbmdlX3RleHQYBSABKAsyKS56aXRhZGVsLnRleHQudjEuVXNlcm5hbWVDaGFuZ2VTY3JlZW5UZXh0ElAKGXVzZXJuYW1lX2NoYW5nZV9kb25lX3RleHQYBiABKAsyLS56aXRhZGVsLnRleHQudjEuVXNlcm5hbWVDaGFuZ2VEb25lU2NyZWVuVGV4dBJDChJpbml0X3Bhc3N3b3JkX3RleHQYByABKAsyJy56aXRhZGVsLnRleHQudjEuSW5pdFBhc3N3b3JkU2NyZWVuVGV4dBJMChdpbml0X3Bhc3N3b3JkX2RvbmVfdGV4dBgIIAEoCzIrLnppdGFkZWwudGV4dC52MS5Jbml0UGFzc3dvcmREb25lU2NyZWVuVGV4dBJNChdlbWFpbF92ZXJpZmljYXRpb25fdGV4dBgJIAEoCzIsLnppdGFkZWwudGV4dC52MS5FbWFpbFZlcmlmaWNhdGlvblNjcmVlblRleHQSVgocZW1haWxfdmVyaWZpY2F0aW9uX2RvbmVfdGV4dBgKIAEoCzIwLnppdGFkZWwudGV4dC52MS5FbWFpbFZlcmlmaWNhdGlvbkRvbmVTY3JlZW5UZXh0EkcKFGluaXRpYWxpemVfdXNlcl90ZXh0GAsgASgLMikueml0YWRlbC50ZXh0LnYxLkluaXRpYWxpemVVc2VyU2NyZWVuVGV4dBJLChRpbml0aWFsaXplX2RvbmVfdGV4dBgMIAEoCzItLnppdGFkZWwudGV4dC52MS5Jbml0aWFsaXplVXNlckRvbmVTY3JlZW5UZXh0EkYKFGluaXRfbWZhX3Byb21wdF90ZXh0GA0gASgLMigueml0YWRlbC50ZXh0LnYxLkluaXRNRkFQcm9tcHRTY3JlZW5UZXh0EkAKEWluaXRfbWZhX290cF90ZXh0GA4gASgLMiUueml0YWRlbC50ZXh0LnYxLkluaXRNRkFPVFBTY3JlZW5UZXh0EkAKEWluaXRfbWZhX3UyZl90ZXh0GA8gASgLMiUueml0YWRlbC50ZXh0LnYxLkluaXRNRkFVMkZTY3JlZW5UZXh0EkIKEmluaXRfbWZhX2RvbmVfdGV4dBgQIAEoCzImLnppdGFkZWwudGV4dC52MS5Jbml0TUZBRG9uZVNjcmVlblRleHQSPQoSbWZhX3Byb3ZpZGVyc190ZXh0GBEgASgLMiEueml0YWRlbC50ZXh0LnYxLk1GQVByb3ZpZGVyc1RleHQSRAoTdmVyaWZ5X21mYV9vdHBfdGV4dBgSIAEoCzInLnppdGFkZWwudGV4dC52MS5WZXJpZnlNRkFPVFBTY3JlZW5UZXh0EkQKE3ZlcmlmeV9tZmFfdTJmX3RleHQYEyABKAsyJy56aXRhZGVsLnRleHQudjEuVmVyaWZ5TUZBVTJGU2NyZWVuVGV4dBJCChFwYXNzd29yZGxlc3NfdGV4dBgUIAEoCzInLnppdGFkZWwudGV4dC52MS5QYXNzd29yZGxlc3NTY3JlZW5UZXh0EkcKFHBhc3N3b3JkX2NoYW5nZV90ZXh0GBUgASgLMikueml0YWRlbC50ZXh0LnYxLlBhc3N3b3JkQ2hhbmdlU2NyZWVuVGV4dBJQChlwYXNzd29yZF9jaGFuZ2VfZG9uZV90ZXh0GBYgASgLMi0ueml0YWRlbC50ZXh0LnYxLlBhc3N3b3JkQ2hhbmdlRG9uZVNjcmVlblRleHQSTgoYcGFzc3dvcmRfcmVzZXRfZG9uZV90ZXh0GBcgASgLMiwueml0YWRlbC50ZXh0LnYxLlBhc3N3b3JkUmVzZXREb25lU2NyZWVuVGV4dBJPChhyZWdpc3RyYXRpb25fb3B0aW9uX3RleHQYGCABKAsyLS56aXRhZGVsLnRleHQudjEuUmVnaXN0cmF0aW9uT3B0aW9uU2NyZWVuVGV4dBJLChZyZWdpc3RyYXRpb25fdXNlcl90ZXh0GBkgASgLMisueml0YWRlbC50ZXh0LnYxLlJlZ2lzdHJhdGlvblVzZXJTY3JlZW5UZXh0EkkKFXJlZ2lzdHJhdGlvbl9vcmdfdGV4dBgaIAEoCzIqLnppdGFkZWwudGV4dC52MS5SZWdpc3RyYXRpb25PcmdTY3JlZW5UZXh0EkoKFmxpbmtpbmdfdXNlcl9kb25lX3RleHQYGyABKAsyKi56aXRhZGVsLnRleHQudjEuTGlua2luZ1VzZXJEb25lU2NyZWVuVGV4dBJVChxleHRlcm5hbF91c2VyX25vdF9mb3VuZF90ZXh0GBwgASgLMi8ueml0YWRlbC50ZXh0LnYxLkV4dGVybmFsVXNlck5vdEZvdW5kU2NyZWVuVGV4dBJDChJzdWNjZXNzX2xvZ2luX3RleHQYHSABKAsyJy56aXRhZGVsLnRleHQudjEuU3VjY2Vzc0xvZ2luU2NyZWVuVGV4dBI6Cgtsb2dvdXRfdGV4dBgeIAEoCzIlLnppdGFkZWwudGV4dC52MS5Mb2dvdXREb25lU2NyZWVuVGV4dBIwCgtmb290ZXJfdGV4dBgfIAEoCzIbLnppdGFkZWwudGV4dC52MS5Gb290ZXJUZXh0Ek8KGHBhc3N3b3JkbGVzc19wcm9tcHRfdGV4dBggIAEoCzItLnppdGFkZWwudGV4dC52MS5QYXNzd29yZGxlc3NQcm9tcHRTY3JlZW5UZXh0ElsKHnBhc3N3b3JkbGVzc19yZWdpc3RyYXRpb25fdGV4dBghIAEoCzIzLnppdGFkZWwudGV4dC52MS5QYXNzd29yZGxlc3NSZWdpc3RyYXRpb25TY3JlZW5UZXh0EmQKI3Bhc3N3b3JkbGVzc19yZWdpc3RyYXRpb25fZG9uZV90ZXh0GCIgASgLMjcueml0YWRlbC50ZXh0LnYxLlBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbkRvbmVTY3JlZW5UZXh0Em0KKGV4dGVybmFsX3JlZ2lzdHJhdGlvbl91c2VyX292ZXJ2aWV3X3RleHQYIyABKAsyOy56aXRhZGVsLnRleHQudjEuRXh0ZXJuYWxSZWdpc3RyYXRpb25Vc2VyT3ZlcnZpZXdTY3JlZW5UZXh0ElIKGGxpbmtpbmdfdXNlcl9wcm9tcHRfdGV4dBgkIAEoCzIsLnppdGFkZWwudGV4dC52MS5MaW5raW5nVXNlclByb21wdFNjcmVlblRleHRCAhgBIkkKG1NldEN1c3RvbUxvZ2luVGV4dHNSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIkUKJVJlc2V0Q3VzdG9tTG9naW5UZXh0c1RvRGVmYXVsdFJlcXVlc3QSHAoIbGFuZ3VhZ2UYASABKAlCCvpCB3IFEAEYyAEiVAomUmVzZXRDdXN0b21Mb2dpblRleHRzVG9EZWZhdWx0UmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyK9AQoTQWRkSUFNTWVtYmVyUmVxdWVzdBI5Cgd1c2VyX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBEloKBXJvbGVzGAIgAygJQkuSQUgyN0lmIG5vIHJvbGVzIGFyZSBwcm92aWRlZCB0aGUgdXNlciB3b24ndCBoYXZlIGFueSByaWdodHNKDVsiSUFNX09XTkVSIl06D5JBDAoK0gEHdXNlcl9pZCJCChRBZGRJQU1NZW1iZXJSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzIsABChZVcGRhdGVJQU1NZW1iZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBG0oTIjY5NjI5MDIzOTA2NDg4MzM0InjIAYABAfpCB3IFEAEYyAESWgoFcm9sZXMYAiADKAlCS5JBSDI3SWYgbm8gcm9sZXMgYXJlIHByb3ZpZGVkIHRoZSB1c2VyIHdvbid0IGhhdmUgYW55IHJpZ2h0c0oNWyJJQU1fT1dORVIiXToPkkEMCgrSAQd1c2VyX2lkIkUKF1VwZGF0ZUlBTU1lbWJlclJlc3BvbnNlEioKB2RldGFpbHMYASABKAsyGS56aXRhZGVsLnYxLk9iamVjdERldGFpbHMiZAoWUmVtb3ZlSUFNTWVtYmVyUmVxdWVzdBI5Cgd1c2VyX2lkGAEgASgJQiiSQRtKEyI2OTYyOTAyMzkwNjQ4ODMzNCJ4yAGAAQH6QgdyBRABGMgBOg+SQQwKCtIBB3VzZXJfaWQiRQoXUmVtb3ZlSUFNTWVtYmVyUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIbChlMaXN0SUFNTWVtYmVyUm9sZXNSZXF1ZXN0ImkKGkxpc3RJQU1NZW1iZXJSb2xlc1Jlc3BvbnNlEigKB2RldGFpbHMYASABKAsyFy56aXRhZGVsLnYxLkxpc3REZXRhaWxzEiEKBXJvbGVzGAIgAygJQhKSQQ9KDVsiSUFNX09XTkVSIl0isAEKFUxpc3RJQU1NZW1iZXJzUmVxdWVzdBIkCgVxdWVyeRgBIAEoCzIVLnppdGFkZWwudjEuTGlzdFF1ZXJ5Ei8KB3F1ZXJpZXMYAiADKAsyHi56aXRhZGVsLm1lbWJlci52MS5TZWFyY2hRdWVyeRJACg5zb3J0aW5nX2NvbHVtbhgDIAEoDjIoLnppdGFkZWwubWVtYmVyLnYxLk1lbWJlckZpZWxkQ29sdW1uTmFtZSJtChZMaXN0SUFNTWVtYmVyc1Jlc3BvbnNlEigKB2RldGFpbHMYASABKAsyFy56aXRhZGVsLnYxLkxpc3REZXRhaWxzEikKBnJlc3VsdBgCIAMoCzIZLnppdGFkZWwubWVtYmVyLnYxLk1lbWJlciISChBMaXN0Vmlld3NSZXF1ZXN0IjsKEUxpc3RWaWV3c1Jlc3BvbnNlEiYKBnJlc3VsdBgBIAMoCzIWLnppdGFkZWwuYWRtaW4udjEuVmlldyIZChdMaXN0RmFpbGVkRXZlbnRzUmVxdWVzdCJJChhMaXN0RmFpbGVkRXZlbnRzUmVzcG9uc2USLQoGcmVzdWx0GAEgAygLMh0ueml0YWRlbC5hZG1pbi52MS5GYWlsZWRFdmVudCLdAQoYUmVtb3ZlRmFpbGVkRXZlbnRSZXF1ZXN0EjEKCGRhdGFiYXNlGAEgASgJQh+SQRJKCiJhZG1pbmFwaSJ4yAGAAQH6QgdyBRABGMgBEjUKCXZpZXdfbmFtZRgCIAEoCUIikkEVSg0iaWFtX21lbWJlcnMieMgBgAEB+kIHcgUQARjIARInCg9mYWlsZWRfc2VxdWVuY2UYAyABKARCDpJBC0oJIjk4MjM3NTgiOi6SQSsKKdIBCGRhdGFiYXNl0gEJdmlld19uYW1l0gEPZmFpbGVkX3NlcXVlbmNlIhsKGVJlbW92ZUZhaWxlZEV2ZW50UmVzcG9uc2Ui3wIKBFZpZXcSIQoIZGF0YWJhc2UYASABKAlCD5JBDEoKImFkbWluYXBpIhIlCgl2aWV3X25hbWUYAiABKAlCEpJBD0oNImlhbV9tZW1iZXJzIhIqChJwcm9jZXNzZWRfc2VxdWVuY2UYAyABKARCDpJBC0oJIjk4MjM3NTgiEnkKD2V2ZW50X3RpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCRJJBQTIgVGhlIHRpbWVzdGFtcCB0aGUgZXZlbnQgb2NjdXJyZWRKHSIyMDE5LTA0LTAxVDA4OjQ1OjAwLjAwMDAwMFoiEmYKG2xhc3Rfc3VjY2Vzc2Z1bF9zcG9vbGVyX3J1bhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCJZJBIjIgVGhlIHRpbWVzdGFtcCB0aGUgZXZlbnQgb2NjdXJyZWQixgIKC0ZhaWxlZEV2ZW50EiEKCGRhdGFiYXNlGAEgASgJQg+SQQxKCiJhZG1pbmFwaSISJQoJdmlld19uYW1lGAIgASgJQhKSQQ9KDSJpYW1fbWVtYmVycyISJwoPZmFpbGVkX3NlcXVlbmNlGAMgASgEQg6SQQtKCSI5ODIzNzU5IhIfCg1mYWlsdXJlX2NvdW50GAQgASgEQgiSQQVKAyI1IhJECg1lcnJvcl9tZXNzYWdlGAUgASgJQi2SQSpKKCJJRD1FWEFNUC1JRDNFUiBNZXNzYWdlPUV4YW1wbGUgbWVzc2FnZSISXQoLbGFzdF9mYWlsZWQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQiySQSkyJ1RoZSB0aW1lc3RhbXAgdGhlIGZhaWx1cmUgbGFzdCBvY2N1cnJlZCKoBgoRSW1wb3J0RGF0YVJlcXVlc3QSNAoJZGF0YV9vcmdzGAEgASgLMh8ueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhT3JnSAASMwoLZGF0YV9vcmdzdjEYAiABKAsyHC56aXRhZGVsLnYxLnYxLkltcG9ydERhdGFPcmdIABJJCg9kYXRhX29yZ3NfbG9jYWwYAyABKAsyLi56aXRhZGVsLmFkbWluLnYxLkltcG9ydERhdGFSZXF1ZXN0LkxvY2FsSW5wdXRIABJLChFkYXRhX29yZ3N2MV9sb2NhbBgEIAEoCzIuLnppdGFkZWwuYWRtaW4udjEuSW1wb3J0RGF0YVJlcXVlc3QuTG9jYWxJbnB1dEgAEkMKDGRhdGFfb3Jnc19zMxgFIAEoCzIrLnppdGFkZWwuYWRtaW4udjEuSW1wb3J0RGF0YVJlcXVlc3QuUzNJbnB1dEgAEkUKDmRhdGFfb3Jnc3YxX3MzGAYgASgLMisueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhUmVxdWVzdC5TM0lucHV0SAASRQoNZGF0YV9vcmdzX2djcxgHIAEoCzIsLnppdGFkZWwuYWRtaW4udjEuSW1wb3J0RGF0YVJlcXVlc3QuR0NTSW5wdXRIABJHCg9kYXRhX29yZ3N2MV9nY3MYCCABKAsyLC56aXRhZGVsLmFkbWluLnYxLkltcG9ydERhdGFSZXF1ZXN0LkdDU0lucHV0SAASDwoHdGltZW91dBgJIAEoCRoaCgpMb2NhbElucHV0EgwKBHBhdGgYASABKAkaeAoHUzNJbnB1dBIMCgRwYXRoGAEgASgJEhAKCGVuZHBvaW50GAIgASgJEhUKDWFjY2Vzc19rZXlfaWQYAyABKAkSGQoRc2VjcmV0X2FjY2Vzc19rZXkYBCABKAkSCwoDc3NsGAUgASgIEg4KBmJ1Y2tldBgGIAEoCRpFCghHQ1NJbnB1dBIOCgZidWNrZXQYASABKAkSGwoTc2VydmljZWFjY291bnRfanNvbhgCIAEoCRIMCgRwYXRoGAMgASgJQgYKBGRhdGEiOAoNSW1wb3J0RGF0YU9yZxInCgRvcmdzGAEgAygLMhkueml0YWRlbC5hZG1pbi52MS5EYXRhT3JnIvsUCgdEYXRhT3JnEg4KBm9yZ19pZBgBIAEoCRIxCgNvcmcYAyABKAsyJC56aXRhZGVsLm1hbmFnZW1lbnQudjEuQWRkT3JnUmVxdWVzdBJFCg1kb21haW5fcG9saWN5GAQgASgLMi4ueml0YWRlbC5hZG1pbi52MS5BZGRDdXN0b21Eb21haW5Qb2xpY3lSZXF1ZXN0EkgKDGxhYmVsX3BvbGljeRgFIAEoCzIyLnppdGFkZWwubWFuYWdlbWVudC52MS5BZGRDdXN0b21MYWJlbFBvbGljeVJlcXVlc3QSTAoObG9ja291dF9wb2xpY3kYBiABKAsyNC56aXRhZGVsLm1hbmFnZW1lbnQudjEuQWRkQ3VzdG9tTG9ja291dFBvbGljeVJlcXVlc3QSSAoMbG9naW5fcG9saWN5GAcgASgLMjIueml0YWRlbC5tYW5hZ2VtZW50LnYxLkFkZEN1c3RvbUxvZ2luUG9saWN5UmVxdWVzdBJjChpwYXNzd29yZF9jb21wbGV4aXR5X3BvbGljeRgIIAEoCzI/LnppdGFkZWwubWFuYWdlbWVudC52MS5BZGRDdXN0b21QYXNzd29yZENvbXBsZXhpdHlQb2xpY3lSZXF1ZXN0EkwKDnByaXZhY3lfcG9saWN5GAkgASgLMjQueml0YWRlbC5tYW5hZ2VtZW50LnYxLkFkZEN1c3RvbVByaXZhY3lQb2xpY3lSZXF1ZXN0EiwKCHByb2plY3RzGAogAygLMhoueml0YWRlbC52MS52MS5EYXRhUHJvamVjdBJDCg1wcm9qZWN0X3JvbGVzGAsgAygLMiwueml0YWRlbC5tYW5hZ2VtZW50LnYxLkFkZFByb2plY3RSb2xlUmVxdWVzdBIzCghhcGlfYXBwcxgMIAMoCzIhLnppdGFkZWwudjEudjEuRGF0YUFQSUFwcGxpY2F0aW9uEjUKCW9pZGNfYXBwcxgNIAMoCzIiLnppdGFkZWwudjEudjEuRGF0YU9JRENBcHBsaWNhdGlvbhIxCgtodW1hbl91c2VycxgOIAMoCzIcLnppdGFkZWwudjEudjEuRGF0YUh1bWFuVXNlchI1Cg1tYWNoaW5lX3VzZXJzGA8gAygLMh4ueml0YWRlbC52MS52MS5EYXRhTWFjaGluZVVzZXISSAoPdHJpZ2dlcl9hY3Rpb25zGBAgAygLMi8ueml0YWRlbC5tYW5hZ2VtZW50LnYxLlNldFRyaWdnZXJBY3Rpb25zUmVxdWVzdBIqCgdhY3Rpb25zGBEgAygLMhkueml0YWRlbC52MS52MS5EYXRhQWN0aW9uEjcKDnByb2plY3RfZ3JhbnRzGBIgAygLMh8ueml0YWRlbC52MS52MS5EYXRhUHJvamVjdEdyYW50Ej8KC3VzZXJfZ3JhbnRzGBMgAygLMioueml0YWRlbC5tYW5hZ2VtZW50LnYxLkFkZFVzZXJHcmFudFJlcXVlc3QSPwoLb3JnX21lbWJlcnMYFCADKAsyKi56aXRhZGVsLm1hbmFnZW1lbnQudjEuQWRkT3JnTWVtYmVyUmVxdWVzdBJHCg9wcm9qZWN0X21lbWJlcnMYFSADKAsyLi56aXRhZGVsLm1hbmFnZW1lbnQudjEuQWRkUHJvamVjdE1lbWJlclJlcXVlc3QSUgoVcHJvamVjdF9ncmFudF9tZW1iZXJzGBYgAygLMjMueml0YWRlbC5tYW5hZ2VtZW50LnYxLkFkZFByb2plY3RHcmFudE1lbWJlclJlcXVlc3QSRAoNdXNlcl9tZXRhZGF0YRgXIAMoCzItLnppdGFkZWwubWFuYWdlbWVudC52MS5TZXRVc2VyTWV0YWRhdGFSZXF1ZXN0EkYKC2xvZ2luX3RleHRzGBggAygLMjEueml0YWRlbC5tYW5hZ2VtZW50LnYxLlNldEN1c3RvbUxvZ2luVGV4dHNSZXF1ZXN0Ek0KDWluaXRfbWVzc2FnZXMYGSADKAsyNi56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0UmVxdWVzdBJgChdwYXNzd29yZF9yZXNldF9tZXNzYWdlcxgaIAMoCzI/LnppdGFkZWwubWFuYWdlbWVudC52MS5TZXRDdXN0b21QYXNzd29yZFJlc2V0TWVzc2FnZVRleHRSZXF1ZXN0ElwKFXZlcmlmeV9lbWFpbF9tZXNzYWdlcxgbIAMoCzI9LnppdGFkZWwubWFuYWdlbWVudC52MS5TZXRDdXN0b21WZXJpZnlFbWFpbE1lc3NhZ2VUZXh0UmVxdWVzdBJcChV2ZXJpZnlfcGhvbmVfbWVzc2FnZXMYHCADKAsyPS56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0Q3VzdG9tVmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFJlcXVlc3QSYAoXZG9tYWluX2NsYWltZWRfbWVzc2FnZXMYHSADKAsyPy56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0Q3VzdG9tRG9tYWluQ2xhaW1lZE1lc3NhZ2VUZXh0UmVxdWVzdBJ2CiJwYXNzd29yZGxlc3NfcmVnaXN0cmF0aW9uX21lc3NhZ2VzGB4gAygLMkoueml0YWRlbC5tYW5hZ2VtZW50LnYxLlNldEN1c3RvbVBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0UmVxdWVzdBItCglvaWRjX2lkcHMYHyADKAsyGi56aXRhZGVsLnYxLnYxLkRhdGFPSURDSURQEisKCGp3dF9pZHBzGCAgAygLMhkueml0YWRlbC52MS52MS5EYXRhSldUSURQEi8KCnVzZXJfbGlua3MYISADKAsyGy56aXRhZGVsLmlkcC52MS5JRFBVc2VyTGluaxInCgdkb21haW5zGCIgAygLMhYueml0YWRlbC5vcmcudjEuRG9tYWluEisKCGFwcF9rZXlzGCMgAygLMhkueml0YWRlbC52MS52MS5EYXRhQXBwS2V5EjMKDG1hY2hpbmVfa2V5cxgkIAMoCzIdLnppdGFkZWwudjEudjEuRGF0YU1hY2hpbmVLZXkSXwoXdmVyaWZ5X3Ntc19vdHBfbWVzc2FnZXMYJSADKAsyPi56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0Q3VzdG9tVmVyaWZ5U01TT1RQTWVzc2FnZVRleHRSZXF1ZXN0EmMKGXZlcmlmeV9lbWFpbF9vdHBfbWVzc2FnZXMYJiADKAsyQC56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0Q3VzdG9tVmVyaWZ5RW1haWxPVFBNZXNzYWdlVGV4dFJlcXVlc3QSWgoUaW52aXRlX3VzZXJfbWVzc2FnZXMYJyADKAsyPC56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0Q3VzdG9tSW52aXRlVXNlck1lc3NhZ2VUZXh0UmVxdWVzdBIrCglvcmdfc3RhdGUYKCABKA4yGC56aXRhZGVsLm9yZy52MS5PcmdTdGF0ZSJ9ChJJbXBvcnREYXRhUmVzcG9uc2USMQoGZXJyb3JzGAEgAygLMiEueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhRXJyb3ISNAoHc3VjY2VzcxgCIAEoCzIjLnppdGFkZWwuYWRtaW4udjEuSW1wb3J0RGF0YVN1Y2Nlc3MiPAoPSW1wb3J0RGF0YUVycm9yEgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSJJChFJbXBvcnREYXRhU3VjY2VzcxI0CgRvcmdzGAEgAygLMiYueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhU3VjY2Vzc09yZyLKBgoUSW1wb3J0RGF0YVN1Y2Nlc3NPcmcSDgoGb3JnX2lkGAEgASgJEhMKC3Byb2plY3RfaWRzGAIgAygJEhUKDXByb2plY3Rfcm9sZXMYAyADKAkSFAoMb2lkY19hcHBfaWRzGAQgAygJEhMKC2FwaV9hcHBfaWRzGAUgAygJEhYKDmh1bWFuX3VzZXJfaWRzGAYgAygJEhgKEG1hY2hpbmVfdXNlcl9pZHMYByADKAkSEgoKYWN0aW9uX2lkcxgIIAMoCRJICg90cmlnZ2VyX2FjdGlvbnMYCSADKAsyLy56aXRhZGVsLm1hbmFnZW1lbnQudjEuU2V0VHJpZ2dlckFjdGlvbnNSZXF1ZXN0EkcKDnByb2plY3RfZ3JhbnRzGAogAygLMi8ueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhU3VjY2Vzc1Byb2plY3RHcmFudBJBCgt1c2VyX2dyYW50cxgLIAMoCzIsLnppdGFkZWwuYWRtaW4udjEuSW1wb3J0RGF0YVN1Y2Nlc3NVc2VyR3JhbnQSEwoLb3JnX21lbWJlcnMYDCADKAkSSQoPcHJvamVjdF9tZW1iZXJzGA0gAygLMjAueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhU3VjY2Vzc1Byb2plY3RNZW1iZXISVAoVcHJvamVjdF9ncmFudF9tZW1iZXJzGA4gAygLMjUueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhU3VjY2Vzc1Byb2plY3RHcmFudE1lbWJlchIRCglvaWRjX2lwZHMYDyADKAkSEAoIand0X2lkcHMYECADKAkSEQoJaWRwX2xpbmtzGBEgAygJEkAKCnVzZXJfbGlua3MYEiADKAsyLC56aXRhZGVsLmFkbWluLnYxLkltcG9ydERhdGFTdWNjZXNzVXNlckxpbmtzEkYKDXVzZXJfbWV0YWRhdGEYEyADKAsyLy56aXRhZGVsLmFkbWluLnYxLkltcG9ydERhdGFTdWNjZXNzVXNlck1ldGFkYXRhEg8KB2RvbWFpbnMYFCADKAkSEAoIYXBwX2tleXMYFSADKAkSFAoMbWFjaGluZV9rZXlzGBYgAygJIlUKHUltcG9ydERhdGFTdWNjZXNzUHJvamVjdEdyYW50EhAKCGdyYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSDgoGb3JnX2lkGAMgASgJIkEKGkltcG9ydERhdGFTdWNjZXNzVXNlckdyYW50EhIKCnByb2plY3RfaWQYASABKAkSDwoHdXNlcl9pZBgCIAEoCSJFCh5JbXBvcnREYXRhU3VjY2Vzc1Byb2plY3RNZW1iZXISEgoKcHJvamVjdF9pZBgBIAEoCRIPCgd1c2VyX2lkGAIgASgJIlwKI0ltcG9ydERhdGFTdWNjZXNzUHJvamVjdEdyYW50TWVtYmVyEhIKCnByb2plY3RfaWQYASABKAkSEAoIZ3JhbnRfaWQYAiABKAkSDwoHdXNlcl9pZBgDIAEoCSJtChpJbXBvcnREYXRhU3VjY2Vzc1VzZXJMaW5rcxIPCgd1c2VyX2lkGAEgASgJEhgKEGV4dGVybmFsX3VzZXJfaWQYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEg4KBmlkcF9pZBgEIAEoCSI9Ch1JbXBvcnREYXRhU3VjY2Vzc1VzZXJNZXRhZGF0YRIPCgd1c2VyX2lkGAEgASgJEgsKA2tleRgCIAEoCSLEHQoRRXhwb3J0RGF0YVJlcXVlc3QSQQoHb3JnX2lkcxgBIAMoCUIwkkEtSitbIjExOTM0NTkzODQ1MTc4Njc5MCIsICI3NjY5Mzg3NTU3NDU1MzkyNiJdEhgKEGV4Y2x1ZGVkX29yZ19pZHMYAiADKAkSFgoOd2l0aF9wYXNzd29yZHMYAyABKAgSEAoId2l0aF9vdHAYBCABKAgSFwoPcmVzcG9uc2Vfb3V0cHV0GAUgASgIEkUKDGxvY2FsX291dHB1dBgGIAEoCzIvLnppdGFkZWwuYWRtaW4udjEuRXhwb3J0RGF0YVJlcXVlc3QuTG9jYWxPdXRwdXQSPwoJczNfb3V0cHV0GAcgASgLMiwueml0YWRlbC5hZG1pbi52MS5FeHBvcnREYXRhUmVxdWVzdC5TM091dHB1dBJBCgpnY3Nfb3V0cHV0GAggASgLMi0ueml0YWRlbC5hZG1pbi52MS5FeHBvcnREYXRhUmVxdWVzdC5HQ1NPdXRwdXQSGwoHdGltZW91dBgJIAEoCUIKkkEHSgUiMzBtIhobCgtMb2NhbE91dHB1dBIMCgRwYXRoGAEgASgJGnkKCFMzT3V0cHV0EgwKBHBhdGgYASABKAkSEAoIZW5kcG9pbnQYAiABKAkSFQoNYWNjZXNzX2tleV9pZBgDIAEoCRIZChFzZWNyZXRfYWNjZXNzX2tleRgEIAEoCRILCgNzc2wYBSABKAgSDgoGYnVja2V0GAYgASgJGo4ZCglHQ1NPdXRwdXQSKgoGYnVja2V0GAEgASgJQhqSQRdKFSJ6aXRhZGVsLXRlc3QtYnVja2V0IhKqGAoTc2VydmljZWFjY291bnRfanNvbhgCIAEoCUKMGJJBiBhKhRgiZXdvZ0lDSjBlWEZVSkVmamp1ZTlXRkppc2hpZVdOamIzVnVkQ0lzQ2lBZ0luQnliMnBsWTNSZmFXUWlPaUFpWTJGdmN5MHlOREE0TURraUxBb2dJQ0p3Y21sMllYUmxYMnRsZVY5cFpDSTZJQ0pqTW1GbFlXUXdaall3T0RrNU1HVTROek0wTmpsbFlUaGlZV1psTWpkaFpHUTJZVEF5TXpZMklpd0tJQ0FpY0hKcGRtRjBaVjlyWlhraU9pQWlMUzB0TFMxQ1JVZEpUaUJRVWtsV1FWUkZJRXRGV1MwdEpGT2dqOEplSkZOT0VGR1FrRkVRVTVDWjJ0eGFHdHBSemwzTUVKQlVVVkdRVUZUUTBKTFozZG5aMU5yUVdkRlFVRnZTVUpCVVVOWmNIbHFNREJxTW5SQ1JUaE9YRzVOWW5OUlNVazNka2h1ZEc1b1VXMVFXVGhEY1daeVR6ZHVaWFYxY0hSdWVtcGhOR3hKYTBwTGVETm1jRlpGUkRKVVdYSnlTV1VmaDVKZnNvaXhtWEc0Mk1UbFRlVFZMTVdGWVkwNVhhbXgwWjFVeU1WVnZiakpMWnpkQmJpOUJWV0prUkRkdlVVeGFXRVIxTVUwclYwOW5WME5uZFVsS1owWkNOamhWYUVOblhHNWFjSEJ0UjFGYWVUTnZOREphWVZGQ1RrZFZSbHByUjFaNlVuTnRVMjR6YWtkV1ptTmFVMjAyWVdKQ1RtOXhhaXR1Y0ZWd01qSnJhRGRrZHVyVEpGSVNFNTVIVlhaQlZXczBjV0VyTVhkblIxQmxObE5FVDNRNE5VUTRXRlpLVjNVcmJsYzJjVE53UWpoMFdsbENNbkpXTWxwRWNHRXdLMU5uVXpCQllXY3pTWGgxWEc1Q09WcFpkbTE0Y1ZacVlqUllRMmgwYTBORFRqUm9TMjVHUzFONUswOUtkbkpCY2paaVNUWkRlazByUnpWWVFXMUhXVXhIVkd4cFJVTXdWVWxDVlhWbFhHNDRVMmxsYkhWVmNrRm5UVUpCUVVWRFoyZEZRVWcwYjFZck4wMHJaUzlPVTJNcmNuTTVPVWRMVW5CNFdrdGtVRU5ZUjFwcVVtSmhhelIxVVc1alF5OVpYRzVCZVhGdlMzUk1kblZIZVVzclYwaHVhRUozVlZWcE1YZzJUVU0yU0d0SGMzbEtMMnRWTkVwekwzUTVXamhvTDAxcmNsQjFMM05KWkdOQlpGUm5abVp3WEc1cVoySTRZMU5xWTI5c1ZXTnVkakJ2WkdrclJEWXJSVVJUZEN0T1ZrTktkV1ptTWtVNVFXaERibFpSWms1T2VpdE1RMDlNY0dKb2VGZzBXaTlyUVV4MFhHNVFlSEkwVEc1eWQyVkVVV3hFY0ZCdGRYaGliR3BvZWxKSGJFaGFWRmQxWVZSS1NVOUxiMjlVU3pCWE4yMU9LMmxxVVhwNGMxcE1ZVkZzUWpreWFuaGxYRzVWTTNCR01Ga3pLMmxJUlc0MlN6QlZiMlJST0hCMGIyZGxkM05qTWpGWVRUWkdia1ZUTVZCNE9GQlVXVE5IV21WblpFZDRlVTVyVmxWd2RrbEVaa1JqWEc1UlYzbEJkMk55UzI4emVuaDVWVU00VmtaclJGWmpaaXRMU0dNNVUzTk9TazlRV1ZKbFlrUTVVbEZMUW1kUlJGRmpZVFZXVFdZeWJreDBXa05wYzJNMlhHNXNlRXhuTnpBdk56VlVla04xUjJVdlowSlJWR2tyVUdrMkwxbElXWFZpVkdkUGNFa3dOa04zVG5kTk9VbFZPRUl6ZDJwaldITm5kR2szUW1WcVJtaHhYRzVQVUZSaVNTOHpMMHcyVTNCTWQyZDBkMVJtU0Rod1lsRmFVVkJDV1ZNMlRta3pjbFY0T1dwb2EzUTNSelJHZURoSFRuaE5hblJzWmpGakszWkViRTRyWEc0MWQycDJkeXRMVDJSeVluRjRUamswYTJWc2F6RkVUaTlPZDB0Q1oxRkROMlYyV1hGR1ozUXdNV1ZLT1ZnMU5UZE1VVXA2YWpCcWNtWXZZazFpWWlzMlhHNVBXa3BIVTJOWFkxUjJOM294V0Vkc1JURkVabXBYZURka1EwdFBORzVDYm5BM1RIQkRPRmhDWlVJMmExQTJla0pSWWs5dFJtc3ZiV3RuZW0xU1UyRjRYRzVTWjJvMk4zVnpRVWRzVXpReWNrdE1lVWMzWTNjNFpIcHJMMjlUYVdRM2NUZEdhREV2YjJoQ1ptUnhZblZtZHpkVlkyRkVNbUo2ZVVOcFFqUkVkbXcwWEc1bVJESnRSaXR1TjNKUlMwSm5VVU5SUm1WVlEwMTZielZrUzBSaVFXNDVVazkwYW5JM09FVkZVMHRRUm01b04zQlBlVzFzYTFVclNISnpRVEIyZFV3NFhHNVdUMHRsVlU1MVJYTTJTbXBuVlVSU09VWkNNWFJJWWk5T1RUVkljbEV2TkRkVlNXdHpVelpGVmxoVGJrWnJSemRFZUV3eEwyWlVUMUJQVm5CeFZHMDJYRzR3YVRKdlNrUlZRbE5NYzBORmJHdGlNWHAxUWtkRlYyVm1NMlVyWkVaTE0wdENSQzlZUWt0b2F5dEtRbE55UjBjNFMxYzJPSGQ0WkRWUlMwSm5VVU5SWEc1b2FubHVkWFpETHpnelYzbDNibWgzWVdkVlpYZHNSWEpSYVRCc09FZEVRbXhWYml0d2VsbFFlR2hJYVU1RFRqQmFjM2xOVjFGQ1RYUjJNVUVyY1hjclhHNUxPV1pQYzFWWFZWaENNelkzYURoc2NEVnNkWEZ1Y1ZSMWRtbzBkR3QzWVd0dGRYWjZWMmRhV0hwTU5tZGFWSE5FZFc1Mlp6TnJTWHAzVlZSTU0yUktYRzR3UlVwMFV6TmpUVlJhUjNSU1NsWTVkMUU1ZDJGMlUzUXZWVXRGWVhJM1JITTNjblZvUkdKaGVsRkxRbWRDT0VRdmJtODNOWGRJU1c5emQzcDViVW8zWEc0M1NUTlhla2d6VXpSc1YyczJiVWRNZGpkbFRuUjNiRkJQV1ZSNlZIaHlWRlJ0VnpKSFJERXhObGhRUmtRcmJVRm5hbkl3WWxOek1EZEpkMkY1YXl0elhHNVpVbXRHV21RMGVtWm5iMlp5VlUxUVMxZDZXVkJXUzBSUE9WTkdNbEZUVTBWNlNWTm1VM3AzU2taQ1dGcDZkMnBLZUhkbmJYSXdiRFI2YURKdlpVUlRYRzVpWVhaT1pEVnZhSFpOUjA1V1pVWnJLelZrWjNwS1VFaGNiaTB0TFMwdFJVNUVJRkJTU1ZaQlZFVWdTMFZaTFMwdExTMWNiaUlzQ2lBZ0ltTnNhV1Z1ZEY5bGJXRnBiQ0k2SUNKdmNtSnZjeTFpWlc1NlFHTmhiM010TWpRd09EQTVMbWxoYlM1bmMyVnlkbWxqWldGalkyOTFiblF1WTI5dElpd0tJQ0FpWTJ4cFpXNTBYMmxrSWpvZ0lqRXhNelUwT1Rrd05ETTJOamN6TWpFMU16TTFOU0lzQ2lBZ0ltRjFkR2hmZFhKcElqb2dJbWgwZEhCek9pOHZZV05qYjNWdWRITXVaMjl2WjJ4bExtTnZiUzl2TDI5aGRYUm9NaTloZFhSb0lpd0tJQ0FpZEc5clpXNWZkWEpwSWpvZ0ltaDBkSEJ6T2k4dmIyRjFkR2d5TG1kdmIyZHNaV0Z3YVhNdVkyOXRMM1J2YTJWdUlpd0tJQ0FpWVhWMGFGOXdjbTkyYVdSbGNsOTROVEE1WDJObGNuUmZkWEpzSWpvZ0ltaDBkSEJ6T2k4dmQzZDNMbWR2YjJkc1pXRndhWE11WTI5dEwyOWhkWFJvTWk5Mk1TOWpaWEowY3lJc0NpQWdJbU5zYVdWdWRGOTROVEE1WDJObGNuUmZkWEpzSWpvZ0ltaDBkSEJ6T2k4dmQzZDNMbWR2YjJkc1pXRndhWE11WTI5dEwzSnZZbTkwTDNZeEwyMWxkR0ZrWVhSaEwzZzFNRGt2YjNKaWIzTXRZbVZ1ZWlVME1HTmhiM010TWpRd09EQTVMbWxoYlM1bmMyVnlkbWxqWldGalkyOTFiblF1WTI5dElncDlDZz09IhIoCgRwYXRoGAMgASgJQhqSQRdKFSJteV9leHBvcnRfZmlsZS5qc29uIiI9ChJFeHBvcnREYXRhUmVzcG9uc2USJwoEb3JncxgBIAMoCzIZLnppdGFkZWwuYWRtaW4udjEuRGF0YU9yZyK+CwoRTGlzdEV2ZW50c1JlcXVlc3QS/QEKCHNlcXVlbmNlGAEgASgEQuoBkkHmATLeAVNlcXVlbmNlIHJlcHJlc2VudHMgdGhlIG9yZGVyIG9mIGV2ZW50cy4gSXQncyBhbHdheXMgY291bnRpbmcuIElmIGFzYyBpcyBmYWxzZSwgdGhlIHNlcXVlbmNlIGlzIHVzZWQgYXMgbGVzc2VyIHRoYW4gZmlsdGVyLiBJZiBhc2MgaXMgdHJ1ZSBzZXF1ZW5jZSBpcyB1c2VkIGFzIGdyZWF0ZXIgdGhhbiBmaWx0ZXIuIElmIHRoZSBzZXF1ZW5jZSBpcyAwIHRoZSBmaWVsZCBpcyBpZ25vcmVkLkoDIjIiEjoKBWxpbWl0GAIgASgNQiuSQSgyIk1heGltdW0gYW1vdW50IG9mIGV2ZW50cyByZXR1cm5lZC5KAjIwEjUKA2FzYxgDIAEoCEIokkElMiNkZWZhdWx0IGlzIGRlc2NlbmRpbmcgc29ydGluZyBvcmRlchI6Cg5lZGl0b3JfdXNlcl9pZBgEIAEoCUIikkEVShMiNjk2MjkwMjM5MDY0ODgzMzQi+kIHcgUQABjIARKHAQoLZXZlbnRfdHlwZXMYBSADKAlCcpJBZzI/VGhlIHR5cGVzIGFyZSBmaWx0ZXJlZCBieSAnb3InIGFuZCBtdXN0IG1hdGNoIHRoZSB0eXBlIGV4YWN0bHkuSiRbInVzZXIuaHVtYW4uYWRkZWQiLCAidXNlci5tYWNoaW5lIl36QgWSAQIQHhI4CgxhZ2dyZWdhdGVfaWQYBiABKAlCIpJBFUoTIjY5NjI5MDIzOTA2NDg4MzM0IvpCB3IFEAAYyAESLAoPYWdncmVnYXRlX3R5cGVzGAcgAygJQhOSQQhKBiJ1c2VyIvpCBZIBAhAKEjoKDnJlc291cmNlX293bmVyGAggASgJQiKSQRVKEyI2OTYyOTAyMzkwNjQ4ODMzNCL6QgdyBRAAGMgBEmoKDWNyZWF0aW9uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQjcYAZJBMjIRVXNlIGZyb20gaW5zdGVhZC5KHSIyMDE5LTA0LTAxVDA4OjQ1OjAwLjAwMDAwMFoiEkgKBXJhbmdlGAogASgLMjcueml0YWRlbC5hZG1pbi52MS5MaXN0RXZlbnRzUmVxdWVzdC5jcmVhdGlvbl9kYXRlX3JhbmdlSAAS1AEKBGZyb20YCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQqcBkkGjATKBAUlmIGFzYyBpcyBmYWxzZSwgdGhlIGV2ZW50cyByZXR1cm5lZCBhcmUgb2xkZXIgdGhhbiB0aGUgVVRDIGZyb20gZGF0ZS4gSWYgYXNjIGlzIHRydWUsIHRoZSBldmVudHMgcmV0dXJuZWQgYXJlIHlvdW5nZXIgdGhhbiBmcm9tLkodIjIwMTktMDQtMDFUMDg6NDU6MDAuMDAwMDAwWiJIABqmAgoTY3JlYXRpb25fZGF0ZV9yYW5nZRKGAQoFc2luY2UYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQluSQVgyN1RoZSBldmVudHMgcmV0dXJuZWQgYXJlIHlvdW5nZXIgdGhhbiB0aGUgVVRDIHNpbmNlIGRhdGVKHSIyMDE5LTA0LTAxVDA4OjQ1OjAwLjAwMDAwMFoiEoUBCgV1bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCWpJBVzI2VGhlIGV2ZW50cyByZXR1cm5lZCBhcmUgb2xkZXIgdGhhbiB0aGUgVVRDIHVudGlsIGRhdGUuSh0iMjAxOS0wNC0wMVQwODo0NTowMC4wMDAwMDBaIkIWChRjcmVhdGlvbl9kYXRlX2ZpbHRlciI9ChJMaXN0RXZlbnRzUmVzcG9uc2USJwoGZXZlbnRzGAEgAygLMhcueml0YWRlbC5ldmVudC52MS5FdmVudCIXChVMaXN0RXZlbnRUeXBlc1JlcXVlc3QiSgoWTGlzdEV2ZW50VHlwZXNSZXNwb25zZRIwCgtldmVudF90eXBlcxgBIAMoCzIbLnppdGFkZWwuZXZlbnQudjEuRXZlbnRUeXBlIhsKGUxpc3RBZ2dyZWdhdGVUeXBlc1JlcXVlc3QiVgoaTGlzdEFnZ3JlZ2F0ZVR5cGVzUmVzcG9uc2USOAoPYWdncmVnYXRlX3R5cGVzGAEgAygLMh8ueml0YWRlbC5ldmVudC52MS5BZ2dyZWdhdGVUeXBlIicKJUFjdGl2YXRlRmVhdHVyZUxvZ2luRGVmYXVsdE9yZ1JlcXVlc3QiVAomQWN0aXZhdGVGZWF0dXJlTG9naW5EZWZhdWx0T3JnUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyK2AQoVTGlzdE1pbGVzdG9uZXNSZXF1ZXN0EiQKBXF1ZXJ5GAEgASgLMhUueml0YWRlbC52MS5MaXN0UXVlcnkSQAoOc29ydGluZ19jb2x1bW4YAiABKA4yKC56aXRhZGVsLm1pbGVzdG9uZS52MS5NaWxlc3RvbmVGaWVsZE5hbWUSNQoHcXVlcmllcxgDIAMoCzIkLnppdGFkZWwubWlsZXN0b25lLnYxLk1pbGVzdG9uZVF1ZXJ5InMKFkxpc3RNaWxlc3RvbmVzUmVzcG9uc2USKAoHZGV0YWlscxgBIAEoCzIXLnppdGFkZWwudjEuTGlzdERldGFpbHMSLwoGcmVzdWx0GAIgAygLMh8ueml0YWRlbC5taWxlc3RvbmUudjEuTWlsZXN0b25lIvsDChZTZXRSZXN0cmljdGlvbnNSZXF1ZXN0EvABCiBkaXNhbGxvd19wdWJsaWNfb3JnX3JlZ2lzdHJhdGlvbhgBIAEoCELAAZJBvAEyuQFkZWZpbmVzIGlmIFppdGFkZWwgc2hvdWxkIGV4cG9zZSB0aGUgZW5kcG9pbnQgL3VpL2xvZ2luL3JlZ2lzdGVyL29yZy4gSWYgaXQgaXMgdHJ1ZSwgdGhlIG9yZyByZWdpc3RyYXRpb24gZW5kcG9pbnQgcmV0dXJucyB0aGUgSFRUUCBzdGF0dXMgNDA0IG9uIEdFVCByZXF1ZXN0cywgYW5kIDQwOSBvbiBQT1NUIHJlcXVlc3RzLkgAiAEBErIBChFhbGxvd2VkX2xhbmd1YWdlcxgCIAEoCzIhLnppdGFkZWwuYWRtaW4udjEuU2VsZWN0TGFuZ3VhZ2VzQm+SQWwyanJlc3RyaWN0cyB0aGUgYWxsb3dlZCBsYW5ndWFnZXMuIElmIGFsbG93ZWRfbGFuZ3VhZ2VzIGlzIHVuZGVmaW5lZCwgdGhlIGFsbG93ZWQgbGFuZ3VhZ2VzIGFyZSBub3QgY2hhbmdlZC5IAYgBAUIjCiFfZGlzYWxsb3dfcHVibGljX29yZ19yZWdpc3RyYXRpb25CFAoSX2FsbG93ZWRfbGFuZ3VhZ2VzIngKD1NlbGVjdExhbmd1YWdlcxJlCgRsaXN0GAEgAygJQleSQVQyUmRlZmluZXMgd2hpY2ggbGFuZ3VhZ2VzIHRvIHNlbGVjdC4gQW4gZW1wdHkgbGlzdCBtZWFucyBhbGwgbGFuZ3VhZ2VzIGFyZSBzZWxlY3RlZC4iRQoXU2V0UmVzdHJpY3Rpb25zUmVzcG9uc2USKgoHZGV0YWlscxgBIAEoCzIZLnppdGFkZWwudjEuT2JqZWN0RGV0YWlscyIYChZHZXRSZXN0cmljdGlvbnNSZXF1ZXN0IoEEChdHZXRSZXN0cmljdGlvbnNSZXNwb25zZRIqCgdkZXRhaWxzGAEgASgLMhkueml0YWRlbC52MS5PYmplY3REZXRhaWxzEusBCiBkaXNhbGxvd19wdWJsaWNfb3JnX3JlZ2lzdHJhdGlvbhgCIAEoCELAAZJBvAEyuQFkZWZpbmVzIGlmIFppdGFkZWwgc2hvdWxkIGV4cG9zZSB0aGUgZW5kcG9pbnQgL3VpL2xvZ2luL3JlZ2lzdGVyL29yZy4gSWYgaXQgaXMgdHJ1ZSwgdGhlIG9yZyByZWdpc3RyYXRpb24gZW5kcG9pbnQgcmV0dXJucyB0aGUgSFRUUCBzdGF0dXMgNDA0IG9uIEdFVCByZXF1ZXN0cywgYW5kIDQwOSBvbiBQT1NUIHJlcXVlc3RzLhLLAQoRYWxsb3dlZF9sYW5ndWFnZXMYAyADKAlCrwGSQasBMqgBZGVmaW5lcyB0aGUgYWxsb3dlZCBsYW5ndWFnZXMuIElmIGFsbG93ZWRfbGFuZ3VhZ2VzIGhhcyBvbmUgb3IgbW9yZSBlbnRyaWVzLCBvbmx5IHRoZXNlIGxhbmd1YWdlcyBhcmUgYWxsb3dlZC4gSWYgaXQgaGFzIG5vIGVudHJpZXMsIGFsbCBzdXBwb3J0ZWQgbGFuZ3VhZ2VzIGFyZSBhbGxvd2VkMtqmBQoMQWRtaW5TZXJ2aWNlErcCCgdIZWFsdGh6EiAueml0YWRlbC5hZG1pbi52MS5IZWFsdGh6UmVxdWVzdBohLnppdGFkZWwuYWRtaW4udjEuSGVhbHRoelJlc3BvbnNlIuYBkkHSAQoHR2VuZXJhbBIHSGVhbHRoehp+VGhlIGhlYWx0aCBlbmRwb2ludCBhbGxvd3MgYW4gZXh0ZXJuYWwgc3lzdGVtIHRvIHByb2JlIGlmIFppdGFkZWwgc3lzdGVtIEFQSSBpcyBhbGl2ZS4gUmVzcG9uc2UgYXMgc29vbiBhcyBaaXRhZGVsIGlzIHJ1bm5pbmcuShgKAzIwMBIRCg9aSVRBREVMIHN0YXJ0ZWRKJAoHZGVmYXVsdBIZChdaSVRBREVMIE5PVCBzdGFydGVkIHlldILT5JMCChIIL2hlYWx0aHoSnwIKFUdldFN1cHBvcnRlZExhbmd1YWdlcxIuLnppdGFkZWwuYWRtaW4udjEuR2V0U3VwcG9ydGVkTGFuZ3VhZ2VzUmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuR2V0U3VwcG9ydGVkTGFuZ3VhZ2VzUmVzcG9uc2UipAGSQXwKB0dlbmVyYWwSE1N1cHBvcnRlZCBMYW5ndWFnZXMaXFRoZSBzdXBwb3J0ZWQvZGVmYXVsdCBsYW5ndWFnZXMgb2YgdGhlIHN5c3RlbSB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBsYW5ndWFnZSBhYmJyZXZpYXRpb24ugrUYDwoNYXV0aGVudGljYXRlZILT5JMCDBIKL2xhbmd1YWdlcxKuAgoTR2V0QWxsb3dlZExhbmd1YWdlcxIsLnppdGFkZWwuYWRtaW4udjEuR2V0QWxsb3dlZExhbmd1YWdlc1JlcXVlc3QaLS56aXRhZGVsLmFkbWluLnYxLkdldEFsbG93ZWRMYW5ndWFnZXNSZXNwb25zZSK5AZJBiAEKDFJlc3RyaWN0aW9ucxIRQWxsb3dlZCBMYW5ndWFnZXMaZUlmIHRoZSBsYW5ndWFnZXMgYXJlIHJlc3RyaWN0ZWQsIG9ubHkgdGhvc2UgYXJlIHJldHVybmVkLiBFbHNlLCBhbGwgc3VwcG9ydGVkIGxhbmd1YWdlcyBhcmUgcmV0dXJuZWQugrUYDwoNYXV0aGVudGljYXRlZILT5JMCFBISL2xhbmd1YWdlcy9hbGxvd2VkEsUCChJTZXREZWZhdWx0TGFuZ3VhZ2USKy56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRMYW5ndWFnZVJlcXVlc3QaLC56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRMYW5ndWFnZVJlc3BvbnNlItMBkkGbAQoHR2VuZXJhbBIVU2V0IERlZmF1bHQgTGFuZ3VhZ2VzGnlTZXQgdGhlIGxhbmd1YWdlIHRoYXQgaXMgdXNlZCBhcyBhIGZhbGxiYWNrL2RlZmF1bHQgaWYgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgc29tZXRoaW5nIHRoYXQgaXMgbm90IHByb3ZpZGVkIGJ5IFpJVEFERUwugrUYCwoJaWFtLndyaXRlgtPkkwIfGh0vbGFuZ3VhZ2VzL2RlZmF1bHQve2xhbmd1YWdlfRK9AgoSR2V0RGVmYXVsdExhbmd1YWdlEisueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0TGFuZ3VhZ2VSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0TGFuZ3VhZ2VSZXNwb25zZSLLAZJBnwEKB0dlbmVyYWwSFUdldCBEZWZhdWx0IExhbmd1YWdlcxp9UmV0dXJucyB0aGUgbGFuZ3VhZ2UgdGhhdCBpcyB1c2VkIGFzIGEgZmFsbGJhY2svZGVmYXVsdCBpZiB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgdGhhdCBpcyBub3QgcHJvdmlkZWQgYnkgWklUQURFTC6CtRgKCghpYW0ucmVhZILT5JMCFBISL2xhbmd1YWdlcy9kZWZhdWx0EpQBCg1HZXRNeUluc3RhbmNlEiYueml0YWRlbC5hZG1pbi52MS5HZXRNeUluc3RhbmNlUmVxdWVzdBonLnppdGFkZWwuYWRtaW4udjEuR2V0TXlJbnN0YW5jZVJlc3BvbnNlIjKSQQwKCEluc3RhbmNlWAGCtRgKCghpYW0ucmVhZILT5JMCDxINL2luc3RhbmNlcy9tZRKpAQoTTGlzdEluc3RhbmNlRG9tYWlucxIsLnppdGFkZWwuYWRtaW4udjEuTGlzdEluc3RhbmNlRG9tYWluc1JlcXVlc3QaLS56aXRhZGVsLmFkbWluLnYxLkxpc3RJbnN0YW5jZURvbWFpbnNSZXNwb25zZSI1kkEMCghJbnN0YW5jZVgBgrUYCgoIaWFtLnJlYWSC0+STAhIiEC9kb21haW5zL19zZWFyY2gSxgEKGkxpc3RJbnN0YW5jZVRydXN0ZWREb21haW5zEjMueml0YWRlbC5hZG1pbi52MS5MaXN0SW5zdGFuY2VUcnVzdGVkRG9tYWluc1JlcXVlc3QaNC56aXRhZGVsLmFkbWluLnYxLkxpc3RJbnN0YW5jZVRydXN0ZWREb21haW5zUmVzcG9uc2UiPZJBDAoISW5zdGFuY2VYAYK1GAoKCGlhbS5yZWFkgtPkkwIaIhgvdHJ1c3RlZF9kb21haW5zL19zZWFyY2gSvAEKGEFkZEluc3RhbmNlVHJ1c3RlZERvbWFpbhIxLnppdGFkZWwuYWRtaW4udjEuQWRkSW5zdGFuY2VUcnVzdGVkRG9tYWluUmVxdWVzdBoyLnppdGFkZWwuYWRtaW4udjEuQWRkSW5zdGFuY2VUcnVzdGVkRG9tYWluUmVzcG9uc2UiOZJBDAoISW5zdGFuY2VYAYK1GAsKCWlhbS53cml0ZYLT5JMCFToBKiIQL3RydXN0ZWRfZG9tYWlucxLLAQobUmVtb3ZlSW5zdGFuY2VUcnVzdGVkRG9tYWluEjQueml0YWRlbC5hZG1pbi52MS5SZW1vdmVJbnN0YW5jZVRydXN0ZWREb21haW5SZXF1ZXN0GjUueml0YWRlbC5hZG1pbi52MS5SZW1vdmVJbnN0YW5jZVRydXN0ZWREb21haW5SZXNwb25zZSI/kkEMCghJbnN0YW5jZVgBgrUYCwoJaWFtLndyaXRlgtPkkwIbKhkvdHJ1c3RlZF9kb21haW5zL3tkb21haW59EoIDChRMaXN0U2VjcmV0R2VuZXJhdG9ycxItLnppdGFkZWwuYWRtaW4udjEuTGlzdFNlY3JldEdlbmVyYXRvcnNSZXF1ZXN0Gi4ueml0YWRlbC5hZG1pbi52MS5MaXN0U2VjcmV0R2VuZXJhdG9yc1Jlc3BvbnNlIooCkkHUAQoHU2VjcmV0cxIWTGlzdCBTZWNyZXQgR2VuZXJhdG9ycxqwAUxpc3RzIGFsbCB0aGUgY29uZmlndXJlZCBzZWNyZXQgZ2VuZXJhdG9ycy4gVGhlIGdlbmVyYXRvcnMgZGVmaW5lIGhvdyBhIHNlY3JldCBzaG91bGQgbG9vayB3aGVuIGdlbmVyYXRlZCBpbiBaSVRBREVMLiBFLmcgRW1haWwgdmVyaWZpY2F0aW9uIGNvZGUsIHBob25lIHZlcmlmaWNhdGlvbiBjb2RlLCBldGMugrUYCgoIaWFtLnJlYWSC0+STAh46ASoiGS9zZWNyZXRnZW5lcmF0b3JzL19zZWFyY2gS3QIKEkdldFNlY3JldEdlbmVyYXRvchIrLnppdGFkZWwuYWRtaW4udjEuR2V0U2VjcmV0R2VuZXJhdG9yUmVxdWVzdBosLnppdGFkZWwuYWRtaW4udjEuR2V0U2VjcmV0R2VuZXJhdG9yUmVzcG9uc2Ui6wGSQa8BCgdTZWNyZXRzEhRHZXQgU2VjcmV0IEdlbmVyYXRvchqNAUdldCBhIHNwZWNpZmljIHNlY3JldCBnZW5lcmF0b3IgYnkgaXRzIHR5cGUgKGUuZyBQYXNzd29yZFJlc2V0Q29kZSkuIEEgZ2VuZXJhdG9yIGRlZmluZXMgaG93IGEgc2VjcmV0IHNob3VsZCBsb29rIHdoZW4gZ2VuZXJhdGluZyBpbiBaSVRBREVMLoK1GAoKCGlhbS5yZWFkgtPkkwIkEiIvc2VjcmV0Z2VuZXJhdG9ycy97Z2VuZXJhdG9yX3R5cGV9Ev4CChVVcGRhdGVTZWNyZXRHZW5lcmF0b3ISLi56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZVNlY3JldEdlbmVyYXRvclJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZVNlY3JldEdlbmVyYXRvclJlc3BvbnNlIoMCkkHDAQoHU2VjcmV0cxIXVXBkYXRlIFNlY3JldCBHZW5lcmF0b3IangFDaGFuZ2UgYSBzcGVjaWZpYyBzZWNyZXQgZ2VuZXJhdG9yIGNvbmZpZ3VyYXRpb24gYnkgaXRzIHR5cGUgKGUuZyBQYXNzd29yZFJlc2V0Q29kZSkuIEEgZ2VuZXJhdG9yIGRlZmluZXMgaG93IGEgc2VjcmV0IHNob3VsZCBsb29rIHdoZW4gZ2VuZXJhdGluZyBpbiBaSVRBREVMLoK1GAsKCWlhbS53cml0ZYLT5JMCJzoBKhoiL3NlY3JldGdlbmVyYXRvcnMve2dlbmVyYXRvcl90eXBlfRKQAQoNR2V0U01UUENvbmZpZxImLnppdGFkZWwuYWRtaW4udjEuR2V0U01UUENvbmZpZ1JlcXVlc3QaJy56aXRhZGVsLmFkbWluLnYxLkdldFNNVFBDb25maWdSZXNwb25zZSIukkEQCgxTTVRQIENvbmZpZ3NYAYK1GAoKCGlhbS5yZWFkgtPkkwIHEgUvc210cBKhAQoRR2V0U01UUENvbmZpZ0J5SWQSKi56aXRhZGVsLmFkbWluLnYxLkdldFNNVFBDb25maWdCeUlkUmVxdWVzdBorLnppdGFkZWwuYWRtaW4udjEuR2V0U01UUENvbmZpZ0J5SWRSZXNwb25zZSIzkkEQCgxTTVRQIENvbmZpZ3NYAYK1GAoKCGlhbS5yZWFkgtPkkwIMEgovc210cC97aWR9EpQBCg1BZGRTTVRQQ29uZmlnEiYueml0YWRlbC5hZG1pbi52MS5BZGRTTVRQQ29uZmlnUmVxdWVzdBonLnppdGFkZWwuYWRtaW4udjEuQWRkU01UUENvbmZpZ1Jlc3BvbnNlIjKSQRAKDFNNVFAgQ29uZmlnc1gBgrUYCwoJaWFtLndyaXRlgtPkkwIKOgEqIgUvc210cBKiAQoQVXBkYXRlU01UUENvbmZpZxIpLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlU01UUENvbmZpZ1JlcXVlc3QaKi56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZVNNVFBDb25maWdSZXNwb25zZSI3kkEQCgxTTVRQIENvbmZpZ3NYAYK1GAsKCWlhbS53cml0ZYLT5JMCDzoBKhoKL3NtdHAve2lkfRLDAQoYVXBkYXRlU01UUENvbmZpZ1Bhc3N3b3JkEjEueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTTVRQQ29uZmlnUGFzc3dvcmRSZXF1ZXN0GjIueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTTVRQQ29uZmlnUGFzc3dvcmRSZXNwb25zZSJAkkEQCgxTTVRQIENvbmZpZ3NYAYK1GAsKCWlhbS53cml0ZYLT5JMCGDoBKhoTL3NtdHAve2lkfS9wYXNzd29yZBLmAQoSQWN0aXZhdGVTTVRQQ29uZmlnEisueml0YWRlbC5hZG1pbi52MS5BY3RpdmF0ZVNNVFBDb25maWdSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5BY3RpdmF0ZVNNVFBDb25maWdSZXNwb25zZSJ1kkFECgxTTVRQIENvbmZpZ3MSFkFjdGl2YXRlIFNNVFAgUHJvdmlkZXIaGkFjdGl2YXRlIGFuIFNNVFAgcHJvdmlkZXIuWAGCtRgLCglpYW0ud3JpdGWC0+STAhk6ASoiFC9zbXRwL3tpZH0vX2FjdGl2YXRlEroBChREZWFjdGl2YXRlU01UUENvbmZpZxItLnppdGFkZWwuYWRtaW4udjEuRGVhY3RpdmF0ZVNNVFBDb25maWdSZXF1ZXN0Gi4ueml0YWRlbC5hZG1pbi52MS5EZWFjdGl2YXRlU01UUENvbmZpZ1Jlc3BvbnNlIkOSQRAKDFNNVFAgQ29uZmlnc1gBgrUYCwoJaWFtLndyaXRlgtPkkwIbOgEqIhYvc210cC97aWR9L19kZWFjdGl2YXRlEp8BChBSZW1vdmVTTVRQQ29uZmlnEikueml0YWRlbC5hZG1pbi52MS5SZW1vdmVTTVRQQ29uZmlnUmVxdWVzdBoqLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlU01UUENvbmZpZ1Jlc3BvbnNlIjSSQRAKDFNNVFAgQ29uZmlnc1gBgrUYCwoJaWFtLndyaXRlgtPkkwIMKgovc210cC97aWR9Eq4BChJUZXN0U01UUENvbmZpZ0J5SWQSKy56aXRhZGVsLmFkbWluLnYxLlRlc3RTTVRQQ29uZmlnQnlJZFJlcXVlc3QaLC56aXRhZGVsLmFkbWluLnYxLlRlc3RTTVRQQ29uZmlnQnlJZFJlc3BvbnNlIj2SQRAKDFNNVFAgQ29uZmlnc1gBgrUYCwoJaWFtLndyaXRlgtPkkwIVOgEqIhAvc210cC97aWR9L190ZXN0Ep0BCg5UZXN0U01UUENvbmZpZxInLnppdGFkZWwuYWRtaW4udjEuVGVzdFNNVFBDb25maWdSZXF1ZXN0Gigueml0YWRlbC5hZG1pbi52MS5UZXN0U01UUENvbmZpZ1Jlc3BvbnNlIjiSQRAKDFNNVFAgQ29uZmlnc1gBgrUYCwoJaWFtLndyaXRlgtPkkwIQOgEqIgsvc210cC9fdGVzdBKhAQoPTGlzdFNNVFBDb25maWdzEigueml0YWRlbC5hZG1pbi52MS5MaXN0U01UUENvbmZpZ3NSZXF1ZXN0Gikueml0YWRlbC5hZG1pbi52MS5MaXN0U01UUENvbmZpZ3NSZXNwb25zZSI5kkEQCgxTTVRQIENvbmZpZ3NYAYK1GAoKCGlhbS5yZWFkgtPkkwISOgEqIg0vc210cC9fc2VhcmNoEuUBChJMaXN0RW1haWxQcm92aWRlcnMSKy56aXRhZGVsLmFkbWluLnYxLkxpc3RFbWFpbFByb3ZpZGVyc1JlcXVlc3QaLC56aXRhZGVsLmFkbWluLnYxLkxpc3RFbWFpbFByb3ZpZGVyc1Jlc3BvbnNlInSSQUoKDkVtYWlsIFByb3ZpZGVyEhRMaXN0IEVtYWlsIHByb3ZpZGVycxoiUmV0dXJucyBhIGxpc3Qgb2YgRW1haWwgcHJvdmlkZXJzLoK1GAoKCGlhbS5yZWFkgtPkkwITOgEqIg4vZW1haWwvX3NlYXJjaBKWAgoQR2V0RW1haWxQcm92aWRlchIpLnppdGFkZWwuYWRtaW4udjEuR2V0RW1haWxQcm92aWRlclJlcXVlc3QaKi56aXRhZGVsLmFkbWluLnYxLkdldEVtYWlsUHJvdmlkZXJSZXNwb25zZSKqAZJBigEKDkVtYWlsIFByb3ZpZGVyEhlHZXQgYWN0aXZlIEVtYWlsIHByb3ZpZGVyGl1SZXR1cm5zIHRoZSBhY3RpdmUgRW1haWwgcHJvdmlkZXIgZnJvbSB0aGUgc3lzdGVtLiBUaGlzIGlzIHVzZWQgdG8gc2VuZCBFLU1haWxzIHRvIHRoZSB1c2Vycy6CtRgKCghpYW0ucmVhZILT5JMCCBIGL2VtYWlsEvMBChRHZXRFbWFpbFByb3ZpZGVyQnlJZBItLnppdGFkZWwuYWRtaW4udjEuR2V0RW1haWxQcm92aWRlckJ5SWRSZXF1ZXN0Gi4ueml0YWRlbC5hZG1pbi52MS5HZXRFbWFpbFByb3ZpZGVyQnlJZFJlc3BvbnNlInySQVgKDkVtYWlsIFByb3ZpZGVyEhxHZXQgRW1haWwgcHJvdmlkZXIgYnkgaXRzIGlkGihHZXQgYSBzcGVjaWZpYyBFbWFpbCBwcm92aWRlciBieSBpdHMgSUQugrUYCgoIaWFtLnJlYWSC0+STAg0SCy9lbWFpbC97aWR9Ev8BChRBZGRFbWFpbFByb3ZpZGVyU01UUBItLnppdGFkZWwuYWRtaW4udjEuQWRkRW1haWxQcm92aWRlclNNVFBSZXF1ZXN0Gi4ueml0YWRlbC5hZG1pbi52MS5BZGRFbWFpbFByb3ZpZGVyU01UUFJlc3BvbnNlIocBkkFfCg5FbWFpbCBQcm92aWRlchIXQWRkIFNNVFAgRW1haWwgcHJvdmlkZXIaNEFkZCBhIG5ldyBTTVRQIEVtYWlsIHByb3ZpZGVyIGlmIG5vdGhpbmcgaXMgc2V0IHlldC6CtRgLCglpYW0ud3JpdGWC0+STAhA6ASoiCy9lbWFpbC9zbXRwEv4CChdVcGRhdGVFbWFpbFByb3ZpZGVyU01UUBIwLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlRW1haWxQcm92aWRlclNNVFBSZXF1ZXN0GjEueml0YWRlbC5hZG1pbi52MS5VcGRhdGVFbWFpbFByb3ZpZGVyU01UUFJlc3BvbnNlIv0BkkHPAQoORW1haWwgUHJvdmlkZXISGlVwZGF0ZSBTTVRQIEVtYWlsIHByb3ZpZGVyGqABVXBkYXRlIHRoZSBTTVRQIEVtYWlsIHByb3ZpZGVyLCBiZSBhd2FyZSB0aGF0IHRoaXMgd2lsbCBiZSBhY3RpdmF0ZWQgYXMgc29vbiBhcyBpdCBpcyBzYXZlZC4gU28gdGhlIHVzZXJzIHdpbGwgZ2V0IG5vdGlmaWNhdGlvbnMgZnJvbSB0aGUgbmV3bHkgY29uZmlndXJlZCBTTVRQLoK1GAsKCWlhbS53cml0ZYLT5JMCFToBKhoQL2VtYWlsL3NtdHAve2lkfRL/AQoUQWRkRW1haWxQcm92aWRlckhUVFASLS56aXRhZGVsLmFkbWluLnYxLkFkZEVtYWlsUHJvdmlkZXJIVFRQUmVxdWVzdBouLnppdGFkZWwuYWRtaW4udjEuQWRkRW1haWxQcm92aWRlckhUVFBSZXNwb25zZSKHAZJBXwoORW1haWwgUHJvdmlkZXISF0FkZCBIVFRQIEVtYWlsIHByb3ZpZGVyGjRBZGQgYSBuZXcgSFRUUCBFbWFpbCBwcm92aWRlciBpZiBub3RoaW5nIGlzIHNldCB5ZXQugrUYCwoJaWFtLndyaXRlgtPkkwIQOgEqIgsvZW1haWwvaHR0cBL+AgoXVXBkYXRlRW1haWxQcm92aWRlckhUVFASMC56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUVtYWlsUHJvdmlkZXJIVFRQUmVxdWVzdBoxLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlRW1haWxQcm92aWRlckhUVFBSZXNwb25zZSL9AZJBzwEKDkVtYWlsIFByb3ZpZGVyEhpVcGRhdGUgSFRUUCBFbWFpbCBwcm92aWRlchqgAVVwZGF0ZSB0aGUgSFRUUCBFbWFpbCBwcm92aWRlciwgYmUgYXdhcmUgdGhhdCB0aGlzIHdpbGwgYmUgYWN0aXZhdGVkIGFzIHNvb24gYXMgaXQgaXMgc2F2ZWQuIFNvIHRoZSB1c2VycyB3aWxsIGdldCBub3RpZmljYXRpb25zIGZyb20gdGhlIG5ld2x5IGNvbmZpZ3VyZWQgSFRUUC6CtRgLCglpYW0ud3JpdGWC0+STAhU6ASoaEC9lbWFpbC9odHRwL3tpZH0SrQMKH1VwZGF0ZUVtYWlsUHJvdmlkZXJTTVRQUGFzc3dvcmQSOC56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUVtYWlsUHJvdmlkZXJTTVRQUGFzc3dvcmRSZXF1ZXN0Gjkueml0YWRlbC5hZG1pbi52MS5VcGRhdGVFbWFpbFByb3ZpZGVyU01UUFBhc3N3b3JkUmVzcG9uc2UilAKSQd0BCg5FbWFpbCBQcm92aWRlchIUVXBkYXRlIFNNVFAgUGFzc3dvcmQatAFVcGRhdGUgdGhlIFNNVFAgcGFzc3dvcmQgdGhhdCBpcyB1c2VkIGZvciB0aGUgaG9zdCwgYmUgYXdhcmUgdGhhdCB0aGlzIHdpbGwgYmUgYWN0aXZhdGVkIGFzIHNvb24gYXMgaXQgaXMgc2F2ZWQuIFNvIHRoZSB1c2VycyB3aWxsIGdldCBub3RpZmljYXRpb25zIGZyb20gdGhlIG5ld2x5IGNvbmZpZ3VyZWQgU01UUC6CtRgLCglpYW0ud3JpdGWC0+STAh46ASoaGS9lbWFpbC9zbXRwL3tpZH0vcGFzc3dvcmQS8gEKFUFjdGl2YXRlRW1haWxQcm92aWRlchIuLnppdGFkZWwuYWRtaW4udjEuQWN0aXZhdGVFbWFpbFByb3ZpZGVyUmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuQWN0aXZhdGVFbWFpbFByb3ZpZGVyUmVzcG9uc2UieJJBRgoORW1haWwgUHJvdmlkZXISF0FjdGl2YXRlIEVtYWlsIFByb3ZpZGVyGhtBY3RpdmF0ZSBhbiBFbWFpbCBwcm92aWRlci6CtRgLCglpYW0ud3JpdGWC0+STAho6ASoiFS9lbWFpbC97aWR9L19hY3RpdmF0ZRL4AgoXRGVhY3RpdmF0ZUVtYWlsUHJvdmlkZXISMC56aXRhZGVsLmFkbWluLnYxLkRlYWN0aXZhdGVFbWFpbFByb3ZpZGVyUmVxdWVzdBoxLnppdGFkZWwuYWRtaW4udjEuRGVhY3RpdmF0ZUVtYWlsUHJvdmlkZXJSZXNwb25zZSL3AZJBwgEKDkVtYWlsIFByb3ZpZGVyEhlEZWFjdGl2YXRlIEVtYWlsIFByb3ZpZGVyGpQBRGVhY3RpdmF0ZSBhbiBFbWFpbCBwcm92aWRlci4gQWZ0ZXIgZGVhY3RpdmF0aW5nIHRoZSBwcm92aWRlciwgdGhlIHVzZXJzIHdpbGwgbm90IGJlIGFibGUgdG8gcmVjZWl2ZSBFbWFpbCBub3RpZmljYXRpb25zIGZyb20gdGhhdCBwcm92aWRlciBhbnltb3JlLoK1GAsKCWlhbS53cml0ZYLT5JMCHDoBKiIXL2VtYWlsL3tpZH0vX2RlYWN0aXZhdGUSpAIKE1JlbW92ZUVtYWlsUHJvdmlkZXISLC56aXRhZGVsLmFkbWluLnYxLlJlbW92ZUVtYWlsUHJvdmlkZXJSZXF1ZXN0Gi0ueml0YWRlbC5hZG1pbi52MS5SZW1vdmVFbWFpbFByb3ZpZGVyUmVzcG9uc2UirwGSQYkBCg5FbWFpbCBQcm92aWRlchIVUmVtb3ZlIEVtYWlsIHByb3ZpZGVyGmBSZW1vdmUgdGhlIEVtYWlsIHByb3ZpZGVyLCBiZSBhd2FyZSB0aGF0IHRoZSB1c2VycyB3aWxsIG5vdCBnZXQgYW4gRS1NYWlsIGlmIG5vIHByb3ZpZGVyIGlzIHNldC6CtRgLCglpYW0ud3JpdGWC0+STAg0qCy9lbWFpbC97aWR9EvACChlUZXN0RW1haWxQcm92aWRlclNNVFBCeUlkEjIueml0YWRlbC5hZG1pbi52MS5UZXN0RW1haWxQcm92aWRlclNNVFBCeUlkUmVxdWVzdBozLnppdGFkZWwuYWRtaW4udjEuVGVzdEVtYWlsUHJvdmlkZXJTTVRQQnlJZFJlc3BvbnNlIukBkkG1AQoORW1haWwgUHJvdmlkZXISGFRlc3QgU01UUCBFbWFpbCBQcm92aWRlchqIAVRlc3QgYW4gU01UUCBFbWFpbCBwcm92aWRlciBpZGVudGlmaWVkIGJ5IGl0cyBJRC4gQWZ0ZXIgdGVzdGluZyB0aGUgcHJvdmlkZXIsIHRoZSB1c2VycyB3aWxsIHJlY2VpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRlc3QgcmVzdWx0cy6CtRgLCglpYW0ud3JpdGWC0+STAhs6ASoiFi9lbWFpbC9zbXRwL3tpZH0vX3Rlc3QSyQIKFVRlc3RFbWFpbFByb3ZpZGVyU01UUBIuLnppdGFkZWwuYWRtaW4udjEuVGVzdEVtYWlsUHJvdmlkZXJTTVRQUmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuVGVzdEVtYWlsUHJvdmlkZXJTTVRQUmVzcG9uc2UizgGSQZ8BCg5FbWFpbCBQcm92aWRlchIYVGVzdCBTTVRQIEVtYWlsIFByb3ZpZGVyGnNUZXN0IGFuIFNNVFAgRW1haWwgcHJvdmlkZXIuIEFmdGVyIHRlc3RpbmcgdGhlIHByb3ZpZGVyLCB0aGUgdXNlcnMgd2lsbCByZWNlaXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0ZXN0IHJlc3VsdHMugrUYCwoJaWFtLndyaXRlgtPkkwIWOgEqIhEvZW1haWwvc210cC9fdGVzdBLiAQoQTGlzdFNNU1Byb3ZpZGVycxIpLnppdGFkZWwuYWRtaW4udjEuTGlzdFNNU1Byb3ZpZGVyc1JlcXVlc3QaKi56aXRhZGVsLmFkbWluLnYxLkxpc3RTTVNQcm92aWRlcnNSZXNwb25zZSJ3kkFPCgxTTVMgUHJvdmlkZXISEkxpc3QgU01TIFByb3ZpZGVycxorUmV0dXJucyBhIGxpc3Qgb2YgY29uZmlndXJlZCBTTVMgcHJvdmlkZXJzLoK1GAoKCGlhbS5yZWFkgtPkkwIROgEqIgwvc21zL19zZWFyY2gSzwEKDkdldFNNU1Byb3ZpZGVyEicueml0YWRlbC5hZG1pbi52MS5HZXRTTVNQcm92aWRlclJlcXVlc3QaKC56aXRhZGVsLmFkbWluLnYxLkdldFNNU1Byb3ZpZGVyUmVzcG9uc2UiapJBSAoMU01TIFByb3ZpZGVyEhBHZXQgU01TIFByb3ZpZGVyGiZHZXQgYSBzcGVjaWZpYyBTTVMgcHJvdmlkZXIgYnkgaXRzIElELoK1GAoKCGlhbS5yZWFkgtPkkwILEgkvc21zL3tpZH0SuwIKFEFkZFNNU1Byb3ZpZGVyVHdpbGlvEi0ueml0YWRlbC5hZG1pbi52MS5BZGRTTVNQcm92aWRlclR3aWxpb1JlcXVlc3QaLi56aXRhZGVsLmFkbWluLnYxLkFkZFNNU1Byb3ZpZGVyVHdpbGlvUmVzcG9uc2UiwwGSQZoBCgxTTVMgUHJvdmlkZXISF0FkZCBUd2lsaW8gU01TIFByb3ZpZGVyGnFDb25maWd1cmUgYSBuZXcgU01TIHByb3ZpZGVyIG9mIHRoZSB0eXBlIFR3aWxpby4gQSBwcm92aWRlciBoYXMgdG8gYmUgYWN0aXZhdGVkIHRvIGJlIGFibGUgdG8gc2VuZCBub3RpZmljYXRpb25zLoK1GAsKCWlhbS53cml0ZYLT5JMCEDoBKiILL3Ntcy90d2lsaW8S3QIKF1VwZGF0ZVNNU1Byb3ZpZGVyVHdpbGlvEjAueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTTVNQcm92aWRlclR3aWxpb1JlcXVlc3QaMS56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZVNNU1Byb3ZpZGVyVHdpbGlvUmVzcG9uc2Ui3AGSQa4BCgxTTVMgUHJvdmlkZXISGlVwZGF0ZSBUd2lsaW8gU01TIFByb3ZpZGVyGoEBQ2hhbmdlIHRoZSBjb25maWd1cmF0aW9uIG9mIGFuIFNNUyBwcm92aWRlciBvZiB0aGUgdHlwZSBUd2lsaW8uICBBIHByb3ZpZGVyIGhhcyB0byBiZSBhY3RpdmF0ZWQgdG8gYmUgYWJsZSB0byBzZW5kIG5vdGlmaWNhdGlvbnMugrUYCwoJaWFtLndyaXRlgtPkkwIVOgEqGhAvc21zL3R3aWxpby97aWR9Eq0CChxVcGRhdGVTTVNQcm92aWRlclR3aWxpb1Rva2VuEjUueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTTVNQcm92aWRlclR3aWxpb1Rva2VuUmVxdWVzdBo2LnppdGFkZWwuYWRtaW4udjEuVXBkYXRlU01TUHJvdmlkZXJUd2lsaW9Ub2tlblJlc3BvbnNlIp0BkkFqCgxTTVMgUHJvdmlkZXISIFVwZGF0ZSBUd2lsaW8gU01TIFByb3ZpZGVyIFRva2VuGjhDaGFuZ2UgdGhlIHRva2VuIG9mIHRoZSBTTVMgcHJvdmlkZXIgb2YgdGhlIHR5cGUgVHdpbGlvLoK1GAsKCWlhbS53cml0ZYLT5JMCGzoBKhoWL3Ntcy90d2lsaW8ve2lkfS90b2tlbhKvAgoSQWRkU01TUHJvdmlkZXJIVFRQEisueml0YWRlbC5hZG1pbi52MS5BZGRTTVNQcm92aWRlckhUVFBSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5BZGRTTVNQcm92aWRlckhUVFBSZXNwb25zZSK9AZJBlgEKDFNNUyBQcm92aWRlchIVQWRkIEhUVFAgU01TIFByb3ZpZGVyGm9Db25maWd1cmUgYSBuZXcgU01TIHByb3ZpZGVyIG9mIHRoZSB0eXBlIEhUVFAuIEEgcHJvdmlkZXIgaGFzIHRvIGJlIGFjdGl2YXRlZCB0byBiZSBhYmxlIHRvIHNlbmQgbm90aWZpY2F0aW9ucy6CtRgLCglpYW0ud3JpdGWC0+STAg46ASoiCS9zbXMvaHR0cBLPAgoVVXBkYXRlU01TUHJvdmlkZXJIVFRQEi4ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTTVNQcm92aWRlckhUVFBSZXF1ZXN0Gi8ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTTVNQcm92aWRlckhUVFBSZXNwb25zZSLUAZJBqAEKDFNNUyBQcm92aWRlchIYVXBkYXRlIEhUVFAgU01TIFByb3ZpZGVyGn5DaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgYW4gU01TIHByb3ZpZGVyIG9mIHRoZSB0eXBlIEhUVFAuIEEgcHJvdmlkZXIgaGFzIHRvIGJlIGFjdGl2YXRlZCB0byBiZSBhYmxlIHRvIHNlbmQgbm90aWZpY2F0aW9ucy6CtRgLCglpYW0ud3JpdGWC0+STAhM6ASoaDi9zbXMvaHR0cC97aWR9ErgCChNBY3RpdmF0ZVNNU1Byb3ZpZGVyEiwueml0YWRlbC5hZG1pbi52MS5BY3RpdmF0ZVNNU1Byb3ZpZGVyUmVxdWVzdBotLnppdGFkZWwuYWRtaW4udjEuQWN0aXZhdGVTTVNQcm92aWRlclJlc3BvbnNlIsMBkkGSAQoMU01TIFByb3ZpZGVyEhVBY3RpdmF0ZSBTTVMgUHJvdmlkZXIaa0FjdGl2YXRlIGFuIFNNUyBwcm92aWRlci4gQWZ0ZXIgYWN0aXZhdGluZyBhIHByb3ZpZGVyLCB0aGUgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIHJlY2VpdmUgU01TIG5vdGlmaWNhdGlvbnMugrUYCwoJaWFtLndyaXRlgtPkkwIYOgEqIhMvc21zL3tpZH0vX2FjdGl2YXRlEqwDChVEZWFjdGl2YXRlU01TUHJvdmlkZXISLi56aXRhZGVsLmFkbWluLnYxLkRlYWN0aXZhdGVTTVNQcm92aWRlclJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLkRlYWN0aXZhdGVTTVNQcm92aWRlclJlc3BvbnNlIrECkkH+AQoMU01TIFByb3ZpZGVyEhdEZWFjdGl2YXRlIFNNUyBQcm92aWRlchrUAURlYWN0aXZhdGUgYW4gU01TIHByb3ZpZGVyLiBBZnRlciBkZWFjdGl2YXRpbmcgdGhlIHByb3ZpZGVyLCB0aGUgdXNlcnMgd2lsbCBub3QgYmUgYWJsZSB0byByZWNlaXZlIFNNUyBub3RpZmljYXRpb25zIGZyb20gdGhhdCBwcm92aWRlciBhbnltb3JlLiBJZiBpdCB3YXMgdGhlIGxhc3QgYWN0aXZhdGVkIHRoZXkgd2lsbCBub3QgZ2V0IG5vdGlmaWNhdGlvbnMgYXQgYWxsgrUYCwoJaWFtLndyaXRlgtPkkwIaOgEqIhUvc21zL3tpZH0vX2RlYWN0aXZhdGUStQIKEVJlbW92ZVNNU1Byb3ZpZGVyEioueml0YWRlbC5hZG1pbi52MS5SZW1vdmVTTVNQcm92aWRlclJlcXVlc3QaKy56aXRhZGVsLmFkbWluLnYxLlJlbW92ZVNNU1Byb3ZpZGVyUmVzcG9uc2UixgGSQaIBCgxTTVMgUHJvdmlkZXISE1JlbW92ZSBTTVMgUHJvdmlkZXIafURlbGV0ZSBhbiBTTVMgcHJvdmlkZXIuIElmIHRoZSBwcm92aWRlciB3YXMgc3RpbGwgYWN0aXZlIHRoZSB1c2VycyB3aWxsIG5vdCByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGF0IHByb3ZpZGVyIGFueW1vcmUugrUYCwoJaWFtLndyaXRlgtPkkwILKgkvc21zL3tpZH0S9gEKD0dldE9JRENTZXR0aW5ncxIoLnppdGFkZWwuYWRtaW4udjEuR2V0T0lEQ1NldHRpbmdzUmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuR2V0T0lEQ1NldHRpbmdzUmVzcG9uc2UijQGSQWYKCFNldHRpbmdzEhFHZXQgT0lEQyBTZXR0aW5ncxpHVGhlIE9JREMgU2V0dGluZ3MgZGVmaW5lIHRoZSBsaWZldGltZXMgb2YgdGhlIGRpZmZlcmVudCB0b2tlbnMgaW4gT0lEQy6CtRgKCghpYW0ucmVhZILT5JMCEBIOL3NldHRpbmdzL29pZGMS1gIKD0FkZE9JRENTZXR0aW5ncxIoLnppdGFkZWwuYWRtaW4udjEuQWRkT0lEQ1NldHRpbmdzUmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuQWRkT0lEQ1NldHRpbmdzUmVzcG9uc2Ui7QGSQcEBCghTZXR0aW5ncxIRQWRkIE9JREMgU2V0dGluZ3MaoQFDcmVhdGUgbmV3IE9JREMgc2V0dGluZ3MuIFRoZSBPSURDIFNldHRpbmdzIGRlZmluZSB0aGUgbGlmZXRpbWVzIG9mIHRoZSBkaWZmZXJlbnQgdG9rZW5zIGluIE9JREMuIFRoZXNlIHNldHRpbmdzIGFyZSB1c2VkIGZvciBhbGwgb3JnYW5pemF0aW9ucyBhbmQgYXBwbGljYXRpb25zLoK1GAsKCWlhbS53cml0ZYLT5JMCEzoBKiIOL3NldHRpbmdzL29pZGMS5AIKElVwZGF0ZU9JRENTZXR0aW5ncxIrLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlT0lEQ1NldHRpbmdzUmVxdWVzdBosLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlT0lEQ1NldHRpbmdzUmVzcG9uc2Ui8gGSQcYBCghTZXR0aW5ncxIRQWRkIE9JREMgU2V0dGluZ3MapgFVcGRhdGUgZXhpc3RpbmcgT0lEQyBzZXR0aW5ncy4gVGhlIE9JREMgU2V0dGluZ3MgZGVmaW5lIHRoZSBsaWZldGltZXMgb2YgdGhlIGRpZmZlcmVudCB0b2tlbnMgaW4gT0lEQy4gVGhlc2Ugc2V0dGluZ3MgYXJlIHVzZWQgZm9yIGFsbCBvcmdhbml6YXRpb25zIGFuZCBhcHBsaWNhdGlvbnMugrUYCwoJaWFtLndyaXRlgtPkkwITOgEqGg4vc2V0dGluZ3Mvb2lkYxK0AwohR2V0RmlsZVN5c3RlbU5vdGlmaWNhdGlvblByb3ZpZGVyEjoueml0YWRlbC5hZG1pbi52MS5HZXRGaWxlU3lzdGVtTm90aWZpY2F0aW9uUHJvdmlkZXJSZXF1ZXN0Gjsueml0YWRlbC5hZG1pbi52MS5HZXRGaWxlU3lzdGVtTm90aWZpY2F0aW9uUHJvdmlkZXJSZXNwb25zZSKVApJB4AEKFk5vdGlmaWNhdGlvbiBQcm92aWRlcnMSJEdldCBOb3RpZmljYXRpb24gUHJvdmlkZXIgRmlsZXN5c3RlbRqfAVJldHVybnMgYSBmaWxlc3lzdGVtIG5vdGlmaWNhdGlvbiBwcm92aWRlciBpZiBjb25maWd1cmVkLiBUaGlzIHByb3ZpZGVyIGlzIG9ubHkgdXNlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gVGhlIG5vdGlmaWNhdGlvbnMgd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBmaWxlc3lzdGVtLoK1GAoKCGlhbS5yZWFkgtPkkwIdEhsvbm90aWZpY2F0aW9uL3Byb3ZpZGVyL2ZpbGUSigMKGkdldExvZ05vdGlmaWNhdGlvblByb3ZpZGVyEjMueml0YWRlbC5hZG1pbi52MS5HZXRMb2dOb3RpZmljYXRpb25Qcm92aWRlclJlcXVlc3QaNC56aXRhZGVsLmFkbWluLnYxLkdldExvZ05vdGlmaWNhdGlvblByb3ZpZGVyUmVzcG9uc2UigAKSQcwBChZOb3RpZmljYXRpb24gUHJvdmlkZXJzEh1HZXQgTm90aWZpY2F0aW9uIFByb3ZpZGVyIExvZxqSAVJldHVybnMgYSBsb2cgbm90aWZpY2F0aW9uIHByb3ZpZGVyIGlmIGNvbmZpZ3VyZWQuIFRoaXMgcHJvdmlkZXIgaXMgb25seSB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBUaGUgbm90aWZpY2F0aW9ucyB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIGxvZ3MugrUYCgoIaWFtLnJlYWSC0+STAhwSGi9ub3RpZmljYXRpb24vcHJvdmlkZXIvbG9nEvoBChFHZXRTZWN1cml0eVBvbGljeRIqLnppdGFkZWwuYWRtaW4udjEuR2V0U2VjdXJpdHlQb2xpY3lSZXF1ZXN0Gisueml0YWRlbC5hZG1pbi52MS5HZXRTZWN1cml0eVBvbGljeVJlc3BvbnNlIosBkkFZCghTZXR0aW5ncxIVR2V0IFNlY3VyaXR5IFNldHRpbmdzGjZSZXR1cm5zIHRoZSBzZWN1cml0eSBzZXR0aW5ncyBvZiB0aGUgWml0YWRlbCBpbnN0YW5jZS6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAhQSEi9wb2xpY2llcy9zZWN1cml0eRL6AQoRU2V0U2VjdXJpdHlQb2xpY3kSKi56aXRhZGVsLmFkbWluLnYxLlNldFNlY3VyaXR5UG9saWN5UmVxdWVzdBorLnppdGFkZWwuYWRtaW4udjEuU2V0U2VjdXJpdHlQb2xpY3lSZXNwb25zZSKLAZJBVQoIU2V0dGluZ3MSFVNldCBTZWN1cml0eSBTZXR0aW5ncxoyU2V0IHRoZSBzZWN1cml0eSBzZXR0aW5ncyBvZiB0aGUgWml0YWRlbCBpbnN0YW5jZS6CtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIXOgEqGhIvcG9saWNpZXMvc2VjdXJpdHkSqwEKCkdldE9yZ0J5SUQSIy56aXRhZGVsLmFkbWluLnYxLkdldE9yZ0J5SURSZXF1ZXN0GiQueml0YWRlbC5hZG1pbi52MS5HZXRPcmdCeUlEUmVzcG9uc2UiUpJBLwoNT3JnYW5pemF0aW9uc0ocCgMyMDASFQoTcmVxdWVzdGVkIG9yZyBmb3VuZFgBgrUYCgoIaWFtLnJlYWSC0+STAgwSCi9vcmdzL3tpZH0S1gEKC0lzT3JnVW5pcXVlEiQueml0YWRlbC5hZG1pbi52MS5Jc09yZ1VuaXF1ZVJlcXVlc3QaJS56aXRhZGVsLmFkbWluLnYxLklzT3JnVW5pcXVlUmVzcG9uc2UiepJBUQoNT3JnYW5pemF0aW9uc0oYCgMyMDASEQoPWklUQURFTCBzdGFydGVkSiQKB2RlZmF1bHQSGQoXWklUQURFTCBOT1Qgc3RhcnRlZCB5ZXRYAYK1GAoKCGlhbS5yZWFkgtPkkwISEhAvb3Jncy9faXNfdW5pcXVlEvICCg1TZXREZWZhdWx0T3JnEiYueml0YWRlbC5hZG1pbi52MS5TZXREZWZhdWx0T3JnUmVxdWVzdBonLnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdE9yZ1Jlc3BvbnNlIo8CkkHeAQoNT3JnYW5pemF0aW9ucwoIU2V0dGluZ3MSGFNldCBEZWZhdWx0IE9yZ2FuaXphdGlvbhqoAVNldHMgdGhlIGRlZmF1bHQgb3JnYW5pemF0aW9uIG9mIHRoZSBaaXRhZGVsIGluc3RhbmNlLiBJZiBubyBzcGVjaWZpYyBvcmdhbml6YXRpb24gaXMgZ2l2ZW4gb24gdGhlIHJlZ2lzdGVyIGZvcm0sIGEgdXNlciB3aWxsIGJlIHJlZ2lzdGVyZWQgdG8gdGhlIGRlZmF1bHQgb3JnYW5pemF0aW9uLoK1GAsKCWlhbS53cml0ZYLT5JMCGBoWL29yZ3MvZGVmYXVsdC97b3JnX2lkfRKjAQoNR2V0RGVmYXVsdE9yZxImLnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdE9yZ1JlcXVlc3QaJy56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRPcmdSZXNwb25zZSJBkkEbCg1Pcmdhbml6YXRpb25zCghTZXR0aW5nc1gBgrUYCgoIaWFtLnJlYWSC0+STAg8SDS9vcmdzL2RlZmF1bHQS+wEKCExpc3RPcmdzEiEueml0YWRlbC5hZG1pbi52MS5MaXN0T3Jnc1JlcXVlc3QaIi56aXRhZGVsLmFkbWluLnYxLkxpc3RPcmdzUmVzcG9uc2UipwGSQX4KDU9yZ2FuaXphdGlvbnNKMQoDMjAwEioKKGxpc3Qgb2Ygb3JnYW5pemF0aW9ucyBtYXRjaGluZyB0aGUgcXVlcnlKOAoDNDAwEjEKEmludmFsaWQgbGlzdCBxdWVyeRIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgKCghpYW0ucmVhZILT5JMCEjoBKiINL29yZ3MvX3NlYXJjaBKMAgoIU2V0VXBPcmcSIS56aXRhZGVsLmFkbWluLnYxLlNldFVwT3JnUmVxdWVzdBoiLnppdGFkZWwuYWRtaW4udjEuU2V0VXBPcmdSZXNwb25zZSK4AZJBjgEKDU9yZ2FuaXphdGlvbnNKQAoDMjAwEjkKN29yZywgdXNlciBhbmQgdXNlciBtZW1iZXJzaGlwIHdlcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHlKOQoDNDAwEjIKE2ludmFsaWQgb3JnIG9yIHVzZXISGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYCwoJaWFtLndyaXRlgtPkkwIROgEqIgwvb3Jncy9fc2V0dXAS5gEKCVJlbW92ZU9yZxIiLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlT3JnUmVxdWVzdBojLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlT3JnUmVzcG9uc2UijwGSQWcKDU9yZ2FuaXphdGlvbnNKIQoDMjAwEhoKGG9yZyByZW1vdmVkIHN1Y2Nlc3NmdWxseUoxCgM0MDASKgoLaW52YWxpZCBvcmcSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYCwoJaWFtLndyaXRlgtPkkwIQKg4vb3Jncy97b3JnX2lkfRLvAgoKR2V0SURQQnlJRBIjLnppdGFkZWwuYWRtaW4udjEuR2V0SURQQnlJRFJlcXVlc3QaJC56aXRhZGVsLmFkbWluLnYxLkdldElEUEJ5SURSZXNwb25zZSKVApJB7QEKEklkZW50aXR5IFByb3ZpZGVycxItRGVwcmVjYXRlZDogR2V0IElkZW50aXR5IFByb3ZpZGVyIChJRFApIGJ5IElEGlpSZXR1cm5zIGFuIGlkZW50aXR5IHByb3ZpZGVyIChzb2NpYWwvZW50ZXJwcmlzZSBsb2dpbikgYnkgaXRzIElEIGUuZyBHb29nbGUsIEF6dXJlQUQsIGV0Yy5KEgoDMjAwEgsKCUlEUCBmb3VuZEo2CgM0MDASLwoQaW52YWxpZCBhcmd1bWVudBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgOCgxpYW0uaWRwLnJlYWSC0+STAgwSCi9pZHBzL3tpZH0SigMKCExpc3RJRFBzEiEueml0YWRlbC5hZG1pbi52MS5MaXN0SURQc1JlcXVlc3QaIi56aXRhZGVsLmFkbWluLnYxLkxpc3RJRFBzUmVzcG9uc2UitgKSQYgCChJJZGVudGl0eSBQcm92aWRlcnMSK0RlcHJlY2F0ZWQ6IFNlYXJjaCBJZGVudGl0eSBQcm92aWRlcnMgKElEUCkaeVJldHVybnMgYSBsaXN0IG9mIGlkZW50aXR5IHByb3ZpZGVycyAoc29jaWFsL2VudGVycHJpc2UgbG9naW4pIGNvbmZpZ3VyZWQgb24gYW4gaW5zdGFuY2UgbGV2ZWwuIGUuZyBHb29nbGUsIEF6dXJlQUQsIGV0Yy5KEwoDMjAwEgwKCmlkcHMgZm91bmRKMwoDNDAwEiwKDWludmFsaWQgcXVlcnkSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYDgoMaWFtLmlkcC5yZWFkgtPkkwISOgEqIg0vaWRwcy9fc2VhcmNoEqsDCgpBZGRPSURDSURQEiMueml0YWRlbC5hZG1pbi52MS5BZGRPSURDSURQUmVxdWVzdBokLnppdGFkZWwuYWRtaW4udjEuQWRkT0lEQ0lEUFJlc3BvbnNlItECkkGlAgoSSWRlbnRpdHkgUHJvdmlkZXJzEixEZXByZWNhdGVkOiBBZGQgT0lEQyBJZGVudGl0eSBQcm92aWRlciAoSURQKRqQAUNyZWF0ZSBhIG5ldyBpZGVudGl0eSBwcm92aWRlciBjb25maWd1cmF0aW9uIHRvIGVuYWJsZSB5b3VyIHVzZXJzIHRvIGxvZyBpbiB3aXRoIHNvY2lhbC9lbnRlcnByaXNlIGxvZ2luLiBUaGUgcHJvdmlkZXIgaGFzIHRvIGJlIE9JREMgY29tcGxpYW50LkoUCgMyMDASDQoLaWRwIGNyZWF0ZWRKNgoDNDAwEi8KEGludmFsaWQgYXJndW1lbnQSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCDzoBKiIKL2lkcHMvb2lkYxLEBAoJQWRkSldUSURQEiIueml0YWRlbC5hZG1pbi52MS5BZGRKV1RJRFBSZXF1ZXN0GiMueml0YWRlbC5hZG1pbi52MS5BZGRKV1RJRFBSZXNwb25zZSLtA5JBwgMKEklkZW50aXR5IFByb3ZpZGVycxIrRGVwcmVjYXRlZDogQWRkIEpXVCBJZGVudGl0eSBQcm92aWRlciAoSURQKRquAkNyZWF0ZSBhIG5ldyBpZGVudGl0eSBwcm92aWRlciBjb25maWd1cmF0aW9uIHRvIGVuYWJsZSB5b3VyIHVzZXJzIHRvIGxvZyBpbiB3aXRoIHNvY2lhbC9lbnRlcnByaXNlIGxvZ2luLiBKU09OIFdlYiBUb2tlbiBJZGVudGl0eSBQcm92aWRlciAoSldUIElEUCkgZ2l2ZXMgeW91IHRoZSBwb3NzaWJpbGl0eSB0byB1c2UgYW4gKGV4aXN0aW5nKSBKV1QgYXMgYSBmZWRlcmF0ZWQgaWRlbnRpdHkuIFlvdSBoYXZlIHRvIHByb3ZpZGUgYW4gZW5kcG9pbnQgd2hlcmUgWml0YWRlbCBjYW4gZ2V0IHRoZSBleGlzdGluZyBKV1QgdG9rZW4uShQKAzIwMBINCgtpZHAgY3JlYXRlZEo2CgM0MDASLwoQaW52YWxpZCBhcmd1bWVudBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwIOOgEqIgkvaWRwcy9qd3QSiwMKCVVwZGF0ZUlEUBIiLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlSURQUmVxdWVzdBojLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlSURQUmVzcG9uc2UitAKSQYQCChJJZGVudGl0eSBQcm92aWRlcnMSKkRlcHJlY2F0ZWQ6IFVwZGF0ZSBJZGVudGl0eSBQcm92aWRlciAoSURQKRpyVXBkYXRlIGFuIGV4aXN0aW5nIElEUC4gQWxsIGZpZWxkcyBhcmUgdXBkYXRlZC4gSWYgeW91IGRvIG5vdCBzZW5kIGEgdmFsdWUgaW4gYSBmaWVsZCwgaXQgd2lsbCBiZSBlbXB0eSBhZnRlcndhcmQuShQKAzIwMBINCgtpZHAgdXBkYXRlZEo2CgM0MDASLwoQaW52YWxpZCBhcmd1bWVudBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwITOgEqGg4vaWRwcy97aWRwX2lkfRK5BAoNRGVhY3RpdmF0ZUlEUBImLnppdGFkZWwuYWRtaW4udjEuRGVhY3RpdmF0ZUlEUFJlcXVlc3QaJy56aXRhZGVsLmFkbWluLnYxLkRlYWN0aXZhdGVJRFBSZXNwb25zZSLWA5JBnQMKEklkZW50aXR5IFByb3ZpZGVycxIuRGVwcmVjYXRlZDogRGVhY3RpdmF0ZSBJZGVudGl0eSBQcm92aWRlciAoSURQKRr6AVNldHMgdGhlIHN0YXRlIG9mIHRoZSBwcm92aWRlciB0byBpbmFjdGl2ZS4gSXQgY2FuIG9ubHkgYmUgY2FsbGVkIGZvciB0aGUgcHJvdmlkZXIgd2l0aCB0aGUgc3RhdGUgYWN0aXZlLiBVc2VycyB3aWxsIG5vdCBiZSBhYmxlIHRvIGxvZyBpbiB3aXRoIHRoZSBnaXZlbiBwcm92aWRlciBhZnRlcndhcmQuIEl0IG1pZ2h0IGNhdXNlIHRyb3VibGVzIGlmIGl0IGlzIHRoZSBvbmx5IGF1dGhlbnRpY2F0aW9uIG1ldGhvZCBvZiB0aGUgdXNlci5KGAoDMjAwEhEKD2lkcCBkZWFjdGl2YXRlZEo+CgM0MDASNwoYVW5hYmxlIHRvIGRlYWN0aXZhdGUgSURQEhsKGRoXIy9kZWZpbml0aW9ucy9ycGNTdGF0dXNYAYK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhwiGi9pZHBzL3tpZHBfaWR9L19kZWFjdGl2YXRlEuUDCg1SZWFjdGl2YXRlSURQEiYueml0YWRlbC5hZG1pbi52MS5SZWFjdGl2YXRlSURQUmVxdWVzdBonLnppdGFkZWwuYWRtaW4udjEuUmVhY3RpdmF0ZUlEUFJlc3BvbnNlIoIDkkHJAgoSSWRlbnRpdHkgUHJvdmlkZXJzEi5EZXByZWNhdGVkOiBSZWFjdGl2YXRlIElkZW50aXR5IFByb3ZpZGVyIChJRFApGqYBU2V0cyB0aGUgc3RhdGUgb2YgdGhlIHByb3ZpZGVyIHRvIGFjdGl2ZS4gSXQgY2FuIG9ubHkgYmUgY2FsbGVkIGZvciBwcm92aWRlcnMgd2l0aCB0aGUgc3RhdGUgaW5hY3RpdmUuIFVzZXJzIHdpbGwgbm90IGJlIGFibGUgdG8gbG9nIGluIGFnYWluIHdpdGggdGhlIGdpdmVuIHByb3ZpZGVyLkoYCgMyMDASEQoPaWRwIHJlYWN0aXZhdGVkSj4KAzQwMBI3Chh1bmFibGUgdG8gcmVhY3RpdmF0ZSBJRFASGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCHCIaL2lkcHMve2lkcF9pZH0vX3JlYWN0aXZhdGUShwQKCVJlbW92ZUlEUBIiLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlSURQUmVxdWVzdBojLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlSURQUmVzcG9uc2UisAOSQYMDChJJZGVudGl0eSBQcm92aWRlcnMSKkRlcHJlY2F0ZWQ6IFJlbW92ZSBJZGVudGl0eSBQcm92aWRlciAoSURQKRrsAVJlbW92ZXMgdGhlIGlkZW50aXR5IHByb3ZpZGVyIHBlcm1hbmVudGx5LiBBbGwgbGlua3MgdG8gdGhlIGdpdmVuIElEUCBvbiB1c2VycyB3aWxsIGJlIGRlbGV0ZWQgYXMgd2VsbC4gVGhleSB3aWxsIG5vdCBiZSBhYmxlIHRvIGxvZyBpbiB3aXRoIHRoZSBwcm92aWRlciBhZnRlcndhcmQuIElmIGl0IGlzIHRoZWlyIG9ubHkgYXV0aGVudGljYXRpb24gcG9zc2liaWxpdHkgaXQgbWlnaHQgY2F1c2UgcHJvYmxlbXMuShQKAzIwMBINCgtpZHAgcmVtb3ZlZEo6CgM0MDASMwoUdW5hYmxlIHRvIHJlbW92ZSBJRFASGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCECoOL2lkcHMve2lkcF9pZH0SmwQKE1VwZGF0ZUlEUE9JRENDb25maWcSLC56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUlEUE9JRENDb25maWdSZXF1ZXN0Gi0ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVJRFBPSURDQ29uZmlnUmVzcG9uc2UipgOSQeoCChJJZGVudGl0eSBQcm92aWRlcnMSL0RlcHJlY2F0ZWQ6IFVwZGF0ZSBPSURDIElkZW50aXR5IFByb3ZpZGVyIChJRFApGo8BVXBkYXRlIHRoZSBPSURDLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgYW4gaWRlbnRpdHkgcHJvdmlkZXIuIEFsbCBmaWVsZHMgd2lsbCBiZSB1cGRhdGVkLiBJZiBhIGZpZWxkIGhhcyBubyB2YWx1ZSBpdCB3aWxsIGJlIGVtcHR5IGFmdGVyd2FyZC5KHAoDMjAwEhUKE09JREMgY29uZmlnIHVwZGF0ZWRKNgoDNDAwEi8KEGludmFsaWQgYXJndW1lbnQSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c0o5CgM0MDkSMgoTcHJlY29uZGl0aW9uIGZhaWxlZBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwIfOgEqGhovaWRwcy97aWRwX2lkfS9vaWRjX2NvbmZpZxKUBAoSVXBkYXRlSURQSldUQ29uZmlnEisueml0YWRlbC5hZG1pbi52MS5VcGRhdGVJRFBKV1RDb25maWdSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5VcGRhdGVJRFBKV1RDb25maWdSZXNwb25zZSKiA5JB5wIKEklkZW50aXR5IFByb3ZpZGVycxIuRGVwcmVjYXRlZDogVXBkYXRlIEpXVCBJZGVudGl0eSBQcm92aWRlciAoSURQKRqOAVVwZGF0ZSB0aGUgSldULXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgYW4gaWRlbnRpdHkgcHJvdmlkZXIuIEFsbCBmaWVsZHMgd2lsbCBiZSB1cGRhdGVkLiBJZiBhIGZpZWxkIGhhcyBubyB2YWx1ZSBpdCB3aWxsIGJlIGVtcHR5IGFmdGVyd2FyZC5KGwoDMjAwEhQKEkpXVCBjb25maWcgdXBkYXRlZEo2CgM0MDASLwoQaW52YWxpZCBhcmd1bWVudBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzSjkKAzQwORIyChNwcmVjb25kaXRpb24gZmFpbGVkEhsKGRoXIy9kZWZpbml0aW9ucy9ycGNTdGF0dXNYAYK1GA8KDWlhbS5pZHAud3JpdGWC0+STAh46ASoaGS9pZHBzL3tpZHBfaWR9L2p3dF9jb25maWcSwwIKDUxpc3RQcm92aWRlcnMSJi56aXRhZGVsLmFkbWluLnYxLkxpc3RQcm92aWRlcnNSZXF1ZXN0Gicueml0YWRlbC5hZG1pbi52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2Ui4AGSQagBChJJZGVudGl0eSBQcm92aWRlcnMSF0xpc3QgSWRlbnRpdHkgUHJvdmlkZXJzGnlSZXR1cm5zIGEgbGlzdCBvZiBpZGVudGl0eSBwcm92aWRlcnMgKHNvY2lhbC9lbnRlcnByaXNlIGxvZ2luKSBjb25maWd1cmVkIG9uIGFuIGluc3RhbmNlIGxldmVsLiBlLmcgR29vZ2xlLCBBenVyZUFELCBldGMugrUYDgoMaWFtLmlkcC5yZWFkgtPkkwIcOgEqIhcvaWRwcy90ZW1wbGF0ZXMvX3NlYXJjaBLKAQoPR2V0UHJvdmlkZXJCeUlEEigueml0YWRlbC5hZG1pbi52MS5HZXRQcm92aWRlckJ5SURSZXF1ZXN0Gikueml0YWRlbC5hZG1pbi52MS5HZXRQcm92aWRlckJ5SURSZXNwb25zZSJikkExChJJZGVudGl0eSBQcm92aWRlcnMSG0dldCBJZGVudGl0eSBQcm92aWRlciBCeSBJRIK1GA4KDGlhbS5pZHAucmVhZILT5JMCFhIUL2lkcHMvdGVtcGxhdGVzL3tpZH0S5QEKF0FkZEdlbmVyaWNPQXV0aFByb3ZpZGVyEjAueml0YWRlbC5hZG1pbi52MS5BZGRHZW5lcmljT0F1dGhQcm92aWRlclJlcXVlc3QaMS56aXRhZGVsLmFkbWluLnYxLkFkZEdlbmVyaWNPQXV0aFByb3ZpZGVyUmVzcG9uc2UiZZJBOQoSSWRlbnRpdHkgUHJvdmlkZXJzEiNBZGQgR2VuZXJpYyBPQXV0aCBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhA6ASoiCy9pZHBzL29hdXRoEvYBChpVcGRhdGVHZW5lcmljT0F1dGhQcm92aWRlchIzLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlR2VuZXJpY09BdXRoUHJvdmlkZXJSZXF1ZXN0GjQueml0YWRlbC5hZG1pbi52MS5VcGRhdGVHZW5lcmljT0F1dGhQcm92aWRlclJlc3BvbnNlIm2SQTwKEklkZW50aXR5IFByb3ZpZGVycxImVXBkYXRlIEdlbmVyaWMgT0F1dGggSWRlbnRpdHkgUHJvdmlkZXKCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwIVOgEqGhAvaWRwcy9vYXV0aC97aWR9EugBChZBZGRHZW5lcmljT0lEQ1Byb3ZpZGVyEi8ueml0YWRlbC5hZG1pbi52MS5BZGRHZW5lcmljT0lEQ1Byb3ZpZGVyUmVxdWVzdBowLnppdGFkZWwuYWRtaW4udjEuQWRkR2VuZXJpY09JRENQcm92aWRlclJlc3BvbnNlImuSQTgKEklkZW50aXR5IFByb3ZpZGVycxIiQWRkIEdlbmVyaWMgT0lEQyBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhc6ASoiEi9pZHBzL2dlbmVyaWNfb2lkYxL5AQoZVXBkYXRlR2VuZXJpY09JRENQcm92aWRlchIyLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlR2VuZXJpY09JRENQcm92aWRlclJlcXVlc3QaMy56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUdlbmVyaWNPSURDUHJvdmlkZXJSZXNwb25zZSJzkkE7ChJJZGVudGl0eSBQcm92aWRlcnMSJVVwZGF0ZSBHZW5lcmljIE9JREMgSWRlbnRpdHkgUHJvdmlkZXKCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwIcOgEqGhcvaWRwcy9nZW5lcmljX29pZGMve2lkfRKGAgoaTWlncmF0ZUdlbmVyaWNPSURDUHJvdmlkZXISMy56aXRhZGVsLmFkbWluLnYxLk1pZ3JhdGVHZW5lcmljT0lEQ1Byb3ZpZGVyUmVxdWVzdBo0LnppdGFkZWwuYWRtaW4udjEuTWlncmF0ZUdlbmVyaWNPSURDUHJvdmlkZXJSZXNwb25zZSJ9kkE8ChJJZGVudGl0eSBQcm92aWRlcnMSJk1pZ3JhdGUgR2VuZXJpYyBPSURDIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCJToBKiIgL2lkcHMvZ2VuZXJpY19vaWRjL3tpZH0vX21pZ3JhdGUSxgEKDkFkZEpXVFByb3ZpZGVyEicueml0YWRlbC5hZG1pbi52MS5BZGRKV1RQcm92aWRlclJlcXVlc3QaKC56aXRhZGVsLmFkbWluLnYxLkFkZEpXVFByb3ZpZGVyUmVzcG9uc2UiYZJBLwoSSWRlbnRpdHkgUHJvdmlkZXJzEhlBZGQgSldUIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFjoBKiIRL2lkcHMvZ2VuZXJpY19qd3QS1wEKEVVwZGF0ZUpXVFByb3ZpZGVyEioueml0YWRlbC5hZG1pbi52MS5VcGRhdGVKV1RQcm92aWRlclJlcXVlc3QaKy56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUpXVFByb3ZpZGVyUmVzcG9uc2UiaZJBMgoSSWRlbnRpdHkgUHJvdmlkZXJzEhxVcGRhdGUgSldUIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCGzoBKhoWL2lkcHMvZ2VuZXJpY19qd3Qve2lkfRLQAQoSQWRkQXp1cmVBRFByb3ZpZGVyEisueml0YWRlbC5hZG1pbi52MS5BZGRBenVyZUFEUHJvdmlkZXJSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5BZGRBenVyZUFEUHJvdmlkZXJSZXNwb25zZSJfkkEzChJJZGVudGl0eSBQcm92aWRlcnMSHUFkZCBBenVyZUFEIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCEDoBKiILL2lkcHMvYXp1cmUS4QEKFVVwZGF0ZUF6dXJlQURQcm92aWRlchIuLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlQXp1cmVBRFByb3ZpZGVyUmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlQXp1cmVBRFByb3ZpZGVyUmVzcG9uc2UiZ5JBNgoSSWRlbnRpdHkgUHJvdmlkZXJzEiBVcGRhdGUgQXp1cmVBRCBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhU6ASoaEC9pZHBzL2F6dXJlL3tpZH0SzQEKEUFkZEdpdEh1YlByb3ZpZGVyEioueml0YWRlbC5hZG1pbi52MS5BZGRHaXRIdWJQcm92aWRlclJlcXVlc3QaKy56aXRhZGVsLmFkbWluLnYxLkFkZEdpdEh1YlByb3ZpZGVyUmVzcG9uc2UiX5JBMgoSSWRlbnRpdHkgUHJvdmlkZXJzEhxBZGQgR2l0SHViIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCEToBKiIML2lkcHMvZ2l0aHViEt4BChRVcGRhdGVHaXRIdWJQcm92aWRlchItLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlR2l0SHViUHJvdmlkZXJSZXF1ZXN0Gi4ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVHaXRIdWJQcm92aWRlclJlc3BvbnNlImeSQTUKEklkZW50aXR5IFByb3ZpZGVycxIfVXBkYXRlIEdpdEh1YiBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhY6ASoaES9pZHBzL2dpdGh1Yi97aWR9EosCCiFBZGRHaXRIdWJFbnRlcnByaXNlU2VydmVyUHJvdmlkZXISOi56aXRhZGVsLmFkbWluLnYxLkFkZEdpdEh1YkVudGVycHJpc2VTZXJ2ZXJQcm92aWRlclJlcXVlc3QaOy56aXRhZGVsLmFkbWluLnYxLkFkZEdpdEh1YkVudGVycHJpc2VTZXJ2ZXJQcm92aWRlclJlc3BvbnNlIm2SQT0KEklkZW50aXR5IFByb3ZpZGVycxInQWRkIEdpdEh1YiBFbnRlcnByaXNlIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFDoBKiIPL2lkcHMvZ2l0aHViX2VzEpwCCiRVcGRhdGVHaXRIdWJFbnRlcnByaXNlU2VydmVyUHJvdmlkZXISPS56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUdpdEh1YkVudGVycHJpc2VTZXJ2ZXJQcm92aWRlclJlcXVlc3QaPi56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUdpdEh1YkVudGVycHJpc2VTZXJ2ZXJQcm92aWRlclJlc3BvbnNlInWSQUAKEklkZW50aXR5IFByb3ZpZGVycxIqVXBkYXRlIEdpdEh1YiBFbnRlcnByaXNlIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCGToBKhoUL2lkcHMvZ2l0aHViX2VzL3tpZH0SzQEKEUFkZEdpdExhYlByb3ZpZGVyEioueml0YWRlbC5hZG1pbi52MS5BZGRHaXRMYWJQcm92aWRlclJlcXVlc3QaKy56aXRhZGVsLmFkbWluLnYxLkFkZEdpdExhYlByb3ZpZGVyUmVzcG9uc2UiX5JBMgoSSWRlbnRpdHkgUHJvdmlkZXJzEhxBZGQgR2l0TGFiIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCEToBKiIML2lkcHMvZ2l0bGFiEt4BChRVcGRhdGVHaXRMYWJQcm92aWRlchItLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlR2l0TGFiUHJvdmlkZXJSZXF1ZXN0Gi4ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVHaXRMYWJQcm92aWRlclJlc3BvbnNlImeSQTUKEklkZW50aXR5IFByb3ZpZGVycxIfVXBkYXRlIEdpdExhYiBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhY6ASoiES9pZHBzL2dpdGxhYi97aWR9EoACChtBZGRHaXRMYWJTZWxmSG9zdGVkUHJvdmlkZXISNC56aXRhZGVsLmFkbWluLnYxLkFkZEdpdExhYlNlbGZIb3N0ZWRQcm92aWRlclJlcXVlc3QaNS56aXRhZGVsLmFkbWluLnYxLkFkZEdpdExhYlNlbGZIb3N0ZWRQcm92aWRlclJlc3BvbnNlInSSQTsKEklkZW50aXR5IFByb3ZpZGVycxIlQWRkIEdpdExhYiBTZWxmaG9zdCBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAh06ASoiGC9pZHBzL2dpdGxhYl9zZWxmX2hvc3RlZBKRAgoeVXBkYXRlR2l0TGFiU2VsZkhvc3RlZFByb3ZpZGVyEjcueml0YWRlbC5hZG1pbi52MS5VcGRhdGVHaXRMYWJTZWxmSG9zdGVkUHJvdmlkZXJSZXF1ZXN0Gjgueml0YWRlbC5hZG1pbi52MS5VcGRhdGVHaXRMYWJTZWxmSG9zdGVkUHJvdmlkZXJSZXNwb25zZSJ8kkE+ChJJZGVudGl0eSBQcm92aWRlcnMSKFVwZGF0ZSBHaXRMYWIgU2VsZmhvc3QgSWRlbnRpdHkgUHJvdmlkZXKCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwIiOgEqIh0vaWRwcy9naXRsYWJfc2VsZl9ob3N0ZWQve2lkfRLNAQoRQWRkR29vZ2xlUHJvdmlkZXISKi56aXRhZGVsLmFkbWluLnYxLkFkZEdvb2dsZVByb3ZpZGVyUmVxdWVzdBorLnppdGFkZWwuYWRtaW4udjEuQWRkR29vZ2xlUHJvdmlkZXJSZXNwb25zZSJfkkEyChJJZGVudGl0eSBQcm92aWRlcnMSHEFkZCBHb29nbGUgSWRlbnRpdHkgUHJvdmlkZXKCtRgPCg1pYW0uaWRwLndyaXRlgtPkkwIROgEqIgwvaWRwcy9nb29nbGUS3gEKFFVwZGF0ZUdvb2dsZVByb3ZpZGVyEi0ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVHb29nbGVQcm92aWRlclJlcXVlc3QaLi56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUdvb2dsZVByb3ZpZGVyUmVzcG9uc2UiZ5JBNQoSSWRlbnRpdHkgUHJvdmlkZXJzEh9VcGRhdGUgR29vZ2xlIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFjoBKhoRL2lkcHMvZ29vZ2xlL3tpZH0SwwEKD0FkZExEQVBQcm92aWRlchIoLnppdGFkZWwuYWRtaW4udjEuQWRkTERBUFByb3ZpZGVyUmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuQWRkTERBUFByb3ZpZGVyUmVzcG9uc2UiW5JBMAoSSWRlbnRpdHkgUHJvdmlkZXJzEhpBZGQgTERBUCBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAg86ASoiCi9pZHBzL2xkYXAS1AEKElVwZGF0ZUxEQVBQcm92aWRlchIrLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlTERBUFByb3ZpZGVyUmVxdWVzdBosLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlTERBUFByb3ZpZGVyUmVzcG9uc2UiY5JBMwoSSWRlbnRpdHkgUHJvdmlkZXJzEh1VcGRhdGUgTERBUCBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhQ6ASoaDy9pZHBzL2xkYXAve2lkfRLIAQoQQWRkQXBwbGVQcm92aWRlchIpLnppdGFkZWwuYWRtaW4udjEuQWRkQXBwbGVQcm92aWRlclJlcXVlc3QaKi56aXRhZGVsLmFkbWluLnYxLkFkZEFwcGxlUHJvdmlkZXJSZXNwb25zZSJdkkExChJJZGVudGl0eSBQcm92aWRlcnMSG0FkZCBBcHBsZSBJZGVudGl0eSBQcm92aWRlcoK1GA8KDWlhbS5pZHAud3JpdGWC0+STAhA6ASoiCy9pZHBzL2FwcGxlEtkBChNVcGRhdGVBcHBsZVByb3ZpZGVyEiwueml0YWRlbC5hZG1pbi52MS5VcGRhdGVBcHBsZVByb3ZpZGVyUmVxdWVzdBotLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlQXBwbGVQcm92aWRlclJlc3BvbnNlImWSQTQKEklkZW50aXR5IFByb3ZpZGVycxIeVXBkYXRlIEFwcGxlIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFToBKhoQL2lkcHMvYXBwbGUve2lkfRLDAQoPQWRkU0FNTFByb3ZpZGVyEigueml0YWRlbC5hZG1pbi52MS5BZGRTQU1MUHJvdmlkZXJSZXF1ZXN0Gikueml0YWRlbC5hZG1pbi52MS5BZGRTQU1MUHJvdmlkZXJSZXNwb25zZSJbkkEwChJJZGVudGl0eSBQcm92aWRlcnMSGkFkZCBTQU1MIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCDzoBKiIKL2lkcHMvc2FtbBLUAQoSVXBkYXRlU0FNTFByb3ZpZGVyEisueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTQU1MUHJvdmlkZXJSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5VcGRhdGVTQU1MUHJvdmlkZXJSZXNwb25zZSJjkkEzChJJZGVudGl0eSBQcm92aWRlcnMSHVVwZGF0ZSBTQU1MIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFDoBKhoPL2lkcHMvc2FtbC97aWR9EqgCCiFSZWdlbmVyYXRlU0FNTFByb3ZpZGVyQ2VydGlmaWNhdGUSOi56aXRhZGVsLmFkbWluLnYxLlJlZ2VuZXJhdGVTQU1MUHJvdmlkZXJDZXJ0aWZpY2F0ZVJlcXVlc3QaOy56aXRhZGVsLmFkbWluLnYxLlJlZ2VuZXJhdGVTQU1MUHJvdmlkZXJDZXJ0aWZpY2F0ZVJlc3BvbnNlIokBkkFDChJJZGVudGl0eSBQcm92aWRlcnMSLVJlZ2VuZXJhdGUgU0FNTCBJZGVudGl0eSBQcm92aWRlciBDZXJ0aWZpY2F0ZYK1GA8KDWlhbS5pZHAud3JpdGWC0+STAio6ASoiJS9pZHBzL3NhbWwve2lkfS9fZ2VuZXJhdGVfY2VydGlmaWNhdGUS+AEKEkFkZFppdGFkZWxQcm92aWRlchIrLnppdGFkZWwuYWRtaW4udjEuQWRkWml0YWRlbFByb3ZpZGVyUmVxdWVzdBosLnppdGFkZWwuYWRtaW4udjEuQWRkWml0YWRlbFByb3ZpZGVyUmVzcG9uc2UihgGSQVgKEklkZW50aXR5IFByb3ZpZGVycxIdQWRkIFppdGFkZWwgSWRlbnRpdHkgUHJvdmlkZXIaI0FkZCBhIG5ldyBaaXRhZGVsIGlkZW50aXR5IHByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCEjoBKiINL2lkcHMveml0YWRlbBLjAQoVVXBkYXRlWml0YWRlbFByb3ZpZGVyEi4ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVaaXRhZGVsUHJvdmlkZXJSZXF1ZXN0Gi8ueml0YWRlbC5hZG1pbi52MS5VcGRhdGVaaXRhZGVsUHJvdmlkZXJSZXNwb25zZSJpkkE2ChJJZGVudGl0eSBQcm92aWRlcnMSIFVwZGF0ZSBaaXRhZGVsIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFzoBKhoSL2lkcHMveml0YWRlbC97aWR9EsUBCg5EZWxldGVQcm92aWRlchInLnppdGFkZWwuYWRtaW4udjEuRGVsZXRlUHJvdmlkZXJSZXF1ZXN0Gigueml0YWRlbC5hZG1pbi52MS5EZWxldGVQcm92aWRlclJlc3BvbnNlImCSQS4KEklkZW50aXR5IFByb3ZpZGVycxIYRGVsZXRlIElkZW50aXR5IFByb3ZpZGVygrUYDwoNaWFtLmlkcC53cml0ZYLT5JMCFioUL2lkcHMvdGVtcGxhdGVzL3tpZH0S6wEKD0dldE9yZ0lBTVBvbGljeRIoLnppdGFkZWwuYWRtaW4udjEuR2V0T3JnSUFNUG9saWN5UmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuR2V0T3JnSUFNUG9saWN5UmVzcG9uc2UiggGSQVIKCFNldHRpbmdzCg9Eb21haW4gU2V0dGluZ3MSEkdldCBPcmcgSUFNIFBvbGljeRofVXNlIEdldCBEb21haW4gU2V0dGluZ3MgaW5zdGVhZFgBgrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwISEhAvcG9saWNpZXMvb3JnaWFtEv4BChJVcGRhdGVPcmdJQU1Qb2xpY3kSKy56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZU9yZ0lBTVBvbGljeVJlcXVlc3QaLC56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZU9yZ0lBTVBvbGljeVJlc3BvbnNlIowBkkFYCghTZXR0aW5ncwoPRG9tYWluIFNldHRpbmdzEhVVcGRhdGUgT3JnIElBTSBQb2xpY3kaIlVzZSBVcGRhdGUgRG9tYWluIFNldHRpbmdzIGluc3RlYWRYAYK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAhU6ASoaEC9wb2xpY2llcy9vcmdpYW0SmwIKFUdldEN1c3RvbU9yZ0lBTVBvbGljeRIuLnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tT3JnSUFNUG9saWN5UmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tT3JnSUFNUG9saWN5UmVzcG9uc2UioAGSQWIKCFNldHRpbmdzCg9Eb21haW4gU2V0dGluZ3MSEkdldCBPcmcgSUFNIFBvbGljeRovVXNlIEdldERvbWFpbiBTZXR0aW5ncyBmb3IgT3JnYW5pemF0aW9uIGluc3RlYWRYAYK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCIBIeL29yZ3Mve29yZ19pZH0vcG9saWNpZXMvb3JnaWFtEqcCChVBZGRDdXN0b21PcmdJQU1Qb2xpY3kSLi56aXRhZGVsLmFkbWluLnYxLkFkZEN1c3RvbU9yZ0lBTVBvbGljeVJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLkFkZEN1c3RvbU9yZ0lBTVBvbGljeVJlc3BvbnNlIqwBkkFqCghTZXR0aW5ncwoPRG9tYWluIFNldHRpbmdzEhlBZGQgQ3VzdG9tIE9yZyBJQU0gUG9saWN5GjBVc2UgR2V0IERvbWFpbiBTZXR0aW5ncyBmb3IgT3JnYW5pemF0aW9uIGluc3RlYWRYAYK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAiM6ASoiHi9vcmdzL3tvcmdfaWR9L3BvbGljaWVzL29yZ2lhbRKzAgoYVXBkYXRlQ3VzdG9tT3JnSUFNUG9saWN5EjEueml0YWRlbC5hZG1pbi52MS5VcGRhdGVDdXN0b21PcmdJQU1Qb2xpY3lSZXF1ZXN0GjIueml0YWRlbC5hZG1pbi52MS5VcGRhdGVDdXN0b21PcmdJQU1Qb2xpY3lSZXNwb25zZSKvAZJBbQoIU2V0dGluZ3MKD0RvbWFpbiBTZXR0aW5ncxIcVXBkYXRlIEN1c3RvbSBPcmcgSUFNIFBvbGljeRowVXNlIEdldCBEb21haW4gU2V0dGluZ3MgZm9yIE9yZ2FuaXphdGlvbiBpbnN0ZWFkWAGCtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIjOgEqGh4vb3Jncy97b3JnX2lkfS9wb2xpY2llcy9vcmdpYW0S0wIKIFJlc2V0Q3VzdG9tT3JnSUFNUG9saWN5VG9EZWZhdWx0Ejkueml0YWRlbC5hZG1pbi52MS5SZXNldEN1c3RvbU9yZ0lBTVBvbGljeVRvRGVmYXVsdFJlcXVlc3QaOi56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tT3JnSUFNUG9saWN5VG9EZWZhdWx0UmVzcG9uc2UitwGSQXcKCFNldHRpbmdzCg9Eb21haW4gU2V0dGluZ3MSJVJlc2V0IERvbWFpbiBTZXR0aW5ncyBvZiBPcmdhbml6YXRpb24aMVVzZSBSZXNldCBEb21haW4gU2V0dGluZ3Mgb2YgT3JnYW5pemF0aW9uIGluc3RlYWRYAYK1GBMKEWlhbS5wb2xpY3kuZGVsZXRlgtPkkwIgKh4vb3Jncy97b3JnX2lkfS9wb2xpY2llcy9vcmdpYW0SmwMKD0dldERvbWFpblBvbGljeRIoLnppdGFkZWwuYWRtaW4udjEuR2V0RG9tYWluUG9saWN5UmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuR2V0RG9tYWluUG9saWN5UmVzcG9uc2UisgKSQYECCghTZXR0aW5ncwoPRG9tYWluIFNldHRpbmdzEhNHZXQgRG9tYWluIFNldHRpbmdzGq4BUmV0dXJucyB0aGUgZG9tYWluIHNldHRpbmdzIGNvbmZpZ3VyZWQgYXMgZGVmYXVsdCBvbiB0aGUgaW5zdGFuY2UuIERvbWFpbiBzZXR0aW5ncyBzcGVjaWZ5IGhvdyBaaXRhZGVsIHNob3VsZCBoYW5kbGUgZG9tYWlucywgaW4gcmVnYXJkcyB0byB1c2VybmFtZXMsIGVtYWlscyBhbmQgdmFsaWRhdGlvbi4uSh4KAzIwMBIXChVkZWZhdWx0IGRvbWFpbiBwb2xpY3mCtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAhISEC9wb2xpY2llcy9kb21haW4S5wMKElVwZGF0ZURvbWFpblBvbGljeRIrLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlRG9tYWluUG9saWN5UmVxdWVzdBosLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlRG9tYWluUG9saWN5UmVzcG9uc2Ui9QKSQcACCghTZXR0aW5ncwoPRG9tYWluIFNldHRpbmdzEhZVcGRhdGUgRG9tYWluIFNldHRpbmdzGuIBVXBkYXRlIHRoZSBkb21haW4gc2V0dGluZ3MgY29uZmlndXJlZCBhcyBkZWZhdWx0IG9uIHRoZSBpbnN0YW5jZS4gRG9tYWluIHNldHRpbmdzIHNwZWNpZnkgaG93IFppdGFkZWwgc2hvdWxkIGhhbmRsZSBkb21haW5zLCB1c2VybmFtZXMsIGVtYWlscyBhbmQgdmFsaWRhdGlvbi4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucyB0aGF0IGRvIG5vdCBoYXZlIG92ZXJ3cml0dGVuIHNldHRpbmdzLkomCgMyMDASHwodZGVmYXVsdCBkb21haW4gcG9saWN5IHVwZGF0ZWSCtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIVOgEqGhAvcG9saWNpZXMvZG9tYWluEtIEChVHZXRDdXN0b21Eb21haW5Qb2xpY3kSLi56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbURvbWFpblBvbGljeVJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbURvbWFpblBvbGljeVJlc3BvbnNlItcDkkGYAwoIU2V0dGluZ3MKD0RvbWFpbiBTZXR0aW5ncwoNT3JnYW5pemF0aW9ucxIkR2V0IERvbWFpbiBTZXR0aW5ncyBmb3IgT3JnYW5pemF0aW9uGvoBR2V0IHRoZSBkb21haW4gc2V0dGluZ3MgY29uZmlndXJlZCBvbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gSWYgdGhlIG9yZ2FuaXphdGlvbiBkb2Vzbid0IGhhdmUgYSBjdXN0b20gc2V0dGluZywgdGhlIGRlZmF1bHQgd2lsbCBiZSByZXR1cm5lZC4gRG9tYWluIHNldHRpbmdzIHNwZWNpZnkgaG93IFppdGFkZWwgc2hvdWxkIGhhbmRsZSBkb21haW5zLCBpbiByZWdhcmRzIHRvIHVzZXJuYW1lcywgZW1haWxzIGFuZCB2YWxpZGF0aW9uLkpJCgMyMDASQgpAZG9tYWluIHBvbGljeSBvZiB0aGUgb3JnIG9yIHRoZSBkZWZhdWx0IHBvbGljeSBpZiBub3QgY3VzdG9taXplZIK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCIBIeL29yZ3Mve29yZ19pZH0vcG9saWNpZXMvZG9tYWluEpwEChVBZGRDdXN0b21Eb21haW5Qb2xpY3kSLi56aXRhZGVsLmFkbWluLnYxLkFkZEN1c3RvbURvbWFpblBvbGljeVJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLkFkZEN1c3RvbURvbWFpblBvbGljeVJlc3BvbnNlIqEDkkHeAgoIU2V0dGluZ3MKD0RvbWFpbiBTZXR0aW5ncwoNT3JnYW5pemF0aW9ucxIpU2V0IGEgRG9tYWluIFNldHRpbmdzIGZvciBhbiBPcmdhbml6YXRpb24a5gFDcmVhdGUgdGhlIGRvbWFpbiBzZXR0aW5ncyBjb25maWd1cmVkIG9uIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uLiBJdCB3aWxsIG92ZXJ3cml0ZSB0aGUgc2V0dGluZ3Mgc3BlY2lmaWVkIG9uIHRoZSBpbnN0YW5jZS4gRG9tYWluIHNldHRpbmdzIHNwZWNpZnkgaG93IFppdGFkZWwgc2hvdWxkIGhhbmRsZSBkb21haW5zLCBpbiByZWdhcmRzIHRvIHVzZXJuYW1lcywgZW1haWxzIGFuZCB2YWxpZGF0aW9uLkoeCgMyMDASFwoVZG9tYWluIHBvbGljeSBjcmVhdGVkgrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCIzoBKiIeL29yZ3Mve29yZ19pZH0vcG9saWNpZXMvZG9tYWluEqMEChhVcGRhdGVDdXN0b21Eb21haW5Qb2xpY3kSMS56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUN1c3RvbURvbWFpblBvbGljeVJlcXVlc3QaMi56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUN1c3RvbURvbWFpblBvbGljeVJlc3BvbnNlIp8DkkHcAgoIU2V0dGluZ3MKD0RvbWFpbiBTZXR0aW5ncwoNT3JnYW5pemF0aW9ucxInVXBkYXRlIERvbWFpbiBTZXR0aW5ncyBmb3IgT3JnYW5pemF0aW9uGuYBVXBkYXRlIHRoZSBkb21haW4gc2V0dGluZ3MgY29uZmlndXJlZCBvbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gSXQgd2lsbCBvdmVyd3JpdGUgdGhlIHNldHRpbmdzIHNwZWNpZmllZCBvbiB0aGUgaW5zdGFuY2UuIERvbWFpbiBzZXR0aW5ncyBzcGVjaWZ5IGhvdyBaaXRhZGVsIHNob3VsZCBoYW5kbGUgZG9tYWlucywgaW4gcmVnYXJkcyB0byB1c2VybmFtZXMsIGVtYWlscyBhbmQgdmFsaWRhdGlvbi5KHgoDMjAwEhcKFWRvbWFpbiBwb2xpY3kgdXBkYXRlZIK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAiM6ASoaHi9vcmdzL3tvcmdfaWR9L3BvbGljaWVzL2RvbWFpbhLIBAogUmVzZXRDdXN0b21Eb21haW5Qb2xpY3lUb0RlZmF1bHQSOS56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tRG9tYWluUG9saWN5VG9EZWZhdWx0UmVxdWVzdBo6LnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21Eb21haW5Qb2xpY3lUb0RlZmF1bHRSZXNwb25zZSKsA5JB6wIKCFNldHRpbmdzCg9Eb21haW4gU2V0dGluZ3MKDU9yZ2FuaXphdGlvbnMSJVJlc2V0IERvbWFpbiBTZXR0aW5ncyBvZiBPcmdhbml6YXRpb24a1wFSZXNldHMgdGhlIGRvbWFpbiBzZXR0aW5ncyBjb25maWd1cmVkIG9uIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uIHRvIHRoZSBzZXR0aW5ncyBjb25maWd1cmVkIG9uIHRoZSBpbnN0YW5jZS4gRG9tYWluIHNldHRpbmdzIHNwZWNpZnkgaG93IFppdGFkZWwgc2hvdWxkIGhhbmRsZSBkb21haW5zLCBpbiByZWdhcmRzIHRvIHVzZXJuYW1lcywgZW1haWxzIGFuZCB2YWxpZGF0aW9uLko+CgMyMDASNwo1cmVzZXRzIHRoZSBjdXN0b20gZG9tYWluIHBvbGljeSB0byB0aGUgZGVmYXVsdCBwb2xpY3mCtRgTChFpYW0ucG9saWN5LmRlbGV0ZYLT5JMCICoeL29yZ3Mve29yZ19pZH0vcG9saWNpZXMvZG9tYWluEsMECg5HZXRMYWJlbFBvbGljeRInLnppdGFkZWwuYWRtaW4udjEuR2V0TGFiZWxQb2xpY3lSZXF1ZXN0Gigueml0YWRlbC5hZG1pbi52MS5HZXRMYWJlbFBvbGljeVJlc3BvbnNlIt0DkkGtAwoIU2V0dGluZ3MKCEJyYW5kaW5nEiZHZXQgUHJpdmF0ZSBMYWJlbGluZy9CcmFuZGluZyBTZXR0aW5ncxrPAlJldHVybnMgdGhlIGN1cnJlbnRseSBhY3RpdmUgcHJpdmF0ZSBsYWJlbGluZy9icmFuZGluZyBjb25maWd1cmVkIG9uIHRoZSBpbnN0YW5jZSBsZXZlbC4gVGhlIHNldHRpbmdzIHdpbGwgdHJpZ2dlciBpZiB0aGUgb3JnYW5pemF0aW9uIGhhcyBub3Qgb3ZlcndyaXR0ZW4gdGhlIHNldHRpbmdzIG9yIGlmIG5vIHNwZWNpZmljIG9yZ2FuaXphdGlvbiBpcyBjYWxsZWQgb24gdGhlIGxvZ2luIFVJLiBEZWZpbmUgd2hhdCBjb2xvcnMsIGZvbnRzLCBhbmQgbG9nbyBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIExvZ2luL1JlZ2lzdGVyIFVJLCBFLU1haWxzIGFuZCBNYW5hZ2VtZW50IENvbnNvbGUuSh0KAzIwMBIWChRkZWZhdWx0IGxhYmVsIHBvbGljeYK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCERIPL3BvbGljaWVzL2xhYmVsEqYGChVHZXRQcmV2aWV3TGFiZWxQb2xpY3kSLi56aXRhZGVsLmFkbWluLnYxLkdldFByZXZpZXdMYWJlbFBvbGljeVJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLkdldFByZXZpZXdMYWJlbFBvbGljeVJlc3BvbnNlIqsFkkHyBAoIU2V0dGluZ3MKCEJyYW5kaW5nEi5HZXQgUHJldmlldyBQcml2YXRlIExhYmVsaW5nL0JyYW5kaW5nIFNldHRpbmdzGowEUmV0dXJucyB0aGUgcHJldmlldyBwcml2YXRlIGxhYmVsaW5nL2JyYW5kaW5nIGNvbmZpZ3VyZWQgb24gdGhlIGluc3RhbmNlIGxldmVsLiBUaGUgcHJldmlldyBpcyB1c2VkIHRvIHNob3cgeW91IGhvdyBpdCB3aWxsIGxvb2sgbGlrZSwgYW5kIG5vdCBhY3RpdmF0ZSBpdCBkaXJlY3RseSBmb3IgeW91ciB1c2Vycy4gSW4gdGhlIGZ1dHVyZSwgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNlbmQgYSBwcmV2aWV3IG1haWwgYW5kIGhhdmUgYSBsb29rIGF0IHRoZSBwcmV2aWV3IGxvZ2luLiBUaGUgc2V0dGluZ3Mgd2lsbCB0cmlnZ2VyIGlmIHRoZSBvcmdhbml6YXRpb24gaGFzIG5vdCBvdmVyd3JpdHRlbiB0aGUgc2V0dGluZ3Mgb3IgaWYgbm8gc3BlY2lmaWMgb3JnYW5pemF0aW9uIGlzIGNhbGxlZCBvbiB0aGUgbG9naW4gVUkuIERlZmluZSB3aGF0IGNvbG9ycywgZm9udHMsIGFuZCBsb2dvIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgTG9naW4vUmVnaXN0ZXIgVUksIEUtTWFpbHMgYW5kIE1hbmFnZW1lbnQgQ29uc29sZS5KHQoDMjAwEhYKFGRlZmF1bHQgbGFiZWwgcG9saWN5grUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIaEhgvcG9saWNpZXMvbGFiZWwvX3ByZXZpZXcSggUKEVVwZGF0ZUxhYmVsUG9saWN5Eioueml0YWRlbC5hZG1pbi52MS5VcGRhdGVMYWJlbFBvbGljeVJlcXVlc3QaKy56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUxhYmVsUG9saWN5UmVzcG9uc2UikwSSQd8DCghTZXR0aW5ncwoIQnJhbmRpbmcSIVVwZGF0ZSBMYWJlbGluZy9CcmFuZGluZyBTZXR0aW5ncxr+AlVwZGF0ZSB0aGUgcHJldmlldyBwcml2YXRlIGxhYmVsaW5nL2JyYW5kaW5nIGNvbmZpZ3VyZWQgb24gdGhlIGluc3RhbmNlIGxldmVsLiBJdCBhZmZlY3RzIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvbid0IG92ZXJ3cml0ZSB0aGUgc2V0dGluZ3MuIFRoZSBwcmV2aWV3IGlzIHVzZWQgdG8gc2hvdyB5b3UgaG93IGl0IHdpbGwgbG9vayBsaWtlLCBtYWtlIHN1cmUgdG8gYWN0aXZhdGUgaXQgYXMgc29vbiBhcyB5b3UgYXJlIGhhcHB5IHdpdGggdGhlIGNvbmZpZ3VyYXRpb24uIERlZmluZSB3aGF0IGNvbG9ycywgZm9udHMsIGFuZCBsb2dvIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgTG9naW4vUmVnaXN0ZXIgVUksIEUtTWFpbHMgYW5kIE1hbmFnZW1lbnQgQ29uc29sZS5KJQoDMjAwEh4KHGRlZmF1bHQgbGFiZWwgcG9saWN5IHVwZGF0ZWSCtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIUOgEqGg8vcG9saWNpZXMvbGFiZWwSmQQKE0FjdGl2YXRlTGFiZWxQb2xpY3kSLC56aXRhZGVsLmFkbWluLnYxLkFjdGl2YXRlTGFiZWxQb2xpY3lSZXF1ZXN0Gi0ueml0YWRlbC5hZG1pbi52MS5BY3RpdmF0ZUxhYmVsUG9saWN5UmVzcG9uc2UipAOSQeYCCghTZXR0aW5ncwoIQnJhbmRpbmcSI0FjdGl2YXRlIExhYmVsaW5nL0JyYW5kaW5nIFNldHRpbmdzGqoCQWN0aXZhdGVzIHRoZSBwcmV2aWV3IHByaXZhdGUgbGFiZWxpbmcvYnJhbmRpbmcgY29uZmlndXJlZCBvbiB0aGUgaW5zdGFuY2UgbGV2ZWwuIEl0IHdpbGwgYmUgc2hvd24gdG8gdGhlIHVzZXJzIGFmdGVyd2FyZC4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkb24ndCBvdmVyd3JpdGUgdGhlIHNldHRpbmdzLiBEZWZpbmVzIHdoYXQgY29sb3JzLCBmb250cywgYW5kIGxvZ28gc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBMb2dpbi9SZWdpc3RlciBVSSwgRS1NYWlscyBhbmQgTWFuYWdlbWVudCBDb25zb2xlLoK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAh46ASoiGS9wb2xpY2llcy9sYWJlbC9fYWN0aXZhdGUSjQMKFVJlbW92ZUxhYmVsUG9saWN5TG9nbxIuLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlTGFiZWxQb2xpY3lMb2dvUmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlTGFiZWxQb2xpY3lMb2dvUmVzcG9uc2UikgKSQdwBCghTZXR0aW5ncwoIQnJhbmRpbmcSEVJlbW92ZSBMb2dvIExpZ2h0GrIBUmVtb3ZlcyB0aGUgbG9nbyBvZiB0aGUgbGlnaHQgdGhlbWUgZnJvbSB0aGUgY29uZmlndXJlZCBsYWJlbCBwb2xpY3kvYnJhbmRpbmcgb2YgdGhlIGluc3RhbmNlLiBJdCB3aWxsIG9ubHkgYmUgc2hvd24gb24gdGhlIHByZXZpZXcuIE1ha2Ugc3VyZSB0byBhY3RpdmF0ZSB5b3VyIGNoYW5nZXMgYWZ0ZXJ3YXJkLoK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAhYqFC9wb2xpY2llcy9sYWJlbC9sb2dvEpwDChlSZW1vdmVMYWJlbFBvbGljeUxvZ29EYXJrEjIueml0YWRlbC5hZG1pbi52MS5SZW1vdmVMYWJlbFBvbGljeUxvZ29EYXJrUmVxdWVzdBozLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlTGFiZWxQb2xpY3lMb2dvRGFya1Jlc3BvbnNlIpUCkkHaAQoIU2V0dGluZ3MKCEJyYW5kaW5nEhBSZW1vdmUgTG9nbyBEYXJrGrEBUmVtb3ZlcyB0aGUgbG9nbyBvZiB0aGUgZGFyayB0aGVtZSBmcm9tIHRoZSBjb25maWd1cmVkIGxhYmVsIHBvbGljeS9icmFuZGluZyBvZiB0aGUgaW5zdGFuY2UuIEl0IHdpbGwgb25seSBiZSBzaG93biBvbiB0aGUgcHJldmlldy4gTWFrZSBzdXJlIHRvIGFjdGl2YXRlIHlvdXIgY2hhbmdlcyBhZnRlcndhcmQugrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCGyoZL3BvbGljaWVzL2xhYmVsL2xvZ29fZGFyaxKNAwoVUmVtb3ZlTGFiZWxQb2xpY3lJY29uEi4ueml0YWRlbC5hZG1pbi52MS5SZW1vdmVMYWJlbFBvbGljeUljb25SZXF1ZXN0Gi8ueml0YWRlbC5hZG1pbi52MS5SZW1vdmVMYWJlbFBvbGljeUljb25SZXNwb25zZSKSApJB3AEKCFNldHRpbmdzCghCcmFuZGluZxIRUmVtb3ZlIEljb24gTGlnaHQasgFSZW1vdmVzIHRoZSBpY29uIG9mIHRoZSBsaWdodCB0aGVtZSBmcm9tIHRoZSBjb25maWd1cmVkIGxhYmVsIHBvbGljeS9icmFuZGluZyBvZiB0aGUgaW5zdGFuY2UuIEl0IHdpbGwgb25seSBiZSBzaG93biBvbiB0aGUgcHJldmlldy4gTWFrZSBzdXJlIHRvIGFjdGl2YXRlIHlvdXIgY2hhbmdlcyBhZnRlcndhcmQugrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCFioUL3BvbGljaWVzL2xhYmVsL2ljb24SnAMKGVJlbW92ZUxhYmVsUG9saWN5SWNvbkRhcmsSMi56aXRhZGVsLmFkbWluLnYxLlJlbW92ZUxhYmVsUG9saWN5SWNvbkRhcmtSZXF1ZXN0GjMueml0YWRlbC5hZG1pbi52MS5SZW1vdmVMYWJlbFBvbGljeUljb25EYXJrUmVzcG9uc2UilQKSQdoBCghTZXR0aW5ncwoIQnJhbmRpbmcSEFJlbW92ZSBJY29uIERhcmsasQFSZW1vdmVzIHRoZSBpY29uIG9mIHRoZSBkYXJrIHRoZW1lIGZyb20gdGhlIGNvbmZpZ3VyZWQgbGFiZWwgcG9saWN5L2JyYW5kaW5nIG9mIHRoZSBpbnN0YW5jZS4gSXQgd2lsbCBvbmx5IGJlIHNob3duIG9uIHRoZSBwcmV2aWV3LiBNYWtlIHN1cmUgdG8gYWN0aXZhdGUgeW91ciBjaGFuZ2VzIGFmdGVyd2FyZC6CtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIbKhkvcG9saWNpZXMvbGFiZWwvaWNvbl9kYXJrEvQCChVSZW1vdmVMYWJlbFBvbGljeUZvbnQSLi56aXRhZGVsLmFkbWluLnYxLlJlbW92ZUxhYmVsUG9saWN5Rm9udFJlcXVlc3QaLy56aXRhZGVsLmFkbWluLnYxLlJlbW92ZUxhYmVsUG9saWN5Rm9udFJlc3BvbnNlIvkBkkHDAQoIU2V0dGluZ3MKCEJyYW5kaW5nEgtSZW1vdmUgRm9udBqfAVJlbW92ZXMgdGhlIGZvbnQgZnJvbSB0aGUgY29uZmlndXJlZCBsYWJlbCBwb2xpY3kvYnJhbmRpbmcgb2YgdGhlIGluc3RhbmNlLiBJdCB3aWxsIG9ubHkgYmUgc2hvd24gb24gdGhlIHByZXZpZXcuIE1ha2Ugc3VyZSB0byBhY3RpdmF0ZSB5b3VyIGNoYW5nZXMgYWZ0ZXJ3YXJkLoK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAhYqFC9wb2xpY2llcy9sYWJlbC9mb250EoAECg5HZXRMb2dpblBvbGljeRInLnppdGFkZWwuYWRtaW4udjEuR2V0TG9naW5Qb2xpY3lSZXF1ZXN0Gigueml0YWRlbC5hZG1pbi52MS5HZXRMb2dpblBvbGljeVJlc3BvbnNlIpoDkkHqAgoIU2V0dGluZ3MKDkxvZ2luIFNldHRpbmdzEhJHZXQgTG9naW4gU2V0dGluZ3MamgJSZXR1cm5zIHRoZSBsb2dpbiBzZXR0aW5ncyBkZWZpbmVkIG9uIHRoZSBpbnN0YW5jZSBsZXZlbC4gSXQgd2lsbCB0cmlnZ2VyIGZvciBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkb24ndCBvdmVyd3JpdGUgdGhlIHNldHRpbmdzLiBUaGUgbG9naW4gcG9saWN5IGRlZmluZXMgd2hhdCBraW5kIG9mIGF1dGhlbnRpY2F0aW9uIHBvc3NpYmlsaXRpZXMgdGhlIHVzZXIgc2hvdWxkIGhhdmUuIEdlbmVyYWxseSBzcGVha2luZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGxvZ2luIGFuZCByZWdpc3RlciBVSS5KHQoDMjAwEhYKFGRlZmF1bHQgbG9naW4gcG9saWN5grUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIREg8vcG9saWNpZXMvbG9naW4SnwQKEVVwZGF0ZUxvZ2luUG9saWN5Eioueml0YWRlbC5hZG1pbi52MS5VcGRhdGVMb2dpblBvbGljeVJlcXVlc3QaKy56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZUxvZ2luUG9saWN5UmVzcG9uc2UisAOSQfwCCghTZXR0aW5ncwoOTG9naW4gU2V0dGluZ3MSFVVwZGF0ZSBMb2dpbiBTZXR0aW5ncxqhAlVwZGF0ZSB0aGUgZGVmYXVsdCBsb2dpbiBzZXR0aW5ncyBkZWZpbmVkIG9uIHRoZSBpbnN0YW5jZSBsZXZlbC4gSXQgd2lsbCB0cmlnZ2VyIGZvciBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkb24ndCBvdmVyd3JpdGUgdGhlIHNldHRpbmdzLiBUaGUgbG9naW4gcG9saWN5IGRlZmluZXMgd2hhdCBraW5kIG9mIGF1dGhlbnRpY2F0aW9uIHBvc3NpYmlsaXRpZXMgdGhlIHVzZXIgc2hvdWxkIGhhdmUuIEdlbmVyYWxseSBzcGVha2luZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGxvZ2luIGFuZCByZWdpc3RlciBVSS5KJQoDMjAwEh4KHGRlZmF1bHQgbG9naW4gcG9saWN5IHVwZGF0ZWSCtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIUOgEqGg8vcG9saWNpZXMvbG9naW4SlwQKE0xpc3RMb2dpblBvbGljeUlEUHMSLC56aXRhZGVsLmFkbWluLnYxLkxpc3RMb2dpblBvbGljeUlEUHNSZXF1ZXN0Gi0ueml0YWRlbC5hZG1pbi52MS5MaXN0TG9naW5Qb2xpY3lJRFBzUmVzcG9uc2UiogOSQeICCghTZXR0aW5ncwoOTG9naW4gU2V0dGluZ3MKEklkZW50aXR5IFByb3ZpZGVycxIeTGlzdCBMaW5rZWQgSWRlbnRpdHkgUHJvdmlkZXJzGtwBUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpdHkgcHJvdmlkZXJzIHRoYXQgYXJlIGxpbmtlZCBpbiB0aGUgbG9naW4gcG9saWN5LiBUaGlzIG1lYW5zLCB0aGF0IHRoZXkgYXJlIGNvbmZpZ3VyZWQgZm9yIHRoZSBpbnN0YW5jZSBhbmQgd2lsbCBiZSBzaG93biB0byB0aGUgdXNlcnMuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHdpdGhvdXQgY3VzdG9tIGxvZ2luIHNldHRpbmdzLkozCgMyMDASLAoqSWRlbnRpdHkgcHJvdmlkZXJzIG9mIGRlZmF1bHQgbG9naW4gcG9saWN5grUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIhOgEqIhwvcG9saWNpZXMvbG9naW4vaWRwcy9fc2VhcmNoEogEChNBZGRJRFBUb0xvZ2luUG9saWN5Eiwueml0YWRlbC5hZG1pbi52MS5BZGRJRFBUb0xvZ2luUG9saWN5UmVxdWVzdBotLnppdGFkZWwuYWRtaW4udjEuQWRkSURQVG9Mb2dpblBvbGljeVJlc3BvbnNlIpMDkkHaAgoIU2V0dGluZ3MKDkxvZ2luIFNldHRpbmdzChJJZGVudGl0eSBQcm92aWRlcnMSHEFkZCBMaW5rZWQgSWRlbnRpdHkgUHJvdmlkZXIa0AFBZGQvbGluayBhIHByZS1jb25maWd1cmVkIGlkZW50aXR5IHByb3ZpZGVyIHRvIHRoZSBsb2dpbiBzZXR0aW5ncyBvZiB0aGUgaW5zdGFuY2UuIFRoaXMgbWVhbnMgdGhhdCBpdCB3aWxsIGJlIHNob3duIHRvIHRoZSB1c2VycyBvbiB0aGUgbG9naW4gcGFnZS4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgd2l0aG91dCBjdXN0b20gbG9naW4gc2V0dGluZ3MuSjkKAzIwMBIyCjBJZGVudGl0eSBwcm92aWRlcnMgYWRkZWQgdG8gZGVmYXVsdCBsb2dpbiBwb2xpY3mCtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIZOgEqIhQvcG9saWNpZXMvbG9naW4vaWRwcxKaBAoYUmVtb3ZlSURQRnJvbUxvZ2luUG9saWN5EjEueml0YWRlbC5hZG1pbi52MS5SZW1vdmVJRFBGcm9tTG9naW5Qb2xpY3lSZXF1ZXN0GjIueml0YWRlbC5hZG1pbi52MS5SZW1vdmVJRFBGcm9tTG9naW5Qb2xpY3lSZXNwb25zZSKWA5JB1wIKCFNldHRpbmdzCg5Mb2dpbiBTZXR0aW5ncwoSSWRlbnRpdHkgUHJvdmlkZXJzEh9SZW1vdmUgTGlua2VkIElkZW50aXR5IFByb3ZpZGVyGsYBUmVtb3ZlIGFuIGlkZW50aXR5IHByb3ZpZGVyIGZyb20gdGhlIGxvZ2luIHNldHRpbmdzIG9mIHRoZSBpbnN0YW5jZS4gVGhpcyBtZWFucyB0aGF0IGl0IHdpbGwgbm90IGJlIHNob3duIHRvIHRoZSB1c2VycyBvbiB0aGUgbG9naW4gcGFnZS4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgd2l0aG91dCBjdXN0b20gbG9naW4gc2V0dGluZ3MuSj0KAzIwMBI2CjRJZGVudGl0eSBwcm92aWRlcnMgcmVtb3ZlZCBmcm9tIGRlZmF1bHQgbG9naW4gcG9saWN5grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCHyodL3BvbGljaWVzL2xvZ2luL2lkcHMve2lkcF9pZH0S9gUKHExpc3RMb2dpblBvbGljeVNlY29uZEZhY3RvcnMSNS56aXRhZGVsLmFkbWluLnYxLkxpc3RMb2dpblBvbGljeVNlY29uZEZhY3RvcnNSZXF1ZXN0GjYueml0YWRlbC5hZG1pbi52MS5MaXN0TG9naW5Qb2xpY3lTZWNvbmRGYWN0b3JzUmVzcG9uc2Ui5gSSQZ8ECghTZXR0aW5ncwoOTG9naW4gU2V0dGluZ3MKFkF1dGhlbnRpY2F0aW9uIE1ldGhvZHMSGUxpc3QgU2Vjb25kIEZhY3RvcnMgKDJGQSkangNSZXR1cm5zIGEgbGlzdCBvZiBzZWNvbmQgZmFjdG9ycyAoMkZBKSBjb25maWd1cmVkIG9uIHRoZSBsb2dpbiBzZXR0aW5ncyBvZiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHdpdGhvdXQgY3VzdG9tIGxvZ2luIHNldHRpbmdzLiBBdXRoZW50aWNhdGlvbiBmYWN0b3JzIGFyZSB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgb2Ygc2VjdXJpdHkgZm9yIHlvdXIgdXNlcnMgKGUuZy4gQXV0aGVudGljYXRpb24gQXBwLCBGaW5nZXJQcmludCwgV2luZG93cyBIZWxsbywgZXRjKS4gUGVyIGRlZmluaXRpb24sIGl0IGlzIGNhbGxlZCB0aGUgc2Vjb25kIGZhY3RvciBhcyBpdCBpcyB1c2VkIGFmdGVyIGEgcGFzc3dvcmQuIEluIHRoZSBVSSB3ZSBnZW5lcmFsaXplIGl0IGFzIG11bHRpLWZhY3Rvci5KLwoDMjAwEigKJnNlY29uZCBmYWN0b3JzIG9mIGRlZmF1bHQgbG9naW4gcG9saWN5grUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIoIiYvcG9saWNpZXMvbG9naW4vc2Vjb25kX2ZhY3RvcnMvX3NlYXJjaBKiBwocQWRkU2Vjb25kRmFjdG9yVG9Mb2dpblBvbGljeRI1LnppdGFkZWwuYWRtaW4udjEuQWRkU2Vjb25kRmFjdG9yVG9Mb2dpblBvbGljeVJlcXVlc3QaNi56aXRhZGVsLmFkbWluLnYxLkFkZFNlY29uZEZhY3RvclRvTG9naW5Qb2xpY3lSZXNwb25zZSKSBpJBzwUKCFNldHRpbmdzCg5Mb2dpbiBTZXR0aW5ncwoWQXV0aGVudGljYXRpb24gTWV0aG9kcxIXQWRkIFNlY29uZCBGYWN0b3IgKDJGQSkaiQRBZGQgYSBuZXcgc2Vjb25kIGZhY3RvciAoMkZBKSB0byB0aGUgbG9naW4gc2V0dGluZ3Mgb2YgdGhlIGluc3RhbmNlLiBVc2VycyB3aWxsIGhhdmUgdGhlIHBvc3NpYmlsaXR5IHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSBjb25maWd1cmVkIGZhY3RvciBhZnRlcndhcmQuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHdpdGhvdXQgY3VzdG9tIGxvZ2luIHNldHRpbmdzLiBBdXRoZW50aWNhdGlvbiBmYWN0b3JzIGFyZSB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgZmFjdG9yIHRvIGFkZCBtb3JlIHNlY3VyaXR5IHRvIHlvdXIgdXNlcnMgKGUuZy4gQXV0aGVudGljYXRpb24gQXBwLCBGaW5nZXJQcmludCwgV2luZG93cyBIZWxsbywgZXRjKS4gUGVyIGRlZmluaXRpb24sIGl0IGlzIGNhbGxlZCBhIHNlY29uZCBmYWN0b3IgYXMgaXQgaXMgdXNlZCBhcyBhbiBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0aW9uIGFmdGVyIGEgcGFzc3dvcmQuIEluIHRoZSBVSSB3ZSBnZW5lcmFsaXplIHRoaXMgYXMgbXVsdGktZmFjdG9yLko0CgMyMDASLQorc2Vjb25kIGZhY3RvciBhZGRlZCB0byBkZWZhdWx0IGxvZ2luIHBvbGljeUpACgM0MDASOQoaaW52YWxpZCBzZWNvbmQgZmFjdG9yIHR5cGUSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c4K1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAiM6ASoiHi9wb2xpY2llcy9sb2dpbi9zZWNvbmRfZmFjdG9ycxKWBwohUmVtb3ZlU2Vjb25kRmFjdG9yRnJvbUxvZ2luUG9saWN5Ejoueml0YWRlbC5hZG1pbi52MS5SZW1vdmVTZWNvbmRGYWN0b3JGcm9tTG9naW5Qb2xpY3lSZXF1ZXN0Gjsueml0YWRlbC5hZG1pbi52MS5SZW1vdmVTZWNvbmRGYWN0b3JGcm9tTG9naW5Qb2xpY3lSZXNwb25zZSL3BZJBsAUKCFNldHRpbmdzCg5Mb2dpbiBTZXR0aW5ncwoWQXV0aGVudGljYXRpb24gTWV0aG9kcxIaUmVtb3ZlIFNlY29uZCBGYWN0b3IgKDJGQSka4wNSZW1vdmUgYSBjb25maWd1cmVkIHNlY29uZCBmYWN0b3IgKDJGQSkgZnJvbSB0aGUgbG9naW4gc2V0dGluZ3Mgb2YgdGhlIGluc3RhbmNlLiBJdCBhZmZlY3RzIGFsbCBvcmdhbml6YXRpb25zLCB3aXRob3V0IGN1c3RvbSBsb2dpbiBzZXR0aW5ncy4gVXNlcnMgd2lsbCBub3QgYmUgYWJsZSB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgY29uZmlndXJlZCBmYWN0b3IgYWZ0ZXJ3YXJkLiBBdXRoZW50aWNhdGlvbiBmYWN0b3JzIGFyZSB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgb2Ygc2VjdXJpdHkgZm9yIHlvdXIgdXNlcnMgKGUuZy4gQXV0aGVudGljYXRpb24gQXBwLCBGaW5nZXJQcmludCwgV2luZG93cyBIZWxsbywgZXRjKS4gUGVyIGRlZmluaXRpb24sIGl0IGlzIGNhbGxlZCB0aGUgc2Vjb25kIGZhY3RvciBhcyBpdCBpcyB1c2VkIGFmdGVyIGEgcGFzc3dvcmQuIEluIHRoZSBVSSB3ZSBnZW5lcmFsaXplIGl0IGFzIG11bHRpLWZhY3Rvci5KOAoDMjAwEjEKL3NlY29uZCBmYWN0b3IgcmVtb3ZlZCBmcm9tIGRlZmF1bHQgbG9naW4gcG9saWN5SkAKAzQwMBI5ChpJbnZhbGlkIHNlY29uZCBmYWN0b3IgdHlwZRIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzgrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCJyolL3BvbGljaWVzL2xvZ2luL3NlY29uZF9mYWN0b3JzL3t0eXBlfRLfBQobTGlzdExvZ2luUG9saWN5TXVsdGlGYWN0b3JzEjQueml0YWRlbC5hZG1pbi52MS5MaXN0TG9naW5Qb2xpY3lNdWx0aUZhY3RvcnNSZXF1ZXN0GjUueml0YWRlbC5hZG1pbi52MS5MaXN0TG9naW5Qb2xpY3lNdWx0aUZhY3RvcnNSZXNwb25zZSLSBJJBjAQKCFNldHRpbmdzCg5Mb2dpbiBTZXR0aW5ncwoWQXV0aGVudGljYXRpb24gTWV0aG9kcxIYTGlzdCBNdWx0aS1mYWN0b3JzIChNRkEpGo0DUmV0dXJucyBhIGxpc3Qgb2YgbXVsdGktZmFjdG9ycyAoTUZBKSBjb25maWd1cmVkIG9uIHRoZSBsb2dpbiBzZXR0aW5ncyBvZiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHdpdGhvdXQgY3VzdG9tIGxvZ2luIHNldHRpbmdzLiBBdXRoZW50aWNhdGlvbiBmYWN0b3JzIGFyZSB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgb2Ygc2VjdXJpdHkgZm9yIHlvdXIgdXNlcnMgKGUuZy4gQXV0aGVudGljYXRpb24gQXBwLCBGaW5nZXJQcmludCwgV2luZG93cyBIZWxsbywgZXRjKS4gIFRoZXkgYXJlIGNhbGxlZCBwYXNza2V5cyBhbmQgYXJlIHVzZWQgYXMgZmlyc3QgYW5kIHNlY29uZCBhdXRoZW50aWNhdGlvbiBhbmQgYSBwYXNzd29yZCBpcyBub3QgbmVjZXNzYXJ5LkouCgMyMDASJwolbXVsdGktZmFjdG9ycyBvZiBkZWZhdWx0IGxvZ2luIHBvbGljeYK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCJyIlL3BvbGljaWVzL2xvZ2luL211bHRpX2ZhY3RvcnMvX3NlYXJjaBKGBgobQWRkTXVsdGlGYWN0b3JUb0xvZ2luUG9saWN5EjQueml0YWRlbC5hZG1pbi52MS5BZGRNdWx0aUZhY3RvclRvTG9naW5Qb2xpY3lSZXF1ZXN0GjUueml0YWRlbC5hZG1pbi52MS5BZGRNdWx0aUZhY3RvclRvTG9naW5Qb2xpY3lSZXNwb25zZSL5BJJBtwQKCFNldHRpbmdzCg5Mb2dpbiBTZXR0aW5ncwoWQXV0aGVudGljYXRpb24gTWV0aG9kcxIWQWRkIE11bHRpLUZhY3RvciAoTUZBKRr0AkFkZCBhIG11bHRpLWZhY3RvciAoTUZBKSB0byB0aGUgbG9naW4gc2V0dGluZ3Mgb2YgdGhlIGluc3RhbmNlLiBJdCBhZmZlY3RzIGFsbCBvcmdhbml6YXRpb25zLCB3aXRob3V0IGN1c3RvbSBsb2dpbiBzZXR0aW5ncy4gQXV0aGVudGljYXRpb24gZmFjdG9ycyBhcmUgdXNlZCBhcyBhbiBhZGRpdGlvbmFsIGxheWVyIG9mIHNlY3VyaXR5IGZvciB5b3VyIHVzZXJzIChlLmcuIEF1dGhlbnRpY2F0aW9uIEFwcCwgRmluZ2VyUHJpbnQsIFdpbmRvd3MgSGVsbG8sIGV0YykuIFRoZXkgYXJlIGNhbGxlZCBwYXNza2V5cyBhbmQgYXJlIHVzZWQgYXMgZmlyc3QgYW5kIHNlY29uZCBhdXRoZW50aWNhdGlvbiBhbmQgYSBwYXNzd29yZCBpcyBub3QgbmVjZXNzYXJ5LkozCgMyMDASLAoqbXVsdGktZmFjdG9yIGFkZGVkIHRvIGRlZmF1bHQgbG9naW4gcG9saWN5Sj8KAzQwMBI4ChlpbnZhbGlkIG11bHRpLWZhY3RvciB0eXBlEhsKGRoXIy9kZWZpbml0aW9ucy9ycGNTdGF0dXOCtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIiOgEqIh0vcG9saWNpZXMvbG9naW4vbXVsdGlfZmFjdG9ycxKVBwogUmVtb3ZlTXVsdGlGYWN0b3JGcm9tTG9naW5Qb2xpY3kSOS56aXRhZGVsLmFkbWluLnYxLlJlbW92ZU11bHRpRmFjdG9yRnJvbUxvZ2luUG9saWN5UmVxdWVzdBo6LnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlTXVsdGlGYWN0b3JGcm9tTG9naW5Qb2xpY3lSZXNwb25zZSL5BZJBswUKCFNldHRpbmdzCg5Mb2dpbiBTZXR0aW5ncwoWQXV0aGVudGljYXRpb24gTWV0aG9kcxIZUmVtb3ZlIE11bHRpLWZhY3RvciAoTUZBKRraA1JlbW92ZSBhIG11bHRpLWZhY3RvciAoTUZBKSBmcm9tIHRoZSBsb2dpbiBzZXR0aW5ncyBvZiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHdpdGhvdXQgY3VzdG9tIGxvZ2luIHNldHRpbmdzLiBBdXRoZW50aWNhdGlvbiBmYWN0b3JzIGFyZSB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgbGF5ZXIgb2Ygc2VjdXJpdHkgZm9yIHlvdXIgdXNlcnMgKGUuZy4gQXV0aGVudGljYXRpb24gQXBwLCBGaW5nZXJQcmludCwgV2luZG93cyBIZWxsbywgZXRjKS4gIFBlciBkZWZpbml0aW9uLCBpdCBpcyBjYWxsZWQgbXVsdGktZmFjdG9yIGZhY3RvciBvciBwYXNzd29yZGxlc3MgYXMgaXQgaXMgdXNlZCBhcyBmaXJzdCBhbmQgc2Vjb25kIGF1dGhlbnRpY2F0aW9uIGFuZCBhIHBhc3N3b3JkIGlzIG5vdCBuZWNlc3NhcnkuIEluIHRoZSBVSSB3ZSBnZW5lcmFsaXplIGl0IGFzIHBhc3N3b3JkbGVzcyBvciBwYXNza2V5Lko4CgMyMDASMQovc2Vjb25kIGZhY3RvciByZW1vdmVkIGZyb20gZGVmYXVsdCBsb2dpbiBwb2xpY3lKTQoDNDAwEkYKJ211bHRpLWZhY3RvciB0eXBlIG5vdCBkZWZpbmVkIG9uIHBvbGljeRIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzgrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCJiokL3BvbGljaWVzL2xvZ2luL211bHRpX2ZhY3RvcnMve3R5cGV9EpUEChtHZXRQYXNzd29yZENvbXBsZXhpdHlQb2xpY3kSNC56aXRhZGVsLmFkbWluLnYxLkdldFBhc3N3b3JkQ29tcGxleGl0eVBvbGljeVJlcXVlc3QaNS56aXRhZGVsLmFkbWluLnYxLkdldFBhc3N3b3JkQ29tcGxleGl0eVBvbGljeVJlc3BvbnNlIogDkkHKAgoIU2V0dGluZ3MKEVBhc3N3b3JkIFNldHRpbmdzEiBHZXQgUGFzc3dvcmQgQ29tcGxleGl0eSBTZXR0aW5ncxrbAVJldHVybnMgdGhlIHBhc3N3b3JkIGNvbXBsZXhpdHkgc2V0dGluZ3MgY29uZmlndXJlZCBvbiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gc2V0dGluZyBjb25maWd1cmVkLiBUaGUgc2V0dGluZ3Mgc3BlY2lmeSBob3cgYSBwYXNzd29yZCBzaG91bGQgbG9vayAoY2hhcmFjdGVycywgbGVuZ3RoLCBldGMuKUorCgMyMDASJAoiZGVmYXVsdCBwYXNzd29yZCBjb21wbGV4aXR5IHBvbGljeYK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCHxIdL3BvbGljaWVzL3Bhc3N3b3JkL2NvbXBsZXhpdHkS7QQKHlVwZGF0ZVBhc3N3b3JkQ29tcGxleGl0eVBvbGljeRI3LnppdGFkZWwuYWRtaW4udjEuVXBkYXRlUGFzc3dvcmRDb21wbGV4aXR5UG9saWN5UmVxdWVzdBo4LnppdGFkZWwuYWRtaW4udjEuVXBkYXRlUGFzc3dvcmRDb21wbGV4aXR5UG9saWN5UmVzcG9uc2Ui1wOSQZUDCghTZXR0aW5ncwoRUGFzc3dvcmQgU2V0dGluZ3MSI1VwZGF0ZSBQYXNzd29yZCBDb21wbGV4aXR5IFNldHRpbmdzGuMBVXBkYXRlcyB0aGUgZGVmYXVsdCBwYXNzd29yZCBjb21wbGV4aXR5IHNldHRpbmdzIGNvbmZpZ3VyZWQgb24gdGhlIGluc3RhbmNlLiBJdCBhZmZlY3RzIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHNldHRpbmcgY29uZmlndXJlZC4gVGhlIHNldHRpbmdzIHNwZWNpZnkgaG93IGEgcGFzc3dvcmQgc2hvdWxkIGxvb2sgKGNoYXJhY3RlcnMsIGxlbmd0aCwgZXRjLilKMwoDMjAwEiwKKmRlZmF1bHQgcGFzc3dvcmQgY29tcGxleGl0eSBwb2xpY3kgdXBkYXRlZEo2CgM0MDASLwoQaW52YWxpZCBhcmd1bWVudBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzgrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCIjoBKhodL3BvbGljaWVzL3Bhc3N3b3JkL2NvbXBsZXhpdHkSgwQKFEdldFBhc3N3b3JkQWdlUG9saWN5Ei0ueml0YWRlbC5hZG1pbi52MS5HZXRQYXNzd29yZEFnZVBvbGljeVJlcXVlc3QaLi56aXRhZGVsLmFkbWluLnYxLkdldFBhc3N3b3JkQWdlUG9saWN5UmVzcG9uc2UiiwOSQdQCCghTZXR0aW5ncwoRUGFzc3dvcmQgU2V0dGluZ3MSGUdldCBQYXNzd29yZCBBZ2UgU2V0dGluZ3Ma8wFSZXR1cm5zIHRoZSBwYXNzd29yZCBhZ2Ugc2V0dGluZ3MgY29uZmlndXJlZCBvbiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gc2V0dGluZyBjb25maWd1cmVkLiBUaGUgc2V0dGluZ3Mgc3BlY2lmeSB0aGUgZXhwaXJ5IG9mIHBhc3N3b3JkLCBhZnRlciB3aGljaCBhIHVzZXIgaXMgZm9yY2VkIHRvIGNoYW5nZSBpdCBvbiB0aGUgbmV4dCBsb2dpbi5KJAoDMjAwEh0KG2RlZmF1bHQgcGFzc3dvcmQgYWdlIHBvbGljeYK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCGBIWL3BvbGljaWVzL3Bhc3N3b3JkL2FnZRLiBAoXVXBkYXRlUGFzc3dvcmRBZ2VQb2xpY3kSMC56aXRhZGVsLmFkbWluLnYxLlVwZGF0ZVBhc3N3b3JkQWdlUG9saWN5UmVxdWVzdBoxLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlUGFzc3dvcmRBZ2VQb2xpY3lSZXNwb25zZSLhA5JBpgMKCFNldHRpbmdzChFQYXNzd29yZCBTZXR0aW5ncxIcVXBkYXRlIFBhc3N3b3JkIEFnZSBTZXR0aW5ncxqCAlVwZGF0ZXMgdGhlIGRlZmF1bHQgcGFzc3dvcmQgY29tcGxleGl0eSBzZXR0aW5ncyBjb25maWd1cmVkIG9uIHRoZSBpbnN0YW5jZS4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSBzZXR0aW5nIGNvbmZpZ3VyZWQuIFRoZSBzZXR0aW5ncyBzcGVjaWZ5IHRoZSBleHBpcnkgb2YgcGFzc3dvcmQsIGFmdGVyIHdoaWNoIGEgdXNlciBpcyBmb3JjZWQgdG8gY2hhbmdlIGl0IG9uIHRoZSBuZXh0IGxvZ2luLkosCgMyMDASJQojZGVmYXVsdCBwYXNzd29yZCBhZ2UgcG9saWN5IHVwZGF0ZWRKNgoDNDAwEi8KEGludmFsaWQgYXJndW1lbnQSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c4K1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAhs6ASoaFi9wb2xpY2llcy9wYXNzd29yZC9hZ2USmgQKEEdldExvY2tvdXRQb2xpY3kSKS56aXRhZGVsLmFkbWluLnYxLkdldExvY2tvdXRQb2xpY3lSZXF1ZXN0Gioueml0YWRlbC5hZG1pbi52MS5HZXRMb2Nrb3V0UG9saWN5UmVzcG9uc2UirgOSQfwCCghTZXR0aW5ncwoRUGFzc3dvcmQgU2V0dGluZ3MSHUdldCBQYXNzd29yZCBMb2Nrb3V0IFNldHRpbmdzGpwCUmV0dXJucyB0aGUgcGFzc3dvcmQgbG9ja291dCBzZXR0aW5ncyBjb25maWd1cmVkIG9uIHRoZSBpbnN0YW5jZS4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSBzZXR0aW5nIGNvbmZpZ3VyZWQuIFRoZSBzZXR0aW5ncyBzcGVjaWZ5IHdoZW4gYSB1c2VyIHNob3VsZCBiZSBsb2NrZWQgKGUuZyBob3cgbWFueSBwYXNzd29yZCBhdHRlbXB0cykuIFRoZSB1c2VyIGhhcyB0byBiZSB1bmxvY2tlZCBieSBhbiBhZG1pbmlzdHJhdG9yIGFmdGVyd2FyZC5KHwoDMjAwEhgKFmRlZmF1bHQgbG9ja291dCBwb2xpY3mCtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAhMSES9wb2xpY2llcy9sb2Nrb3V0EpEEChNVcGRhdGVMb2Nrb3V0UG9saWN5Eiwueml0YWRlbC5hZG1pbi52MS5VcGRhdGVMb2Nrb3V0UG9saWN5UmVxdWVzdBotLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlTG9ja291dFBvbGljeVJlc3BvbnNlIpwDkkHdAgoIU2V0dGluZ3MKEVBhc3N3b3JkIFNldHRpbmdzEiBVcGRhdGUgUGFzc3dvcmQgTG9ja291dCBTZXR0aW5ncxqbAlVwZGF0ZSB0aGUgcGFzc3dvcmQgbG9ja291dCBzZXR0aW5ncyBjb25maWd1cmVkIG9uIHRoZSBpbnN0YW5jZS4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSBzZXR0aW5nIGNvbmZpZ3VyZWQuIFRoZSBzZXR0aW5ncyBzcGVjaWZ5IHdoZW4gYSB1c2VyIHNob3VsZCBiZSBsb2NrZWQgKGUuZyBob3cgbWFueSBwYXNzd29yZCBhdHRlbXB0cykuIFRoZSB1c2VyIGhhcyB0byBiZSB1bmxvY2tlZCBieSBhbiBhZG1pbmlzdHJhdG9yIGFmdGVyd2FyZC6CtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIfOgEqGhovcG9saWNpZXMvcGFzc3dvcmQvbG9ja291dBL0AwoQR2V0UHJpdmFjeVBvbGljeRIpLnppdGFkZWwuYWRtaW4udjEuR2V0UHJpdmFjeVBvbGljeVJlcXVlc3QaKi56aXRhZGVsLmFkbWluLnYxLkdldFByaXZhY3lQb2xpY3lSZXNwb25zZSKIA5JB1gIKCFNldHRpbmdzChBQcml2YWN5IFNldHRpbmdzEhRHZXQgUHJpdmFjeSBTZXR0aW5ncxqAAlJldHVybnMgdGhlIHByaXZhY3kgc2V0dGluZ3MgY29uZmlndXJlZCBvbiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gc2V0dGluZyBjb25maWd1cmVkLiBUaGUgc2V0dGluZ3Mgc3BlY2lmeSB0aGUgdGVybXMgYW5kIHNlcnZpY2VzLCBwcml2YWN5IHBvbGljeSwgZXRjLiBBIHJlZ2lzdGVyaW5nIHVzZXIgaGFzIHRvIGFjY2VwdCB0aGUgY29uZmlndXJlZCBzZXR0aW5ncy5KHwoDMjAwEhgKFmRlZmF1bHQgcHJpdmFjeSBwb2xpY3mCtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAhMSES9wb2xpY2llcy9wcml2YWN5EpAFChNVcGRhdGVQcml2YWN5UG9saWN5Eiwueml0YWRlbC5hZG1pbi52MS5VcGRhdGVQcml2YWN5UG9saWN5UmVxdWVzdBotLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlUHJpdmFjeVBvbGljeVJlc3BvbnNlIpsEkkHlAwoIU2V0dGluZ3MKEFByaXZhY3kgU2V0dGluZ3MSF1VwZGF0ZSBQcml2YWN5IFNldHRpbmdzGswCVXBkYXRlIHRoZSBwcml2YWN5IHNldHRpbmdzIGNvbmZpZ3VyZWQgb24gdGhlIGluc3RhbmNlLiBJdCBhZmZlY3RzIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHNldHRpbmcgY29uZmlndXJlZC4gVGhlIHNldHRpbmdzIHNwZWNpZnkgdGhlIHRlcm1zIGFuZCBzZXJ2aWNlcywgcHJpdmFjeSBwb2xpY3ksIGV0Yy4gQSByZWdpc3RlcmluZyB1c2VyIGhhcyB0byBhY2NlcHQgdGhlIGNvbmZpZ3VyZWQgc2V0dGluZ3MuIFZhcmlhYmxlIHt7Lkxhbmd9fSBjYW4gYmUgc2V0IHRvIGhhdmUgZGlmZmVyZW50IGxpbmtzIGJhc2VkIG9uIHRoZSBsYW5ndWFnZS5KJwoDMjAwEiAKHmRlZmF1bHQgcHJpdmFjeSBwb2xpY3kgdXBkYXRlZEo2CgM0MDASLwoQaW52YWxpZCBhcmd1bWVudBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzgrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCFjoBKhoRL3BvbGljaWVzL3ByaXZhY3kSjwQKFUFkZE5vdGlmaWNhdGlvblBvbGljeRIuLnppdGFkZWwuYWRtaW4udjEuQWRkTm90aWZpY2F0aW9uUG9saWN5UmVxdWVzdBovLnppdGFkZWwuYWRtaW4udjEuQWRkTm90aWZpY2F0aW9uUG9saWN5UmVzcG9uc2UilAOSQdkCCghTZXR0aW5ncwoVTm90aWZpY2F0aW9uIFNldHRpbmdzEhlBZGQgTm90aWZpY2F0aW9uIFNldHRpbmdzGvQBQWRkIG5ldyBub3RpZmljYXRpb24gc2V0dGluZ3MgY29uZmlndXJlZCBvbiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gc2V0dGluZyBjb25maWd1cmVkLiBUaGUgc2V0dGluZ3Mgc3BlY2lmeSBpZiBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50IHRvIHRoZSB1c2VycyBvbiBzcGVjaWZpYyB0cmlnZ2VycyAoZS5nIHBhc3N3b3JkIGNoYW5nZWQpLkokCgMyMDASHQobZGVmYXVsdCBub3RpZmljYXRpb24gcG9saWN5grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCGzoBKiIWL3BvbGljaWVzL25vdGlmaWNhdGlvbhKRBAoVR2V0Tm90aWZpY2F0aW9uUG9saWN5Ei4ueml0YWRlbC5hZG1pbi52MS5HZXROb3RpZmljYXRpb25Qb2xpY3lSZXF1ZXN0Gi8ueml0YWRlbC5hZG1pbi52MS5HZXROb3RpZmljYXRpb25Qb2xpY3lSZXNwb25zZSKWA5JB3wIKCFNldHRpbmdzChVOb3RpZmljYXRpb24gU2V0dGluZ3MSHFJldHVybiBOb3RpZmljYXRpb24gU2V0dGluZ3Ma9wFSZXR1cm4gdGhlIG5vdGlmaWNhdGlvbiBzZXR0aW5ncyBjb25maWd1cmVkIG9uIHRoZSBpbnN0YW5jZS4gSXQgYWZmZWN0cyBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSBzZXR0aW5nIGNvbmZpZ3VyZWQuIFRoZSBzZXR0aW5ncyBzcGVjaWZ5IGlmIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9uIHNwZWNpZmljIHRyaWdnZXJzIChlLmcgcGFzc3dvcmQgY2hhbmdlZCkuSiQKAzIwMBIdChtkZWZhdWx0IG5vdGlmaWNhdGlvbiBwb2xpY3mCtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAhgSFi9wb2xpY2llcy9ub3RpZmljYXRpb24S3gQKGFVwZGF0ZU5vdGlmaWNhdGlvblBvbGljeRIxLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlTm90aWZpY2F0aW9uUG9saWN5UmVxdWVzdBoyLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlTm90aWZpY2F0aW9uUG9saWN5UmVzcG9uc2Ui2gOSQZ8DCghTZXR0aW5ncwoVTm90aWZpY2F0aW9uIFNldHRpbmdzEhxVcGRhdGUgTm90aWZpY2F0aW9uIFNldHRpbmdzGvcBVXBkYXRlIHRoZSBub3RpZmljYXRpb24gc2V0dGluZ3MgY29uZmlndXJlZCBvbiB0aGUgaW5zdGFuY2UuIEl0IGFmZmVjdHMgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gc2V0dGluZyBjb25maWd1cmVkLiBUaGUgc2V0dGluZ3Mgc3BlY2lmeSBpZiBub3RpZmljYXRpb25zIHNob3VsZCBiZSBzZW50IHRvIHRoZSB1c2VycyBvbiBzcGVjaWZpYyB0cmlnZ2VycyAoZS5nIHBhc3N3b3JkIGNoYW5nZWQpLkosCgMyMDASJQojZGVmYXVsdCBub3RpZmljYXRpb24gcG9saWN5IHVwZGF0ZWRKNgoDNDAwEi8KEGludmFsaWQgYXJndW1lbnQSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c4K1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAhs6ASoaFi9wb2xpY2llcy9ub3RpZmljYXRpb24StwQKGUdldERlZmF1bHRJbml0TWVzc2FnZVRleHQSMi56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRJbml0TWVzc2FnZVRleHRSZXF1ZXN0GjMueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0SW5pdE1lc3NhZ2VUZXh0UmVzcG9uc2UisAOSQeoCCg1NZXNzYWdlIFRleHRzEh1HZXQgRGVmYXVsdCBJbml0IE1lc3NhZ2UgVGV4dBq5AkdldCB0aGUgZGVmYXVsdCB0ZXh0IG9mIHRoZSBpbml0aWFsaXplLXVzZXIgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIHN0b3JlZCBhcyB0cmFuc2xhdGlvbiBmaWxlcyBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBlbWFpbCBpcyBzZW50IHdoZW4gYSB1c2VyIGlzIGNyZWF0ZWQgYW5kIGhhcyBlaXRoZXIgbm8gcGFzc3dvcmQgb3IgYSBub24tdmVyaWZpZWQgZW1haWwgYWRkcmVzcy6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAicSJS90ZXh0L2RlZmF1bHQvbWVzc2FnZS9pbml0L3tsYW5ndWFnZX0SrQQKGEdldEN1c3RvbUluaXRNZXNzYWdlVGV4dBIxLnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0UmVxdWVzdBoyLnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0UmVzcG9uc2UiqQOSQesCCg1NZXNzYWdlIFRleHRzEhxHZXQgQ3VzdG9tIEluaXQgTWVzc2FnZSBUZXh0GrsCR2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgaW5pdGlhbGl6ZS11c2VyIG1lc3NhZ2UvZW1haWwgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgZW1haWwgaXMgc2VudCB3aGVuIGEgdXNlciBpcyBjcmVhdGVkIGFuZCBoYXMgZWl0aGVyIG5vIHBhc3N3b3JkIG9yIGEgbm9uLXZlcmlmaWVkIGVtYWlsIGFkZHJlc3MugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIfEh0vdGV4dC9tZXNzYWdlL2luaXQve2xhbmd1YWdlfRLDBgoZU2V0RGVmYXVsdEluaXRNZXNzYWdlVGV4dBIyLnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdEluaXRNZXNzYWdlVGV4dFJlcXVlc3QaMy56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRJbml0TWVzc2FnZVRleHRSZXNwb25zZSK8BZJB+gQKDU1lc3NhZ2UgVGV4dHMSJFNldCBEZWZhdWx0IEN1c3RvbSBJbml0IE1lc3NhZ2UgVGV4dBrCBFNldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIGluaXRpYWxpemUtdXNlciBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIGVtYWlsIGlzIHNlbnQgd2hlbiBhIHVzZXIgaXMgY3JlYXRlZCBhbmQgaGFzIGVpdGhlciBubyBwYXNzd29yZCBvciBhIG5vbi12ZXJpZmllZCBlbWFpbCBhZGRyZXNzLiBUaGUgRm9sbG93aW5nIFZhcmlhYmxlcyBjYW4gYmUgdXNlZDoge3suQ29kZX19IHt7LlVzZXJOYW1lfX0ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSB7ey5OaWNrTmFtZX19IHt7LkRpc3BsYXlOYW1lfX0ge3suTGFzdEVtYWlsfX0ge3suVmVyaWZpZWRFbWFpbH19IHt7Lkxhc3RQaG9uZX19IHt7LlZlcmlmaWVkUGhvbmV9fSB7ey5QcmVmZXJyZWRMb2dpbk5hbWV9fSB7ey5Mb2dpbk5hbWVzfX0ge3suQ2hhbmdlRGF0ZX19IHt7LkNyZWF0aW9uRGF0ZX19grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCIjoBKhodL3RleHQvbWVzc2FnZS9pbml0L3tsYW5ndWFnZX0SsQQKI1Jlc2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0VG9EZWZhdWx0Ejwueml0YWRlbC5hZG1pbi52MS5SZXNldEN1c3RvbUluaXRNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QaPS56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tSW5pdE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2UijAOSQcwCCg1NZXNzYWdlIFRleHRzEilSZXNldCBDdXN0b20gSW5pdCBNZXNzYWdlIFRleHQgdG8gRGVmYXVsdBqPAlJlbW92ZXMgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBpbml0aWFsaXplLXVzZXIgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhbmQgdHJpZ2dlcnMgdGhlIHRleHQgZnJvbSB0aGUgdHJhbnNsYXRpb24gZmlsZXMgc3RvcmVkIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgTChFpYW0ucG9saWN5LmRlbGV0ZYLT5JMCHyodL3RleHQvbWVzc2FnZS9pbml0L3tsYW5ndWFnZX0S9QQKIkdldERlZmF1bHRQYXNzd29yZFJlc2V0TWVzc2FnZVRleHQSOy56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRQYXNzd29yZFJlc2V0TWVzc2FnZVRleHRSZXF1ZXN0Gjwueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0UGFzc3dvcmRSZXNldE1lc3NhZ2VUZXh0UmVzcG9uc2Ui0wOSQdICCg1NZXNzYWdlIFRleHRzEidHZXQgRGVmYXVsdCBQYXNzd29yZCBSZXNldCBNZXNzYWdlIFRleHQalwJHZXQgdGhlIGRlZmF1bHQgdGV4dCBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIHN0b3JlZCBhcyB0cmFuc2xhdGlvbiBmaWxlcyBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBlbWFpbCBpcyBzZW50IHdoZW4gYSB1c2VyIHRyaWdnZXJzIHRoZSBwYXNzd29yZCBmb3Jnb3QtcmVxdWVzdC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAmJaMBIuL3RleHQvZGVmYXVsdC9tZXNzYWdlL3Bhc3N3b3JkcmVzZXQve2xhbmd1YWdlfRIuL3RleHQvZGVhZnVsdC9tZXNzYWdlL3Bhc3N3b3JkcmVzZXQve2xhbmd1YWdlfRK5BAohR2V0Q3VzdG9tUGFzc3dvcmRSZXNldE1lc3NhZ2VUZXh0Ejoueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21QYXNzd29yZFJlc2V0TWVzc2FnZVRleHRSZXF1ZXN0Gjsueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21QYXNzd29yZFJlc2V0TWVzc2FnZVRleHRSZXNwb25zZSKaA5JB0wIKDU1lc3NhZ2UgVGV4dHMSJkdldCBDdXN0b20gUGFzc3dvcmQgUmVzZXQgTWVzc2FnZSBUZXh0GpkCR2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBlbWFpbCBpcyBzZW50IHdoZW4gYSB1c2VyIHRyaWdnZXJzIHRoZSBwYXNzd29yZCBmb3Jnb3QtcmVxdWVzdC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAigSJi90ZXh0L21lc3NhZ2UvcGFzc3dvcmRyZXNldC97bGFuZ3VhZ2V9EtQGCiJTZXREZWZhdWx0UGFzc3dvcmRSZXNldE1lc3NhZ2VUZXh0Ejsueml0YWRlbC5hZG1pbi52MS5TZXREZWZhdWx0UGFzc3dvcmRSZXNldE1lc3NhZ2VUZXh0UmVxdWVzdBo8LnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdFBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFJlc3BvbnNlIrIFkkHnBAoNTWVzc2FnZSBUZXh0cxIuU2V0IERlZmF1bHQgQ3VzdG9tIFBhc3N3b3JkIFJlc2V0IE1lc3NhZ2UgVGV4dBqlBFNldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIHBhc3N3b3JkIHJlc2V0IHVzZXIgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBlbWFpbCBpcyBzZW50IHdoZW4gYSB1c2VyIHRyaWdnZXJzIHRoZSBwYXNzd29yZCBmb3Jnb3QtcmVxdWVzdC4gVGhlIEZvbGxvd2luZyBWYXJpYWJsZXMgY2FuIGJlIHVzZWQ6IHt7LkNvZGV9fSB7ey5Vc2VyTmFtZX19IHt7LkZpcnN0TmFtZX19IHt7Lkxhc3ROYW1lfX0ge3suTmlja05hbWV9fSB7ey5EaXNwbGF5TmFtZX19IHt7Lkxhc3RFbWFpbH19IHt7LlZlcmlmaWVkRW1haWx9fSB7ey5MYXN0UGhvbmV9fSB7ey5WZXJpZmllZFBob25lfX0ge3suUHJlZmVycmVkTG9naW5OYW1lfX0ge3suTG9naW5OYW1lc319IHt7LkNoYW5nZURhdGV9fSB7ey5DcmVhdGlvbkRhdGV9fYK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAis6ASoaJi90ZXh0L21lc3NhZ2UvcGFzc3dvcmRyZXNldC97bGFuZ3VhZ2V9EuMECixSZXNldEN1c3RvbVBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFRvRGVmYXVsdBJFLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21QYXNzd29yZFJlc2V0TWVzc2FnZVRleHRUb0RlZmF1bHRSZXF1ZXN0GkYueml0YWRlbC5hZG1pbi52MS5SZXNldEN1c3RvbVBhc3N3b3JkUmVzZXRNZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlIqMDkkHaAgoNTWVzc2FnZSBUZXh0cxIzUmVzZXQgQ3VzdG9tIFBhc3N3b3JkIFJlc2V0IE1lc3NhZ2UgVGV4dCB0byBEZWZhdWx0GpMCUmVtb3ZlcyB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIHBhc3N3b3JkIHJlc2V0IHVzZXIgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhbmQgdHJpZ2dlcnMgdGhlIHRleHQgZnJvbSB0aGUgdHJhbnNsYXRpb24gZmlsZXMgc3RvcmVkIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgTChFpYW0ucG9saWN5LmRlbGV0ZYLT5JMCKComL3RleHQvbWVzc2FnZS9wYXNzd29yZHJlc2V0L3tsYW5ndWFnZX0SuAQKIEdldERlZmF1bHRWZXJpZnlFbWFpbE1lc3NhZ2VUZXh0Ejkueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0VmVyaWZ5RW1haWxNZXNzYWdlVGV4dFJlcXVlc3QaOi56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRWZXJpZnlFbWFpbE1lc3NhZ2VUZXh0UmVzcG9uc2UinAOSQc8CCg1NZXNzYWdlIFRleHRzEiVHZXQgRGVmYXVsdCBWZXJpZnkgRW1haWwgTWVzc2FnZSBUZXh0GpYCR2V0IHRoZSBkZWZhdWx0IHRleHQgb2YgdGhlIHZlcmlmeS1lbWFpbCBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgc3RvcmVkIGFzIHRyYW5zbGF0aW9uIGZpbGVzIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIGVtYWlsIGlzIHNlbnQgd2hlbiBhIHVzZXIgYWRkcyBhIG5ldyBub24tdmVyaWZpZWQgZW1haWwgYWRkcmVzcy6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAi4SLC90ZXh0L2RlZmF1bHQvbWVzc2FnZS92ZXJpZnllbWFpbC97bGFuZ3VhZ2V9Eq4ECh9HZXRDdXN0b21WZXJpZnlFbWFpbE1lc3NhZ2VUZXh0Ejgueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21WZXJpZnlFbWFpbE1lc3NhZ2VUZXh0UmVxdWVzdBo5LnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tVmVyaWZ5RW1haWxNZXNzYWdlVGV4dFJlc3BvbnNlIpUDkkHQAgoNTWVzc2FnZSBUZXh0cxIkR2V0IEN1c3RvbSBWZXJpZnkgRW1haWwgTWVzc2FnZSBUZXh0GpgCR2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgdmVyaWZ5LWVtYWlsIG1lc3NhZ2UvZW1haWwgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgZW1haWwgaXMgc2VudCB3aGVuIGEgdXNlciBhZGRzIGEgbmV3IG5vbi12ZXJpZmllZCBlbWFpbCBhZGRyZXNzLoK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCJhIkL3RleHQvbWVzc2FnZS92ZXJpZnllbWFpbC97bGFuZ3VhZ2V9EsEGCiBTZXREZWZhdWx0VmVyaWZ5RW1haWxNZXNzYWdlVGV4dBI5LnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdFZlcmlmeUVtYWlsTWVzc2FnZVRleHRSZXF1ZXN0Gjoueml0YWRlbC5hZG1pbi52MS5TZXREZWZhdWx0VmVyaWZ5RW1haWxNZXNzYWdlVGV4dFJlc3BvbnNlIqUFkkHcBAoNTWVzc2FnZSBUZXh0cxIlU2V0IERlZmF1bHQgVmVyaWZ5IEVtYWlsIE1lc3NhZ2UgVGV4dBqjBFNldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIHZlcmlmeSBlbWFpbCB1c2VyIG1lc3NhZ2UvZW1haWwgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgZW1haWwgaXMgc2VudCB3aGVuIGEgdXNlciBhZGRzIGEgbmV3IG5vbnZlcmlmaWVkIGVtYWlsIGFkZHJlc3MuIFRoZSBGb2xsb3dpbmcgVmFyaWFibGVzIGNhbiBiZSB1c2VkOiB7ey5Db2RlfX0ge3suVXNlck5hbWV9fSB7ey5GaXJzdE5hbWV9fSB7ey5MYXN0TmFtZX19IHt7Lk5pY2tOYW1lfX0ge3suRGlzcGxheU5hbWV9fSB7ey5MYXN0RW1haWx9fSB7ey5WZXJpZmllZEVtYWlsfX0ge3suTGFzdFBob25lfX0ge3suVmVyaWZpZWRQaG9uZX19IHt7LlByZWZlcnJlZExvZ2luTmFtZX19IHt7LkxvZ2luTmFtZXN9fSB7ey5DaGFuZ2VEYXRlfX0ge3suQ3JlYXRpb25EYXRlfX2CtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIpOgEqGiQvdGV4dC9tZXNzYWdlL3ZlcmlmeWVtYWlsL3tsYW5ndWFnZX0S0gQKKlJlc2V0Q3VzdG9tVmVyaWZ5RW1haWxNZXNzYWdlVGV4dFRvRGVmYXVsdBJDLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21WZXJpZnlFbWFpbE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBpELnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21WZXJpZnlFbWFpbE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2UimAOSQdECCg1NZXNzYWdlIFRleHRzEjFSZXNldCBDdXN0b20gVmVyaWZ5IEVtYWlsIE1lc3NhZ2UgVGV4dCB0byBEZWZhdWx0GowCUmVtb3ZlcyB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIGVtYWlsIHZlcmlmeSBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFuZCB0cmlnZ2VycyB0aGUgdGV4dCBmcm9tIHRoZSB0cmFuc2xhdGlvbiBmaWxlcyBzdG9yZWQgaW4gWml0YWRlbCBpdHNlbGYuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLoK1GBMKEWlhbS5wb2xpY3kuZGVsZXRlgtPkkwImKiQvdGV4dC9tZXNzYWdlL3ZlcmlmeWVtYWlsL3tsYW5ndWFnZX0S3QQKIEdldERlZmF1bHRWZXJpZnlQaG9uZU1lc3NhZ2VUZXh0Ejkueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0VmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFJlcXVlc3QaOi56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRWZXJpZnlQaG9uZU1lc3NhZ2VUZXh0UmVzcG9uc2UiwQOSQfQCCg1NZXNzYWdlIFRleHRzEiVHZXQgRGVmYXVsdCBWZXJpZnkgUGhvbmUgTWVzc2FnZSBUZXh0GrsCR2V0IHRoZSBkZWZhdWx0IHRleHQgb2YgdGhlIHZlcmlmeS1waG9uZSBtZXNzYWdlIHRoYXQgaXMgc3RvcmVkIGFzIHRyYW5zbGF0aW9uIGZpbGVzIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGEgdXNlciBhZGRzIGEgbmV3IG5vbi12ZXJpZmllZCBwaG9uZSBudW1iZXIgYW5kIGEgbm90aWZpY2F0aW9uIHByb3ZpZGVyIGlzIGNvbmZpZ3VyZWQugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIuEiwvdGV4dC9kZWZhdWx0L21lc3NhZ2UvdmVyaWZ5cGhvbmUve2xhbmd1YWdlfRLTBAofR2V0Q3VzdG9tVmVyaWZ5UGhvbmVNZXNzYWdlVGV4dBI4LnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tVmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFJlcXVlc3QaOS56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbVZlcmlmeVBob25lTWVzc2FnZVRleHRSZXNwb25zZSK6A5JB9QIKDU1lc3NhZ2UgVGV4dHMSJEdldCBDdXN0b20gVmVyaWZ5IFBob25lIE1lc3NhZ2UgVGV4dBq9AkdldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIHZlcmlmeS1waG9uZSBtZXNzYWdlIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGEgdXNlciBhZGRzIGEgbmV3IG5vbi12ZXJpZmllZCBwaG9uZSBudW1iZXIgYW5kIGEgbm90aWZpY2F0aW9uIHByb3ZpZGVyIGlzIGNvbmZpZ3VyZWQugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwImEiQvdGV4dC9tZXNzYWdlL3ZlcmlmeXBob25lL3tsYW5ndWFnZX0S7QYKIFNldERlZmF1bHRWZXJpZnlQaG9uZU1lc3NhZ2VUZXh0Ejkueml0YWRlbC5hZG1pbi52MS5TZXREZWZhdWx0VmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFJlcXVlc3QaOi56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRWZXJpZnlQaG9uZU1lc3NhZ2VUZXh0UmVzcG9uc2Ui0QWSQYgFCg1NZXNzYWdlIFRleHRzEitTZXQgRGVmYXVsdCBWZXJpZnkgUGhvbmUgUmVzZXQgTWVzc2FnZSBUZXh0GskEU2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgdmVyaWZ5LXBob25lIHVzZXIgbWVzc2FnZSB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlIGlzIHNlbnQgd2hlbiBhIHVzZXIgYWRkcyBhIG5ldyBub24tdmVyaWZpZWQgcGhvbmUgbnVtYmVyIGFuZCBhIG5vdGlmaWNhdGlvbiBwcm92aWRlciBpcyBjb25maWd1cmVkLiBUaGUgRm9sbG93aW5nIFZhcmlhYmxlcyBjYW4gYmUgdXNlZDoge3suQ29kZX19IHt7LlVzZXJOYW1lfX0ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSB7ey5OaWNrTmFtZX19IHt7LkRpc3BsYXlOYW1lfX0ge3suTGFzdEVtYWlsfX0ge3suVmVyaWZpZWRFbWFpbH19IHt7Lkxhc3RQaG9uZX19IHt7LlZlcmlmaWVkUGhvbmV9fSB7ey5QcmVmZXJyZWRMb2dpbk5hbWV9fSB7ey5Mb2dpbk5hbWVzfX0ge3suQ2hhbmdlRGF0ZX19IHt7LkNyZWF0aW9uRGF0ZX19grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCKToBKhokL3RleHQvbWVzc2FnZS92ZXJpZnlwaG9uZS97bGFuZ3VhZ2V9EswECipSZXNldEN1c3RvbVZlcmlmeVBob25lTWVzc2FnZVRleHRUb0RlZmF1bHQSQy56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tVmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QaRC56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tVmVyaWZ5UGhvbmVNZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlIpIDkkHLAgoNTWVzc2FnZSBUZXh0cxIxUmVzZXQgQ3VzdG9tIFZlcmlmeSBQaG9uZSBNZXNzYWdlIFRleHQgdG8gRGVmYXVsdBqGAlJlbW92ZXMgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSB2ZXJpZnktcGhvbmUgbWVzc2FnZSB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhbmQgdHJpZ2dlcnMgdGhlIHRleHQgZnJvbSB0aGUgdHJhbnNsYXRpb24gZmlsZXMgc3RvcmVkIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgTChFpYW0ucG9saWN5LmRlbGV0ZYLT5JMCJiokL3RleHQvbWVzc2FnZS92ZXJpZnlwaG9uZS97bGFuZ3VhZ2V9EtcECiFHZXREZWZhdWx0VmVyaWZ5U01TT1RQTWVzc2FnZVRleHQSOi56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRWZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlcXVlc3QaOy56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRWZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlc3BvbnNlIrgDkkHqAgoNTWVzc2FnZSBUZXh0cxInR2V0IERlZmF1bHQgVmVyaWZ5IE9UUCBTTVMgTWVzc2FnZSBUZXh0Gq8CR2V0IHRoZSBkZWZhdWx0IHRleHQgb2YgdGhlIHZlcmlmeSBPVFAgU01TIG1lc3NhZ2UgdGhhdCBpcyBzdG9yZWQgYXMgdHJhbnNsYXRpb24gZmlsZXMgaW4gWml0YWRlbCBpdHNlbGYuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgbWVzc2FnZSBpcyBzZW50IHdoZW4gYW4gT1RQIFNNUyBzaG91bGQgYmUgdmVyaWZpZWQgYW5kIGEgbm90aWZpY2F0aW9uIHByb3ZpZGVyIGlzIGNvbmZpZ3VyZWQugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIvEi0vdGV4dC9kZWZhdWx0L21lc3NhZ2UvdmVyaWZ5c21zb3RwL3tsYW5ndWFnZX0SzQQKIEdldEN1c3RvbVZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0Ejkueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21WZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlcXVlc3QaOi56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbVZlcmlmeVNNU09UUE1lc3NhZ2VUZXh0UmVzcG9uc2UisQOSQesCCg1NZXNzYWdlIFRleHRzEiZHZXQgQ3VzdG9tIFZlcmlmeSBPVFAgU01TIE1lc3NhZ2UgVGV4dBqxAkdldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIHZlcmlmeSBPVFAgU01TIG1lc3NhZ2UgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgbWVzc2FnZSBpcyBzZW50IHdoZW4gYW4gT1RQIFNNUyBzaG91bGQgYmUgdmVyaWZpZWQgYW5kIGEgbm90aWZpY2F0aW9uIHByb3ZpZGVyIGlzIGNvbmZpZ3VyZWQugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwInEiUvdGV4dC9tZXNzYWdlL3ZlcmlmeXNtc290cC97bGFuZ3VhZ2V9EucGCiFTZXREZWZhdWx0VmVyaWZ5U01TT1RQTWVzc2FnZVRleHQSOi56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRWZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlcXVlc3QaOy56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRWZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFJlc3BvbnNlIsgFkkH+BAoNTWVzc2FnZSBUZXh0cxItU2V0IERlZmF1bHQgVmVyaWZ5IE9UUCBTTVMgUmVzZXQgTWVzc2FnZSBUZXh0Gr0EU2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgdmVyaWZ5IE9UUCBTTVMgdXNlciBtZXNzYWdlIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGFuIE9UUCBTTVMgc2hvdWxkIGJlIHZlcmlmaWVkIGFuZCBhIG5vdGlmaWNhdGlvbiBwcm92aWRlciBpcyBjb25maWd1cmVkLiBUaGUgRm9sbG93aW5nIFZhcmlhYmxlcyBjYW4gYmUgdXNlZDoge3suQ29kZX19IHt7LlVzZXJOYW1lfX0ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSB7ey5OaWNrTmFtZX19IHt7LkRpc3BsYXlOYW1lfX0ge3suTGFzdEVtYWlsfX0ge3suVmVyaWZpZWRFbWFpbH19IHt7Lkxhc3RQaG9uZX19IHt7LlZlcmlmaWVkUGhvbmV9fSB7ey5QcmVmZXJyZWRMb2dpbk5hbWV9fSB7ey5Mb2dpbk5hbWVzfX0ge3suQ2hhbmdlRGF0ZX19IHt7LkNyZWF0aW9uRGF0ZX19grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCKjoBKholL3RleHQvbWVzc2FnZS92ZXJpZnlzbXNvdHAve2xhbmd1YWdlfRLUBAorUmVzZXRDdXN0b21WZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFRvRGVmYXVsdBJELnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21WZXJpZnlTTVNPVFBNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QaRS56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tVmVyaWZ5U01TT1RQTWVzc2FnZVRleHRUb0RlZmF1bHRSZXNwb25zZSKXA5JBzwIKDU1lc3NhZ2UgVGV4dHMSM1Jlc2V0IEN1c3RvbSBWZXJpZnkgT1RQIFNNUyBNZXNzYWdlIFRleHQgdG8gRGVmYXVsdBqIAlJlbW92ZXMgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSB2ZXJpZnkgT1RQIFNNUyBtZXNzYWdlIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFuZCB0cmlnZ2VycyB0aGUgdGV4dCBmcm9tIHRoZSB0cmFuc2xhdGlvbiBmaWxlcyBzdG9yZWQgaW4gWml0YWRlbCBpdHNlbGYuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLoK1GBMKEWlhbS5wb2xpY3kuZGVsZXRlgtPkkwInKiUvdGV4dC9tZXNzYWdlL3ZlcmlmeXNtc290cC97bGFuZ3VhZ2V9EuEECiNHZXREZWZhdWx0VmVyaWZ5RW1haWxPVFBNZXNzYWdlVGV4dBI8LnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdFZlcmlmeUVtYWlsT1RQTWVzc2FnZVRleHRSZXF1ZXN0Gj0ueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0VmVyaWZ5RW1haWxPVFBNZXNzYWdlVGV4dFJlc3BvbnNlIrwDkkHsAgoNTWVzc2FnZSBUZXh0cxInR2V0IERlZmF1bHQgVmVyaWZ5IE9UUCBTTVMgTWVzc2FnZSBUZXh0GrECR2V0IHRoZSBkZWZhdWx0IHRleHQgb2YgdGhlIHZlcmlmeSBPVFAgRW1haWwgbWVzc2FnZSB0aGF0IGlzIHN0b3JlZCBhcyB0cmFuc2xhdGlvbiBmaWxlcyBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlIGlzIHNlbnQgd2hlbiBhbiBPVFAgU01TIHNob3VsZCBiZSB2ZXJpZmllZCBhbmQgYSBub3RpZmljYXRpb24gcHJvdmlkZXIgaXMgY29uZmlndXJlZC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAjESLy90ZXh0L2RlZmF1bHQvbWVzc2FnZS92ZXJpZnllbWFpbG90cC97bGFuZ3VhZ2V9EtAECiJHZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0Ejsueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0UmVxdWVzdBo8LnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tVmVyaWZ5RW1haWxPVFBNZXNzYWdlVGV4dFJlc3BvbnNlIq4DkkHmAgoNTWVzc2FnZSBUZXh0cxImR2V0IEN1c3RvbSBWZXJpZnkgT1RQIFNNUyBNZXNzYWdlIFRleHQarAJHZXQgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBPVFAgRW1haWwgbWVzc2FnZSB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlIGlzIHNlbnQgd2hlbiBhbiBPVFAgU01TIHNob3VsZCBiZSB2ZXJpZmllZCBhbmQgYSBub3RpZmljYXRpb24gcHJvdmlkZXIgaXMgY29uZmlndXJlZC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAikSJy90ZXh0L21lc3NhZ2UvdmVyaWZ5ZW1haWxvdHAve2xhbmd1YWdlfRLqBgojU2V0RGVmYXVsdFZlcmlmeUVtYWlsT1RQTWVzc2FnZVRleHQSPC56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRWZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0UmVxdWVzdBo9LnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdFZlcmlmeUVtYWlsT1RQTWVzc2FnZVRleHRSZXNwb25zZSLFBZJB+QQKDU1lc3NhZ2UgVGV4dHMSLVNldCBEZWZhdWx0IFZlcmlmeSBPVFAgU01TIFJlc2V0IE1lc3NhZ2UgVGV4dBq4BFNldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIE9UUCBFbWFpbCB1c2VyIG1lc3NhZ2UgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgbWVzc2FnZSBpcyBzZW50IHdoZW4gYW4gT1RQIFNNUyBzaG91bGQgYmUgdmVyaWZpZWQgYW5kIGEgbm90aWZpY2F0aW9uIHByb3ZpZGVyIGlzIGNvbmZpZ3VyZWQuIFRoZSBGb2xsb3dpbmcgVmFyaWFibGVzIGNhbiBiZSB1c2VkOiB7ey5Db2RlfX0ge3suVXNlck5hbWV9fSB7ey5GaXJzdE5hbWV9fSB7ey5MYXN0TmFtZX19IHt7Lk5pY2tOYW1lfX0ge3suRGlzcGxheU5hbWV9fSB7ey5MYXN0RW1haWx9fSB7ey5WZXJpZmllZEVtYWlsfX0ge3suTGFzdFBob25lfX0ge3suVmVyaWZpZWRQaG9uZX19IHt7LlByZWZlcnJlZExvZ2luTmFtZX19IHt7LkxvZ2luTmFtZXN9fSB7ey5DaGFuZ2VEYXRlfX0ge3suQ3JlYXRpb25EYXRlfX2CtRgSChBpYW0ucG9saWN5LndyaXRlgtPkkwIsOgEqGicvdGV4dC9tZXNzYWdlL3ZlcmlmeWVtYWlsb3RwL3tsYW5ndWFnZX0S1wQKLVJlc2V0Q3VzdG9tVmVyaWZ5RW1haWxPVFBNZXNzYWdlVGV4dFRvRGVmYXVsdBJGLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBpHLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21WZXJpZnlFbWFpbE9UUE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2UilAOSQcoCCg1NZXNzYWdlIFRleHRzEjNSZXNldCBDdXN0b20gVmVyaWZ5IE9UUCBTTVMgTWVzc2FnZSBUZXh0IHRvIERlZmF1bHQagwJSZW1vdmVzIHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgT1RQIEVtYWlsIG1lc3NhZ2UgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGZyb20gdGhlIHRyYW5zbGF0aW9uIGZpbGVzIHN0b3JlZCBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQugrUYEwoRaWFtLnBvbGljeS5kZWxldGWC0+STAikqJy90ZXh0L21lc3NhZ2UvdmVyaWZ5ZW1haWxvdHAve2xhbmd1YWdlfRLyBAoiR2V0RGVmYXVsdERvbWFpbkNsYWltZWRNZXNzYWdlVGV4dBI7LnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdERvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFJlcXVlc3QaPC56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHREb21haW5DbGFpbWVkTWVzc2FnZVRleHRSZXNwb25zZSLQA5JBgQMKDU1lc3NhZ2UgVGV4dHMSJ0dldCBEZWZhdWx0IERvbWFpbiBDbGFpbWVkIE1lc3NhZ2UgVGV4dBrGAkdldCB0aGUgZGVmYXVsdCB0ZXh0IG9mIHRoZSBkb21haW4gY2xhaW1lZCBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgc3RvcmVkIGFzIHRyYW5zbGF0aW9uIGZpbGVzIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGFuIG9yZ2FuaXphdGlvbiBjbGFpbXMgYSBkb21haW4gYW5kIGEgdXNlciBvZiB0aGlzIGRvbWFpbiBleGlzdHMgaW4gYW5vdGhlciBvcmdhbml6YXRpb24ugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIwEi4vdGV4dC9kZWZhdWx0L21lc3NhZ2UvZG9tYWluY2xhaW1lZC97bGFuZ3VhZ2V9EugECiFHZXRDdXN0b21Eb21haW5DbGFpbWVkTWVzc2FnZVRleHQSOi56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbURvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFJlcXVlc3QaOy56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbURvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFJlc3BvbnNlIskDkkGCAwoNTWVzc2FnZSBUZXh0cxImR2V0IEN1c3RvbSBEb21haW4gQ2xhaW1lZCBNZXNzYWdlIFRleHQayAJHZXQgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBkb21haW4gY2xhaW1lZCBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGFuIG9yZ2FuaXphdGlvbiBjbGFpbXMgYSBkb21haW4gYW5kIGEgdXNlciBvZiB0aGlzIGRvbWFpbiBleGlzdHMgaW4gYW5vdGhlciBvcmdhbml6YXRpb24ugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIoEiYvdGV4dC9tZXNzYWdlL2RvbWFpbmNsYWltZWQve2xhbmd1YWdlfRKRBwoiU2V0RGVmYXVsdERvbWFpbkNsYWltZWRNZXNzYWdlVGV4dBI7LnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdERvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFJlcXVlc3QaPC56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHREb21haW5DbGFpbWVkTWVzc2FnZVRleHRSZXNwb25zZSLvBZJBpAUKDU1lc3NhZ2UgVGV4dHMSJ1NldCBEZWZhdWx0IERvbWFpbiBDbGFpbWVkIE1lc3NhZ2UgVGV4dBrpBFNldCB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIGRvbWFpbiBjbGFpbWVkIG1lc3NhZ2UvZW1haWwgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgbWVzc2FnZS9lbWFpbCBpcyBzZW50IHdoZW4gYW4gb3JnYW5pemF0aW9uIGNsYWltcyBhIGRvbWFpbiBhbmQgYSB1c2VyIG9mIHRoaXMgZG9tYWluIGV4aXN0cyBpbiBhbm90aGVyIG9yZ2FuaXphdGlvbi4gVGhlIEZvbGxvd2luZyBWYXJpYWJsZXMgY2FuIGJlIHVzZWQ6IHt7LkRvbWFpbn19IHt7LlRlbXBVc2VybmFtZX19IHt7LlVzZXJOYW1lfX0ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSB7ey5OaWNrTmFtZX19IHt7LkRpc3BsYXlOYW1lfX0ge3suTGFzdEVtYWlsfX0ge3suVmVyaWZpZWRFbWFpbH19IHt7Lkxhc3RQaG9uZX19IHt7LlZlcmlmaWVkUGhvbmV9fSB7ey5QcmVmZXJyZWRMb2dpbk5hbWV9fSB7ey5Mb2dpbk5hbWVzfX0ge3suQ2hhbmdlRGF0ZX19IHt7LkNyZWF0aW9uRGF0ZX19grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCKzoBKhomL3RleHQvbWVzc2FnZS9kb21haW5jbGFpbWVkL3tsYW5ndWFnZX0S2AQKLFJlc2V0Q3VzdG9tRG9tYWluQ2xhaW1lZE1lc3NhZ2VUZXh0VG9EZWZhdWx0EkUueml0YWRlbC5hZG1pbi52MS5SZXNldEN1c3RvbURvbWFpbkNsYWltZWRNZXNzYWdlVGV4dFRvRGVmYXVsdFJlcXVlc3QaRi56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tRG9tYWluQ2xhaW1lZE1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2UimAOSQc8CCg1NZXNzYWdlIFRleHRzEjNSZXNldCBDdXN0b20gRG9tYWluIENsYWltZWQgTWVzc2FnZSBUZXh0IHRvIERlZmF1bHQaiAJSZW1vdmVzIHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgZG9tYWluIGNsYWltZWQgbWVzc2FnZSB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhbmQgdHJpZ2dlcnMgdGhlIHRleHQgZnJvbSB0aGUgdHJhbnNsYXRpb24gZmlsZXMgc3RvcmVkIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgTChFpYW0ucG9saWN5LmRlbGV0ZYLT5JMCKComL3RleHQvbWVzc2FnZS9kb21haW5jbGFpbWVkL3tsYW5ndWFnZX0StwUKLUdldERlZmF1bHRQYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dBJGLnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdFBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0UmVxdWVzdBpHLnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdFBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0UmVzcG9uc2Ui9AOSQZkDCg1NZXNzYWdlIFRleHRzEjJHZXQgRGVmYXVsdCBQYXNzd29yZGxlc3MgUmVnaXN0cmF0aW9uIE1lc3NhZ2UgVGV4dBrTAkdldCB0aGUgZGVmYXVsdCB0ZXh0IG9mIHRoZSBkb21haW4gY2xhaW1lZCBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgc3RvcmVkIGFzIHRyYW5zbGF0aW9uIGZpbGVzIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGEgdXNlciByZXF1ZXN0cyBwYXNzd29yZGxlc3MvcGFzc2tleSByZWdpc3RyYXRpb24gYXMgZW1haWwsIHRvIGJlIGFibGUgdG8gY29uZmlndXJlIG9uIGFub3RoZXIgZGV2aWNlLoK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCPBI6L3RleHQvZGVmYXVsdC9tZXNzYWdlL3Bhc3N3b3JkbGVzc19yZWdpc3RyYXRpb24ve2xhbmd1YWdlfRLABQosR2V0Q3VzdG9tUGFzc3dvcmRsZXNzUmVnaXN0cmF0aW9uTWVzc2FnZVRleHQSRS56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbVBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0UmVxdWVzdBpGLnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tUGFzc3dvcmRsZXNzUmVnaXN0cmF0aW9uTWVzc2FnZVRleHRSZXNwb25zZSKABJJBrQMKDU1lc3NhZ2UgVGV4dHMSMUdldCBDdXN0b20gUGFzc3dvcmRsZXNzIFJlZ2lzdHJhdGlvbiBNZXNzYWdlIFRleHQa6AJHZXQgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBwYXNzd29yZGxlc3MvcGFzc2tleSByZWdpc3RyYXRpb24gbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlIGlzIHNlbnQgd2hlbiBhIHVzZXIgcmVxdWVzdHMgcGFzc3dvcmRsZXNzL3Bhc3NrZXkgcmVnaXN0cmF0aW9uIGFzIGVtYWlsLCB0byBiZSBhYmxlIHRvIGNvbmZpZ3VyZSBvbiBhbm90aGVyIGRldmljZS6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAjQSMi90ZXh0L21lc3NhZ2UvcGFzc3dvcmRsZXNzX3JlZ2lzdHJhdGlvbi97bGFuZ3VhZ2V9EswHCi1TZXREZWZhdWx0UGFzc3dvcmRsZXNzUmVnaXN0cmF0aW9uTWVzc2FnZVRleHQSRi56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRQYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFJlcXVlc3QaRy56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRQYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFJlc3BvbnNlIokGkkGyBQoNTWVzc2FnZSBUZXh0cxIyU2V0IERlZmF1bHQgUGFzc3dvcmRsZXNzIFJlZ2lzdHJhdGlvbiBNZXNzYWdlIFRleHQa7ARTZXQgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBwYXNzd29yZGxlc3MvcGFzc2tleSByZWdpc3RyYXRpb24gbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlL2VtYWlsIGlzIHNlbnQgd2hlbiBhIHVzZXIgcmVxdWVzdHMgcGFzc3dvcmRsZXNzL3Bhc3NrZXkgcmVnaXN0cmF0aW9uIGFzIGVtYWlsLCB0byBiZSBhYmxlIHRvIGNvbmZpZ3VyZSBvbiBhbm90aGVyIGRldmljZS4gIFRoZSBGb2xsb3dpbmcgVmFyaWFibGVzIGNhbiBiZSB1c2VkOiB7ey5Vc2VyTmFtZX19IHt7LkZpcnN0TmFtZX19IHt7Lkxhc3ROYW1lfX0ge3suTmlja05hbWV9fSB7ey5EaXNwbGF5TmFtZX19IHt7Lkxhc3RFbWFpbH19IHt7LlZlcmlmaWVkRW1haWx9fSB7ey5MYXN0UGhvbmV9fSB7ey5WZXJpZmllZFBob25lfX0ge3suUHJlZmVycmVkTG9naW5OYW1lfX0ge3suTG9naW5OYW1lc319IHt7LkNoYW5nZURhdGV9fSB7ey5DcmVhdGlvbkRhdGV9fYK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAjc6ASoaMi90ZXh0L21lc3NhZ2UvcGFzc3dvcmRsZXNzX3JlZ2lzdHJhdGlvbi97bGFuZ3VhZ2V9EqMFCjdSZXNldEN1c3RvbVBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0VG9EZWZhdWx0ElAueml0YWRlbC5hZG1pbi52MS5SZXNldEN1c3RvbVBhc3N3b3JkbGVzc1JlZ2lzdHJhdGlvbk1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBpRLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21QYXNzd29yZGxlc3NSZWdpc3RyYXRpb25NZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlIsIDkkHtAgoNTWVzc2FnZSBUZXh0cxI+UmVzZXQgQ3VzdG9tIFBhc3N3b3JkbGVzcyBSZWdpc3RyYXRpb24gTWVzc2FnZSBUZXh0IHRvIERlZmF1bHQamwJSZW1vdmVzIHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgcGFzc3dvcmRsZXNzL3Bhc3NrZXkgcmVnaXN0cmF0aW9uIG1lc3NhZ2UgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGZyb20gdGhlIHRyYW5zbGF0aW9uIGZpbGVzIHN0b3JlZCBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQugrUYEwoRaWFtLnBvbGljeS5kZWxldGWC0+STAjQqMi90ZXh0L21lc3NhZ2UvcGFzc3dvcmRsZXNzX3JlZ2lzdHJhdGlvbi97bGFuZ3VhZ2V9EsoECiNHZXREZWZhdWx0UGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dBI8LnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdFBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRSZXF1ZXN0Gj0ueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0UGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dFJlc3BvbnNlIqUDkkHUAgoNTWVzc2FnZSBUZXh0cxIpR2V0IERlZmF1bHQgUGFzc3dvcmQgQ2hhbmdlZCBNZXNzYWdlIFRleHQalwJHZXQgdGhlIGRlZmF1bHQgdGV4dCBvZiB0aGUgcGFzc3dvcmQtY2hhbmdlZCBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgc3RvcmVkIGFzIHRyYW5zbGF0aW9uIGZpbGVzIGluIFppdGFkZWwgaXRzZWxmLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIHRoZSBwYXNzd29yZCBvZiBhIHVzZXIgaGFzIGJlZW4gY2hhbmdlZC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAjISMC90ZXh0L2RlZmF1bHQvbWVzc2FnZS9wYXNzd29yZF9jaGFuZ2Uve2xhbmd1YWdlfRLABAoiR2V0Q3VzdG9tUGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dBI7LnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tUGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dFJlcXVlc3QaPC56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbVBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRSZXNwb25zZSKeA5JB1QIKDU1lc3NhZ2UgVGV4dHMSKEdldCBDdXN0b20gUGFzc3dvcmQgQ2hhbmdlZCBNZXNzYWdlIFRleHQamQJHZXQgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBwYXNzd29yZC1jaGFuZ2VkIG1lc3NhZ2UvZW1haWwgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2VudCB0byB0aGUgdXNlcnMgb2YgYWxsIG9yZ2FuaXphdGlvbnMsIHRoYXQgZG8gbm90IGhhdmUgYSBjdXN0b20gdGV4dCBjb25maWd1cmVkLiBUaGUgbWVzc2FnZSBpcyBzZW50IHdoZW4gdGhlIHBhc3N3b3JkIG9mIGEgdXNlciBoYXMgYmVlbiBjaGFuZ2VkLoK1GBEKD2lhbS5wb2xpY3kucmVhZILT5JMCKhIoL3RleHQvbWVzc2FnZS9wYXNzd29yZF9jaGFuZ2Uve2xhbmd1YWdlfRLMBgojU2V0RGVmYXVsdFBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHQSPC56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRQYXNzd29yZENoYW5nZU1lc3NhZ2VUZXh0UmVxdWVzdBo9LnppdGFkZWwuYWRtaW4udjEuU2V0RGVmYXVsdFBhc3N3b3JkQ2hhbmdlTWVzc2FnZVRleHRSZXNwb25zZSKnBZJB2gQKDU1lc3NhZ2UgVGV4dHMSKVNldCBEZWZhdWx0IFBhc3N3b3JkIENoYW5nZWQgTWVzc2FnZSBUZXh0Gp0EU2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgcGFzc3dvcmQtY2hhbmdlZCBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UvZW1haWwgaXMgc2VudCB3aGVuIHRoZSBwYXNzd29yZCBvZiBhIHVzZXIgaGFzIGJlZW4gY2hhbmdlZC4gIFRoZSBGb2xsb3dpbmcgVmFyaWFibGVzIGNhbiBiZSB1c2VkOiB7ey5Vc2VyTmFtZX19IHt7LkZpcnN0TmFtZX19IHt7Lkxhc3ROYW1lfX0ge3suTmlja05hbWV9fSB7ey5EaXNwbGF5TmFtZX19IHt7Lkxhc3RFbWFpbH19IHt7LlZlcmlmaWVkRW1haWx9fSB7ey5MYXN0UGhvbmV9fSB7ey5WZXJpZmllZFBob25lfX0ge3suUHJlZmVycmVkTG9naW5OYW1lfX0ge3suTG9naW5OYW1lc319IHt7LkNoYW5nZURhdGV9fSB7ey5DcmVhdGlvbkRhdGV9fYK1GBIKEGlhbS5wb2xpY3kud3JpdGWC0+STAi06ASoaKC90ZXh0L21lc3NhZ2UvcGFzc3dvcmRfY2hhbmdlL3tsYW5ndWFnZX0S4QQKLVJlc2V0Q3VzdG9tUGFzc3dvcmRDaGFuZ2VNZXNzYWdlVGV4dFRvRGVmYXVsdBJGLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21QYXNzd29yZENoYW5nZU1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVxdWVzdBpHLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21QYXNzd29yZENoYW5nZU1lc3NhZ2VUZXh0VG9EZWZhdWx0UmVzcG9uc2UingOSQdMCCg1NZXNzYWdlIFRleHRzEjVSZXNldCBDdXN0b20gUGFzc3dvcmQgQ2hhbmdlZCBNZXNzYWdlIFRleHQgdG8gRGVmYXVsdBqKAlJlbW92ZXMgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBwYXNzd29yZC1jaGFuZ2VkIG1lc3NhZ2UgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGZyb20gdGhlIHRyYW5zbGF0aW9uIGZpbGVzIHN0b3JlZCBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQugrUYEwoRaWFtLnBvbGljeS5kZWxldGWC0+STAioqKC90ZXh0L21lc3NhZ2UvcGFzc3dvcmRfY2hhbmdlL3tsYW5ndWFnZX0SqgQKH0dldERlZmF1bHRJbnZpdGVVc2VyTWVzc2FnZVRleHQSOC56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRJbnZpdGVVc2VyTWVzc2FnZVRleHRSZXF1ZXN0Gjkueml0YWRlbC5hZG1pbi52MS5HZXREZWZhdWx0SW52aXRlVXNlck1lc3NhZ2VUZXh0UmVzcG9uc2UikQOSQcQCCg1NZXNzYWdlIFRleHRzEiRHZXQgRGVmYXVsdCBJbnZpdGUgVXNlciBNZXNzYWdlIFRleHQajAJHZXQgdGhlIGRlZmF1bHQgdGV4dCBvZiB0aGUgaW52aXRlIHVzZXIgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIHN0b3JlZCBhcyB0cmFuc2xhdGlvbiBmaWxlcyBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlIGlzIHNlbnQgd2hlbiBhbiBpbnZpdGUgY29kZSBlbWFpbCBpcyByZXF1ZXN0ZWQugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwIuEiwvdGV4dC9kZWZhdWx0L21lc3NhZ2UvaW52aXRlX3VzZXIve2xhbmd1YWdlfRKgBAoeR2V0Q3VzdG9tSW52aXRlVXNlck1lc3NhZ2VUZXh0Ejcueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21JbnZpdGVVc2VyTWVzc2FnZVRleHRSZXF1ZXN0Gjgueml0YWRlbC5hZG1pbi52MS5HZXRDdXN0b21JbnZpdGVVc2VyTWVzc2FnZVRleHRSZXNwb25zZSKKA5JBxQIKDU1lc3NhZ2UgVGV4dHMSI0dldCBDdXN0b20gSW52aXRlIFVzZXIgTWVzc2FnZSBUZXh0Go4CR2V0IHRoZSBjdXN0b20gdGV4dCBvZiB0aGUgaW52aXRlIHVzZXIgbWVzc2FnZS9lbWFpbCB0aGF0IGlzIG92ZXJ3cml0dGVuIG9uIHRoZSBpbnN0YW5jZSBhcyBzZXR0aW5ncy9kYXRhYmFzZS4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQuIFRoZSBtZXNzYWdlIGlzIHNlbnQgd2hlbiBhbiBpbnZpdGUgY29kZSBlbWFpbCBpcyByZXF1ZXN0ZWQugrUYEQoPaWFtLnBvbGljeS5yZWFkgtPkkwImEiQvdGV4dC9tZXNzYWdlL2ludml0ZV91c2VyL3tsYW5ndWFnZX0SugYKH1NldERlZmF1bHRJbnZpdGVVc2VyTWVzc2FnZVRleHQSOC56aXRhZGVsLmFkbWluLnYxLlNldERlZmF1bHRJbnZpdGVVc2VyTWVzc2FnZVRleHRSZXF1ZXN0Gjkueml0YWRlbC5hZG1pbi52MS5TZXREZWZhdWx0SW52aXRlVXNlck1lc3NhZ2VUZXh0UmVzcG9uc2UioQWSQdgECg1NZXNzYWdlIFRleHRzEiRTZXQgRGVmYXVsdCBJbnZpdGUgVXNlciBNZXNzYWdlIFRleHQaoARTZXQgdGhlIGN1c3RvbSB0ZXh0IG9mIHRoZSBpbnZpdGUgdXNlciBtZXNzYWdlL2VtYWlsIHRoYXQgaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC4gVGhlIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGFuIGludml0ZSBjb2RlIGVtYWlsIGlzIHJlcXVlc3RlZC4gVGhlIEZvbGxvd2luZyBWYXJpYWJsZXMgY2FuIGJlIHVzZWQ6IHt7LlVzZXJOYW1lfX0ge3suRmlyc3ROYW1lfX0ge3suTGFzdE5hbWV9fSB7ey5OaWNrTmFtZX19IHt7LkRpc3BsYXlOYW1lfX0ge3suTGFzdEVtYWlsfX0ge3suVmVyaWZpZWRFbWFpbH19IHt7Lkxhc3RQaG9uZX19IHt7LlZlcmlmaWVkUGhvbmV9fSB7ey5QcmVmZXJyZWRMb2dpbk5hbWV9fSB7ey5Mb2dpbk5hbWVzfX0ge3suQ2hhbmdlRGF0ZX19IHt7LkNyZWF0aW9uRGF0ZX19IHt7LkFwcGxpY2F0aW9uTmFtZX19grUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCKToBKhokL3RleHQvbWVzc2FnZS9pbnZpdGVfdXNlci97bGFuZ3VhZ2V9EscECilSZXNldEN1c3RvbUludml0ZVVzZXJNZXNzYWdlVGV4dFRvRGVmYXVsdBJCLnppdGFkZWwuYWRtaW4udjEuUmVzZXRDdXN0b21JbnZpdGVVc2VyTWVzc2FnZVRleHRUb0RlZmF1bHRSZXF1ZXN0GkMueml0YWRlbC5hZG1pbi52MS5SZXNldEN1c3RvbUludml0ZVVzZXJNZXNzYWdlVGV4dFRvRGVmYXVsdFJlc3BvbnNlIpADkkHJAgoNTWVzc2FnZSBUZXh0cxIwUmVzZXQgQ3VzdG9tIEludml0ZSBVc2VyIE1lc3NhZ2UgVGV4dCB0byBEZWZhdWx0GoUCUmVtb3ZlcyB0aGUgY3VzdG9tIHRleHQgb2YgdGhlIGludml0ZSB1c2VyIG1lc3NhZ2UgdGhhdCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGZyb20gdGhlIHRyYW5zbGF0aW9uIGZpbGVzIHN0b3JlZCBpbiBaaXRhZGVsIGl0c2VsZi4gVGhlIHRleHQgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQugrUYEwoRaWFtLnBvbGljeS5kZWxldGWC0+STAiYqJC90ZXh0L21lc3NhZ2UvaW52aXRlX3VzZXIve2xhbmd1YWdlfRK8AwoUR2V0RGVmYXVsdExvZ2luVGV4dHMSLS56aXRhZGVsLmFkbWluLnYxLkdldERlZmF1bHRMb2dpblRleHRzUmVxdWVzdBouLnppdGFkZWwuYWRtaW4udjEuR2V0RGVmYXVsdExvZ2luVGV4dHNSZXNwb25zZSLEApJBhQIKC0xvZ2luIFRleHRzEhZHZXQgRGVmYXVsdCBMb2dpbiBUZXh0Gt0BR2V0IHRoZSBkZWZhdWx0IHRleHRzIGZvciB0aGUgbG9naW4gYW5kIHJlZ2lzdGVyIFVJIG9mIFpJVEFERUwsIHdoaWNoIGFyZSBzdG9yZWQgYXMgdHJhbnNsYXRpb24gZmlsZXMgaW4gWml0YWRlbCBpdHNlbGYuIFRoZSB0ZXh0IHdpbGwgYmUgc2hvd24gdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAiASHi90ZXh0L2RlZmF1bHQvbG9naW4ve2xhbmd1YWdlfRKxAwoTR2V0Q3VzdG9tTG9naW5UZXh0cxIsLnppdGFkZWwuYWRtaW4udjEuR2V0Q3VzdG9tTG9naW5UZXh0c1JlcXVlc3QaLS56aXRhZGVsLmFkbWluLnYxLkdldEN1c3RvbUxvZ2luVGV4dHNSZXNwb25zZSK8ApJBhQIKC0xvZ2luIFRleHRzEhVHZXQgQ3VzdG9tIExvZ2luIFRleHQa3gFHZXQgdGhlIGN1c3RvbSB0ZXh0cyBmb3IgdGhlIGxvZ2luIGFuZCByZWdpc3RlciBVSSBvZiBaSVRBREVMLCB3aGljaCBpcyBvdmVyd3JpdHRlbiBvbiB0aGUgaW5zdGFuY2UgYXMgc2V0dGluZ3MvZGF0YWJhc2UuIFRoZSB0ZXh0IHdpbGwgYmUgc2hvd24gdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgRCg9pYW0ucG9saWN5LnJlYWSC0+STAhgSFi90ZXh0L2xvZ2luL3tsYW5ndWFnZX0StQMKElNldEN1c3RvbUxvZ2luVGV4dBIsLnppdGFkZWwuYWRtaW4udjEuU2V0Q3VzdG9tTG9naW5UZXh0c1JlcXVlc3QaLS56aXRhZGVsLmFkbWluLnYxLlNldEN1c3RvbUxvZ2luVGV4dHNSZXNwb25zZSLBApJBhgIKC0xvZ2luIFRleHRzEhZTZXQgRGVmYXVsdCBMb2dpbiBUZXh0Gt4BU2V0IHRoZSBjdXN0b20gdGV4dHMgZm9yIHRoZSBsb2dpbiBhbmQgcmVnaXN0ZXIgVUkgb2YgWklUQURFTCwgd2hpY2ggaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFzIHNldHRpbmdzL2RhdGFiYXNlLiBUaGUgdGV4dCB3aWxsIGJlIHNob3duIHRvIHRoZSB1c2VycyBvZiBhbGwgb3JnYW5pemF0aW9ucywgdGhhdCBkbyBub3QgaGF2ZSBhIGN1c3RvbSB0ZXh0IGNvbmZpZ3VyZWQugrUYEgoQaWFtLnBvbGljeS53cml0ZYLT5JMCGzoBKhoWL3RleHQvbG9naW4ve2xhbmd1YWdlfRKZBAodUmVzZXRDdXN0b21Mb2dpblRleHRUb0RlZmF1bHQSNy56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tTG9naW5UZXh0c1RvRGVmYXVsdFJlcXVlc3QaOC56aXRhZGVsLmFkbWluLnYxLlJlc2V0Q3VzdG9tTG9naW5UZXh0c1RvRGVmYXVsdFJlc3BvbnNlIoQDkkHLAgoLTG9naW4gVGV4dHMSIlJlc2V0IEN1c3RvbSBMb2dpbiBUZXh0IHRvIERlZmF1bHQalwJSZW1vdmVzIHRoZSBjdXN0b20gdGV4dHMgZm9yIHRoZSBsb2dpbiBhbmQgcmVnaXN0ZXIgVUkgb2YgWklUQURFTCwgd2hpY2ggaXMgb3ZlcndyaXR0ZW4gb24gdGhlIGluc3RhbmNlIGFuZCB0cmlnZ2VycyB0aGUgdGV4dCBmcm9tIHRoZSB0cmFuc2xhdGlvbiBmaWxlcyBzdG9yZWQgaW4gWml0YWRlbCBpdHNlbGYuIFRoZSB0ZXh0IHdpbGwgYmUgc2hvd24gdG8gdGhlIHVzZXJzIG9mIGFsbCBvcmdhbml6YXRpb25zLCB0aGF0IGRvIG5vdCBoYXZlIGEgY3VzdG9tIHRleHQgY29uZmlndXJlZC6CtRgTChFpYW0ucG9saWN5LmRlbGV0ZYLT5JMCGCoWL3RleHQvbG9naW4ve2xhbmd1YWdlfRK3AwoSTGlzdElBTU1lbWJlclJvbGVzEisueml0YWRlbC5hZG1pbi52MS5MaXN0SUFNTWVtYmVyUm9sZXNSZXF1ZXN0Giwueml0YWRlbC5hZG1pbi52MS5MaXN0SUFNTWVtYmVyUm9sZXNSZXNwb25zZSLFApJBjgIKB01lbWJlcnMKFlpJVEFERUwgQWRtaW5pc3RyYXRvcnMSGkxpc3QgaW5zdGFuY2UgTWVtYmVyIFJvbGVzGqIBTWVtYmVycyBhcmUgdXNlcnMgd2l0aCBwZXJtaXNzaW9uIHRvIGFkbWluaXN0cmF0ZSBaaXRhZGVsIG9uIGRpZmZlcmVudCBsZXZlbHMuIFRoaXMgcmVxdWVzdCByZXR1cm5zIGFsbCByb2xlcyBwb3NzaWJsZSBmb3IgYSBaaXRhZGVsIG1lbWJlciBvbiB0aGUgaW5zdGFuY2UgbGV2ZWwuSioKAzIwMBIjCiFyb2xlcyBvbiB0aGUgaW5zdGFuY2Ugb2YgdGhlIHVzZXKCtRgRCg9pYW0ubWVtYmVyLnJlYWSC0+STAhgiFi9tZW1iZXJzL3JvbGVzL19zZWFyY2gS3QEKDkxpc3RJQU1NZW1iZXJzEicueml0YWRlbC5hZG1pbi52MS5MaXN0SUFNTWVtYmVyc1JlcXVlc3QaKC56aXRhZGVsLmFkbWluLnYxLkxpc3RJQU1NZW1iZXJzUmVzcG9uc2UieJJBRQoHTWVtYmVycwoWWklUQURFTCBBZG1pbmlzdHJhdG9yc0ogCgMyMDASGQoXbWVtYmVycyBvZiB0aGUgaW5zdGFuY2VYAYK1GBEKD2lhbS5tZW1iZXIucmVhZILT5JMCFToBKiIQL21lbWJlcnMvX3NlYXJjaBKeAgoMQWRkSUFNTWVtYmVyEiUueml0YWRlbC5hZG1pbi52MS5BZGRJQU1NZW1iZXJSZXF1ZXN0GiYueml0YWRlbC5hZG1pbi52MS5BZGRJQU1NZW1iZXJSZXNwb25zZSK+AZJBkQEKB01lbWJlcnMKFlpJVEFERUwgQWRtaW5pc3RyYXRvcnNKJQoDMjAwEh4KHE1lbWJlciBhZGRlZCB0byB0aGUgaW5zdGFuY2VKRQoDNDAwEj4KH3VzZXIgbm90IGZvdW5kIG9yIGludmFsaWQgcm9sZXMSGwoZGhcjL2RlZmluaXRpb25zL3JwY1N0YXR1c1gBgrUYEgoQaWFtLm1lbWJlci53cml0ZYLT5JMCDToBKiIIL21lbWJlcnMSqQIKD1VwZGF0ZUlBTU1lbWJlchIoLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlSUFNTWVtYmVyUmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuVXBkYXRlSUFNTWVtYmVyUmVzcG9uc2UiwAGSQYkBCgdNZW1iZXJzChZaSVRBREVMIEFkbWluaXN0cmF0b3JzSicKAzIwMBIgCh5NZW1iZXIgb2YgdGhlIGluc3RhbmNlIHVwZGF0ZWRKOwoDNDAwEjQKFWludmFsaWQgdXNlciBvciByb2xlcxIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgSChBpYW0ubWVtYmVyLndyaXRlgtPkkwIXOgEqGhIvbWVtYmVycy97dXNlcl9pZH0SngIKD1JlbW92ZUlBTU1lbWJlchIoLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlSUFNTWVtYmVyUmVxdWVzdBopLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlSUFNTWVtYmVyUmVzcG9uc2UitQGSQYABCgdNZW1iZXJzChZaSVRBREVMIEFkbWluaXN0cmF0b3JzSicKAzIwMBIgCh5NZW1iZXIgb2YgdGhlIGluc3RhbmNlIHJlbW92ZWRKMgoDNDAwEisKDGludmFsaWQgdXNlchIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWAGCtRgTChFpYW0ubWVtYmVyLmRlbGV0ZYLT5JMCFCoSL21lbWJlcnMve3VzZXJfaWR9EogDCglMaXN0Vmlld3MSIi56aXRhZGVsLmFkbWluLnYxLkxpc3RWaWV3c1JlcXVlc3QaIy56aXRhZGVsLmFkbWluLnYxLkxpc3RWaWV3c1Jlc3BvbnNlIrECkkGJAgoRVmlld3MvUHJvamVjdGlvbnMSFkxpc3QgVmlld3MvUHJvamVjdGlvbnMatgFSZXR1cm5zIGFsbCBzdG9yZWQgcmVhZCBtb2RlbHMgb2YgWklUQURFTC4gVmlld3MgYXJlIHVzZWQgZm9yIHNlYXJjaCBvcHRpbWl6YXRpb24gYW5kIG9wdGltaXppbmcgcmVxdWVzdCBsYXRlbmNpZXMuIFRoZXkgcmVwcmVzZW50IHRoZSBkZWx0YSBvZiB0aGUgZXZlbnQgdGhhdCBoYXBwZW5lZCBvbiB0aGUgb2JqZWN0c0ojCgMyMDASHAoaVmlld3MgZm9yIHF1ZXJ5IG9wZXJhdGlvbnOCtRgKCghpYW0ucmVhZILT5JMCECIOL3ZpZXdzL19zZWFyY2gSxAMKEExpc3RGYWlsZWRFdmVudHMSKS56aXRhZGVsLmFkbWluLnYxLkxpc3RGYWlsZWRFdmVudHNSZXF1ZXN0Gioueml0YWRlbC5hZG1pbi52MS5MaXN0RmFpbGVkRXZlbnRzUmVzcG9uc2Ui2AKSQakCCg1GYWlsZWQgRXZlbnRzEhJMaXN0IEZhaWxlZCBFdmVudHMazAFSZXR1cm5zIGEgbGlzdCBvZiBldmVudHMgdGhhdCBjb3VsZCBub3QgYmUgcHJvY2VlZGVkIGluIHRoZSB2aWV3cy9wcm9qZWN0aW9ucy4gU29tZSBldmVudHMgbmVlZCBzZXZlcmFsIHJldHJpZXMgdGlsbCB0aGV5IHN1Y2NlZWQuIEZvciBleGFtcGxlLCBpZiB0aGUgU01UUC1BUEkgd2Fzbid0IGFibGUgdG8gc2VuZCBhbiBlbWFpbCB0aGUgZmlyc3QgdGltZS5KNQoDMjAwEi4KLEV2ZW50cyB3aGljaCB3ZXJlIG5vdCBwcm9jZXNzZWQgYnkgdGhlIHZpZXdzgrUYCgoIaWFtLnJlYWSC0+STAhciFS9mYWlsZWRldmVudHMvX3NlYXJjaBKGBQoRUmVtb3ZlRmFpbGVkRXZlbnQSKi56aXRhZGVsLmFkbWluLnYxLlJlbW92ZUZhaWxlZEV2ZW50UmVxdWVzdBorLnppdGFkZWwuYWRtaW4udjEuUmVtb3ZlRmFpbGVkRXZlbnRSZXNwb25zZSKXBJJBxgMKDUZhaWxlZCBFdmVudHMSFFJlbW92ZSBGYWlsZWQgRXZlbnRzGrkCUmVtb3ZlcyB0aGUgZXZlbnQgZnJvbSB0aGUgZmFpbGVkIGV2ZW5zIHZpZXcsIGJ1dCBub3QgZnJvbSB0aGUgY2hhbmdlIHN0cmVhbS4gVGhpcyBjYWxsIGlzIHVzZWZ1bCBpZiB0aGUgc3lzdGVtIHdhcyBhYmxlIHRvIHByb2Nlc3MgdGhlIGV2ZW50IGFmdGVyIHNvbWUgcmV0cmllcy4gZS5nLiBpZiB0aGUgc2Vjb25kIHRyeSBvZiBzZW5kaW5nIGFuIGVtYWlsIHdhcyBzdWNjZXNzZnVsLiB0aGUgZmlyc3QgdHJ5IHByb2R1Y2VkIGEgZmFpbGVkIGV2ZW50LiBZb3UgY2FuIGZpbmQgb3V0IGlmIGl0IHdvcmtlZCBvbiB0aGUgYGZhaWx1cmVfY291bnRgIEolCgMyMDASHgocRXZlbnRzIHJlbW92ZWQgZnJvbSB0aGUgbGlzdEo8CgM0MDASNQoWZmFpbGVkIGV2ZW50IG5vdCBmb3VuZBIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzgrUYCwoJaWFtLndyaXRlgtPkkwI4KjYvZmFpbGVkZXZlbnRzL3tkYXRhYmFzZX0ve3ZpZXdfbmFtZX0ve2ZhaWxlZF9zZXF1ZW5jZX0SxgIKCkltcG9ydERhdGESIy56aXRhZGVsLmFkbWluLnYxLkltcG9ydERhdGFSZXF1ZXN0GiQueml0YWRlbC5hZG1pbi52MS5JbXBvcnREYXRhUmVzcG9uc2Ui7AGSQccBCg1JbXBvcnQvRXhwb3J0EgtJbXBvcnQgRGF0YRqoAUltcG9ydCBkYXRhIG9uIGFuIGluc3RhbmNlIGxldmVsIHRvIFpJVEFERUwuIEl0IGNhbiBiZSBlaXRoZXIgZGlyZWN0bHkgaW4gdGhlIHJlcXVlc3Qgb3IgeW91IGNhbiBwb2ludCB0byBhIGZpbGUgb24gYW4gUzMgc3RvcmFnZSwgZnJvbSB3aGljaCB0aGUgZGF0YSBzaG91bGQgYmUgbG9hZGVkLoK1GAsKCWlhbS53cml0ZYLT5JMCDDoBKiIHL2ltcG9ydBLLAgoKRXhwb3J0RGF0YRIjLnppdGFkZWwuYWRtaW4udjEuRXhwb3J0RGF0YVJlcXVlc3QaJC56aXRhZGVsLmFkbWluLnYxLkV4cG9ydERhdGFSZXNwb25zZSLxAZJBzQEKDUltcG9ydC9FeHBvcnQSC0V4cG9ydCBEYXRhGq4BRXhwb3J0IGRhdGEgb24gYW4gaW5zdGFuY2UgbGV2ZWwgdG8gWklUQURFTC4gSXQgY2FuIGJlIGVpdGhlciBkaXJlY3RseSBleHBvcnRlZCBpbiB0aGUgcmVzcG9uc2Ugb3IgeW91IGNhbiBwb2ludCB0byBhIGZpbGUgb24gYW4gUzMgc3RvcmFnZSwgd2hlcmUgdGhlIGRhdGEgc2hvdWxkIGJlIHdyaXR0ZW4ugrUYCgoIaWFtLnJlYWSC0+STAgw6ASoiBy9leHBvcnQSqwIKDkxpc3RFdmVudFR5cGVzEicueml0YWRlbC5hZG1pbi52MS5MaXN0RXZlbnRUeXBlc1JlcXVlc3QaKC56aXRhZGVsLmFkbWluLnYxLkxpc3RFdmVudFR5cGVzUmVzcG9uc2UixQGSQZABCgZFdmVudHMSC0V2ZW50IHR5cGVzGnlSZXR1cm5zIGEgbGlzdCBvZiB0aGUgcG9zc2libGUgZXZlbnQgdHlwZXMgaW4gWklUQURFTC4gVGhpcyBpcyB1c2VkIHRvIGZpbHRlciB0aGUgZXZlbnQgdHlwZXMgaW4gdGhlIGxpc3QgZXZlbnRzIHJlcXVlc3QugrUYDQoLZXZlbnRzLnJlYWSC0+STAho6ASoiFS9ldmVudHMvdHlwZXMvX3NlYXJjaBKbAgoKTGlzdEV2ZW50cxIjLnppdGFkZWwuYWRtaW4udjEuTGlzdEV2ZW50c1JlcXVlc3QaJC56aXRhZGVsLmFkbWluLnYxLkxpc3RFdmVudHNSZXNwb25zZSLBAZJBkgEKBkV2ZW50cxINU2VhcmNoIEV2ZW50cxp5UmV0dXJucyBhIGxpc3Qgb2YgdGhlIHBvc3NpYmxlIGV2ZW50IHR5cGVzIGluIFpJVEFERUwuIFRoaXMgaXMgdXNlZCB0byBmaWx0ZXIgdGhlIGV2ZW50IHR5cGVzIGluIHRoZSBsaXN0IGV2ZW50cyByZXF1ZXN0LoK1GA0KC2V2ZW50cy5yZWFkgtPkkwIUOgEqIg8vZXZlbnRzL19zZWFyY2gSzQIKEkxpc3RBZ2dyZWdhdGVUeXBlcxIrLnppdGFkZWwuYWRtaW4udjEuTGlzdEFnZ3JlZ2F0ZVR5cGVzUmVxdWVzdBosLnppdGFkZWwuYWRtaW4udjEuTGlzdEFnZ3JlZ2F0ZVR5cGVzUmVzcG9uc2Ui2wGSQaIBCgZFdmVudHMSFExpc3QgQWdncmVnYXRlIFR5cGVzGoEBUmV0dXJucyBhIGxpc3Qgb2YgdGhlIHBvc3NpYmxlIGFnZ3JlZ2F0ZSB0eXBlcyBpbiBaSVRBREVMLiBUaGlzIGlzIHVzZWQgdG8gZmlsdGVyIHRoZSBhZ2dyZWdhdGUgdHlwZXMgaW4gdGhlIGxpc3QgZXZlbnRzIHJlcXVlc3QugrUYDQoLZXZlbnRzLnJlYWSC0+STAh46ASoiGS9hZ2dyZWdhdGVzL3R5cGVzL19zZWFyY2gSzwEKHkFjdGl2YXRlRmVhdHVyZUxvZ2luRGVmYXVsdE9yZxI3LnppdGFkZWwuYWRtaW4udjEuQWN0aXZhdGVGZWF0dXJlTG9naW5EZWZhdWx0T3JnUmVxdWVzdBo4LnppdGFkZWwuYWRtaW4udjEuQWN0aXZhdGVGZWF0dXJlTG9naW5EZWZhdWx0T3JnUmVzcG9uc2UiOoK1GBMKEWlhbS5mZWF0dXJlLndyaXRlgtPkkwIdGhsvZmVhdHVyZXMvbG9naW5fZGVmYXVsdF9vcmcS8QEKDkxpc3RNaWxlc3RvbmVzEicueml0YWRlbC5hZG1pbi52MS5MaXN0TWlsZXN0b25lc1JlcXVlc3QaKC56aXRhZGVsLmFkbWluLnYxLkxpc3RNaWxlc3RvbmVzUmVzcG9uc2UiiwGSQVUKCk1pbGVzdG9uZXMSEVNlYXJjaCBNaWxlc3RvbmVzGjRSZXR1cm5zIGEgbGlzdCBvZiByZWFjaGVkIGluc3RhbmNlIHVzYWdlIG1pbGVzdG9uZXMugrUYEQoPbWlsZXN0b25lcy5yZWFkgtPkkwIYOgEqIhMvbWlsZXN0b25lcy9fc2VhcmNoEv0CCg9TZXRSZXN0cmljdGlvbnMSKC56aXRhZGVsLmFkbWluLnYxLlNldFJlc3RyaWN0aW9uc1JlcXVlc3QaKS56aXRhZGVsLmFkbWluLnYxLlNldFJlc3RyaWN0aW9uc1Jlc3BvbnNlIpQCkkHcAQoURmVhdHVyZSBSZXN0cmljdGlvbnMSH1Jlc3RyaWN0IHRoZSBpbnN0YW5jZXMgZmVhdHVyZXMaYlVuZGVmaW5lZCB2YWx1ZXMgZG9uJ3QgY2hhbmdlIHRoZSBjdXJyZW50IHJlc3RyaWN0aW9uLiBaZXJvIHZhbHVlcyByZW1vdmUgdGhlIGN1cnJlbnQgcmVzdHJpY3Rpb24uShoKAzIwMBITChFSZXN0cmljdGlvbnMgc2V0LkojCgM0MDASHAoaTm8gcmVzdHJpY3Rpb24gaXMgZGVmaW5lZC6CtRgYChZpYW0ucmVzdHJpY3Rpb25zLndyaXRlgtPkkwISOgEqGg0vcmVzdHJpY3Rpb25zErIECg9HZXRSZXN0cmljdGlvbnMSKC56aXRhZGVsLmFkbWluLnYxLkdldFJlc3RyaWN0aW9uc1JlcXVlc3QaKS56aXRhZGVsLmFkbWluLnYxLkdldFJlc3RyaWN0aW9uc1Jlc3BvbnNlIskDkkGVAwoURmVhdHVyZSBSZXN0cmljdGlvbnMSNUdldCB0aGUgY3VycmVudCBmZWF0dXJlIHJlc3RyaWN0aW9ucyBmb3IgdGhlIGluc3RhbmNlGsIBVW5kZWZpbmVkIHZhbHVlcyBtZWFuIHRoYXQgdGhlIGZlYXR1cmUgaXMgbm90IHJlc3RyaWN0ZWQuIElmIHJlc3RyaWN0aW9ucyB3ZXJlIG5ldmVyIHNldCwgdGhlIGluc3RhbmNlcyBmZWF0dXJlcyBhcmUgbm90IHJlc3RyaWN0ZWQsIGFsbCBwcm9wZXJ0aWVzIGFyZSB1bmRlZmluZWQgYW5kIHRoZSBkZXRhaWxzIG9iamVjdCBpcyBlbXB0eS5KgAEKAzIwMBJ5CndUaGUgc3RhdHVzIDIwMCBpcyBhbHNvIHJldHVybmVkIGlmIG5vIHJlc3RyaWN0aW9ucyB3ZXJlIGV2ZXIgc2V0LiBJbiB0aGlzIGNhc2UsIGFsbCBmZWF0dXJlIHJlc3RyaWN0aW9ucyBhcmUgdW5kZWZpbmVkLoK1GBcKFWlhbS5yZXN0cmljdGlvbnMucmVhZILT5JMCDxINL3Jlc3RyaWN0aW9uc0KYDFopZ2l0aHViLmNvbS96aXRhZGVsL3ppdGFkZWwvcGtnL2dycGMvYWRtaW6SQekLEuMBChxBZG1pbmlzdHJhdGlvbiBBUEkgYWthIEFkbWluEkVUaGlzIEFQSSBpcyBpbnRlbmRlZCB0byBjb25maWd1cmUgYW5kIG1hbmFnZSB0aGUgSUFNIGluc3RhbmNlIGl0c2VsZi4iLgoHWklUQURFTBITaHR0cHM6Ly96aXRhZGVsLmNvbRoOaGlAeml0YWRlbC5jb20qRwoKQXBhY2hlIDIuMBI5aHR0cHM6Ly9naXRodWIuY29tL3ppdGFkZWwveml0YWRlbC9ibG9iL21haW4vTElDRU5TSU5HLm1kMgMxLjAaDiRDVVNUT01fRE9NQUlOIgkvYWRtaW4vdjEqAgIBMhBhcHBsaWNhdGlvbi9qc29uMhBhcHBsaWNhdGlvbi9ncnBjMhphcHBsaWNhdGlvbi9ncnBjLXdlYitwcm90bzoQYXBwbGljYXRpb24vanNvbjoQYXBwbGljYXRpb24vZ3JwYzoaYXBwbGljYXRpb24vZ3JwYy13ZWIrcHJvdG9SbQoDNDAzEmYKR1JldHVybmVkIHdoZW4gdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2UuEhsKGRoXIy9kZWZpbml0aW9ucy9ycGNTdGF0dXNSUAoDNDA0EkkKKlJldHVybmVkIHdoZW4gdGhlIHJlc291cmNlIGRvZXMgbm90IGV4aXN0LhIbChkaFyMvZGVmaW5pdGlvbnMvcnBjU3RhdHVzWtMBCg8KCUJhc2ljQXV0aBICCAEKvwEKBk9BdXRoMhK0AQgDKAQyISRDVVNUT01fRE9NQUlOL29hdXRoL3YyL2F1dGhvcml6ZTodJENVU1RPTV9ET01BSU4vb2F1dGgvdjIvdG9rZW5CbAoQCgZvcGVuaWQSBm9wZW5pZApYCip1cm46eml0YWRlbDppYW06b3JnOnByb2plY3Q6aWQ6eml0YWRlbDphdWQSKnVybjp6aXRhZGVsOmlhbTpvcmc6cHJvamVjdDppZDp6aXRhZGVsOmF1ZGJACj4KBk9BdXRoMhI0CgZvcGVuaWQKKnVybjp6aXRhZGVsOmlhbTpvcmc6cHJvamVjdDppZDp6aXRhZGVsOmF1ZGoYChZBdXRoZW50aWNhdGlvbiBNZXRob2RzaqIBCghCcmFuZGluZxKVAURlZmluZXMgdGhlIGxvb2sgb2YgdGhlIGxvZ2luIFVJLCBFLU1haWxzLCBhbmQgWml0YWRlbCBNYW5hZ2VtZW50IENvbnNvbGUuIEZvciBhZGRpbmcgYXNzZXRzIGxpa2UgbG9nbywgaWNvbiBhbmQgZm9udCwgaGF2ZSBhIGxvb2sgYXQgdGhlIGFzc2V0cyBBUEkuahEKD0RvbWFpbiBTZXR0aW5nc2oICgZFdmVudHNqDwoNRmFpbGVkIEV2ZW50c2oWChRGZWF0dXJlIFJlc3RyaWN0aW9uc2oJCgdHZW5lcmFsahQKEklkZW50aXR5IFByb3ZpZGVyc2oPCg1JbXBvcnQvRXhwb3J0agoKCEluc3RhbmNlahAKDkxvZ2luIFNldHRpbmdzag0KC0xvZ2luIFRleHRzagkKB01lbWJlcnNqDwoNTWVzc2FnZSBUZXh0c2oYChZOb3RpZmljYXRpb24gUHJvdmlkZXJzahcKFU5vdGlmaWNhdGlvbiBTZXR0aW5nc2oPCg1Pcmdhbml6YXRpb25zahMKEVBhc3N3b3JkIFNldHRpbmdzahIKEFByaXZhY3kgU2V0dGluZ3NqCQoHU2VjcmV0c2oOCgxTTVMgUHJvdmlkZXJqBgoEU01UUGoKCghTZXR0aW5nc2oTChFWaWV3cy9Qcm9qZWN0aW9uc2oYChZaSVRBREVMIEFkbWluaXN0cmF0b3Jzcj4KIkRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IFpJVEFERUwSGGh0dHBzOi8veml0YWRlbC5jb20vZG9jc2IGcHJvdG8z", [file_zitadel_idp, file_zitadel_instance, file_zitadel_user, file_zitadel_object, file_zitadel_options, file_zitadel_org, file_zitadel_policy, file_zitadel_settings, file_zitadel_text, file_zitadel_member, file_zitadel_event, file_zitadel_management, file_zitadel_v1, file_zitadel_milestone_v1_milestone, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_timestamp, file_google_protobuf_duration, file_protoc_gen_openapiv2_options_annotations, file_validate_validate]);
28
+ /**
29
+ * Describes the message zitadel.admin.v1.HealthzRequest.
30
+ * Use `create(HealthzRequestSchema)` to create a new message.
31
+ */
32
+ export const HealthzRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 0);
33
+ /**
34
+ * Describes the message zitadel.admin.v1.HealthzResponse.
35
+ * Use `create(HealthzResponseSchema)` to create a new message.
36
+ */
37
+ export const HealthzResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 1);
38
+ /**
39
+ * Describes the message zitadel.admin.v1.GetSupportedLanguagesRequest.
40
+ * Use `create(GetSupportedLanguagesRequestSchema)` to create a new message.
41
+ */
42
+ export const GetSupportedLanguagesRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 2);
43
+ /**
44
+ * Describes the message zitadel.admin.v1.GetSupportedLanguagesResponse.
45
+ * Use `create(GetSupportedLanguagesResponseSchema)` to create a new message.
46
+ */
47
+ export const GetSupportedLanguagesResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 3);
48
+ /**
49
+ * Describes the message zitadel.admin.v1.GetAllowedLanguagesRequest.
50
+ * Use `create(GetAllowedLanguagesRequestSchema)` to create a new message.
51
+ */
52
+ export const GetAllowedLanguagesRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 4);
53
+ /**
54
+ * Describes the message zitadel.admin.v1.GetAllowedLanguagesResponse.
55
+ * Use `create(GetAllowedLanguagesResponseSchema)` to create a new message.
56
+ */
57
+ export const GetAllowedLanguagesResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 5);
58
+ /**
59
+ * Describes the message zitadel.admin.v1.SetDefaultLanguageRequest.
60
+ * Use `create(SetDefaultLanguageRequestSchema)` to create a new message.
61
+ */
62
+ export const SetDefaultLanguageRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 6);
63
+ /**
64
+ * Describes the message zitadel.admin.v1.SetDefaultLanguageResponse.
65
+ * Use `create(SetDefaultLanguageResponseSchema)` to create a new message.
66
+ */
67
+ export const SetDefaultLanguageResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 7);
68
+ /**
69
+ * Describes the message zitadel.admin.v1.GetDefaultLanguageRequest.
70
+ * Use `create(GetDefaultLanguageRequestSchema)` to create a new message.
71
+ */
72
+ export const GetDefaultLanguageRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 8);
73
+ /**
74
+ * Describes the message zitadel.admin.v1.GetDefaultLanguageResponse.
75
+ * Use `create(GetDefaultLanguageResponseSchema)` to create a new message.
76
+ */
77
+ export const GetDefaultLanguageResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 9);
78
+ /**
79
+ * Describes the message zitadel.admin.v1.SetDefaultOrgRequest.
80
+ * Use `create(SetDefaultOrgRequestSchema)` to create a new message.
81
+ */
82
+ export const SetDefaultOrgRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 10);
83
+ /**
84
+ * Describes the message zitadel.admin.v1.SetDefaultOrgResponse.
85
+ * Use `create(SetDefaultOrgResponseSchema)` to create a new message.
86
+ */
87
+ export const SetDefaultOrgResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 11);
88
+ /**
89
+ * Describes the message zitadel.admin.v1.GetDefaultOrgRequest.
90
+ * Use `create(GetDefaultOrgRequestSchema)` to create a new message.
91
+ */
92
+ export const GetDefaultOrgRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 12);
93
+ /**
94
+ * Describes the message zitadel.admin.v1.GetDefaultOrgResponse.
95
+ * Use `create(GetDefaultOrgResponseSchema)` to create a new message.
96
+ */
97
+ export const GetDefaultOrgResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 13);
98
+ /**
99
+ * Describes the message zitadel.admin.v1.GetMyInstanceRequest.
100
+ * Use `create(GetMyInstanceRequestSchema)` to create a new message.
101
+ */
102
+ export const GetMyInstanceRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 14);
103
+ /**
104
+ * Describes the message zitadel.admin.v1.GetMyInstanceResponse.
105
+ * Use `create(GetMyInstanceResponseSchema)` to create a new message.
106
+ */
107
+ export const GetMyInstanceResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 15);
108
+ /**
109
+ * Describes the message zitadel.admin.v1.ListInstanceDomainsRequest.
110
+ * Use `create(ListInstanceDomainsRequestSchema)` to create a new message.
111
+ */
112
+ export const ListInstanceDomainsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 16);
113
+ /**
114
+ * Describes the message zitadel.admin.v1.ListInstanceDomainsResponse.
115
+ * Use `create(ListInstanceDomainsResponseSchema)` to create a new message.
116
+ */
117
+ export const ListInstanceDomainsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 17);
118
+ /**
119
+ * Describes the message zitadel.admin.v1.ListInstanceTrustedDomainsRequest.
120
+ * Use `create(ListInstanceTrustedDomainsRequestSchema)` to create a new message.
121
+ */
122
+ export const ListInstanceTrustedDomainsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 18);
123
+ /**
124
+ * Describes the message zitadel.admin.v1.ListInstanceTrustedDomainsResponse.
125
+ * Use `create(ListInstanceTrustedDomainsResponseSchema)` to create a new message.
126
+ */
127
+ export const ListInstanceTrustedDomainsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 19);
128
+ /**
129
+ * Describes the message zitadel.admin.v1.AddInstanceTrustedDomainRequest.
130
+ * Use `create(AddInstanceTrustedDomainRequestSchema)` to create a new message.
131
+ */
132
+ export const AddInstanceTrustedDomainRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 20);
133
+ /**
134
+ * Describes the message zitadel.admin.v1.AddInstanceTrustedDomainResponse.
135
+ * Use `create(AddInstanceTrustedDomainResponseSchema)` to create a new message.
136
+ */
137
+ export const AddInstanceTrustedDomainResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 21);
138
+ /**
139
+ * Describes the message zitadel.admin.v1.RemoveInstanceTrustedDomainRequest.
140
+ * Use `create(RemoveInstanceTrustedDomainRequestSchema)` to create a new message.
141
+ */
142
+ export const RemoveInstanceTrustedDomainRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 22);
143
+ /**
144
+ * Describes the message zitadel.admin.v1.RemoveInstanceTrustedDomainResponse.
145
+ * Use `create(RemoveInstanceTrustedDomainResponseSchema)` to create a new message.
146
+ */
147
+ export const RemoveInstanceTrustedDomainResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 23);
148
+ /**
149
+ * Describes the message zitadel.admin.v1.ListSecretGeneratorsRequest.
150
+ * Use `create(ListSecretGeneratorsRequestSchema)` to create a new message.
151
+ */
152
+ export const ListSecretGeneratorsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 24);
153
+ /**
154
+ * Describes the message zitadel.admin.v1.ListSecretGeneratorsResponse.
155
+ * Use `create(ListSecretGeneratorsResponseSchema)` to create a new message.
156
+ */
157
+ export const ListSecretGeneratorsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 25);
158
+ /**
159
+ * Describes the message zitadel.admin.v1.GetSecretGeneratorRequest.
160
+ * Use `create(GetSecretGeneratorRequestSchema)` to create a new message.
161
+ */
162
+ export const GetSecretGeneratorRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 26);
163
+ /**
164
+ * Describes the message zitadel.admin.v1.GetSecretGeneratorResponse.
165
+ * Use `create(GetSecretGeneratorResponseSchema)` to create a new message.
166
+ */
167
+ export const GetSecretGeneratorResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 27);
168
+ /**
169
+ * Describes the message zitadel.admin.v1.UpdateSecretGeneratorRequest.
170
+ * Use `create(UpdateSecretGeneratorRequestSchema)` to create a new message.
171
+ */
172
+ export const UpdateSecretGeneratorRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 28);
173
+ /**
174
+ * Describes the message zitadel.admin.v1.UpdateSecretGeneratorResponse.
175
+ * Use `create(UpdateSecretGeneratorResponseSchema)` to create a new message.
176
+ */
177
+ export const UpdateSecretGeneratorResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 29);
178
+ /**
179
+ * Describes the message zitadel.admin.v1.GetSMTPConfigRequest.
180
+ * Use `create(GetSMTPConfigRequestSchema)` to create a new message.
181
+ */
182
+ export const GetSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 30);
183
+ /**
184
+ * Describes the message zitadel.admin.v1.GetSMTPConfigResponse.
185
+ * Use `create(GetSMTPConfigResponseSchema)` to create a new message.
186
+ */
187
+ export const GetSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 31);
188
+ /**
189
+ * Describes the message zitadel.admin.v1.GetSMTPConfigByIdRequest.
190
+ * Use `create(GetSMTPConfigByIdRequestSchema)` to create a new message.
191
+ */
192
+ export const GetSMTPConfigByIdRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 32);
193
+ /**
194
+ * Describes the message zitadel.admin.v1.GetSMTPConfigByIdResponse.
195
+ * Use `create(GetSMTPConfigByIdResponseSchema)` to create a new message.
196
+ */
197
+ export const GetSMTPConfigByIdResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 33);
198
+ /**
199
+ * Describes the message zitadel.admin.v1.ListSMTPConfigsRequest.
200
+ * Use `create(ListSMTPConfigsRequestSchema)` to create a new message.
201
+ */
202
+ export const ListSMTPConfigsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 34);
203
+ /**
204
+ * Describes the message zitadel.admin.v1.ListSMTPConfigsResponse.
205
+ * Use `create(ListSMTPConfigsResponseSchema)` to create a new message.
206
+ */
207
+ export const ListSMTPConfigsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 35);
208
+ /**
209
+ * Describes the message zitadel.admin.v1.AddSMTPConfigRequest.
210
+ * Use `create(AddSMTPConfigRequestSchema)` to create a new message.
211
+ */
212
+ export const AddSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 36);
213
+ /**
214
+ * Describes the message zitadel.admin.v1.AddSMTPConfigResponse.
215
+ * Use `create(AddSMTPConfigResponseSchema)` to create a new message.
216
+ */
217
+ export const AddSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 37);
218
+ /**
219
+ * Describes the message zitadel.admin.v1.UpdateSMTPConfigRequest.
220
+ * Use `create(UpdateSMTPConfigRequestSchema)` to create a new message.
221
+ */
222
+ export const UpdateSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 38);
223
+ /**
224
+ * Describes the message zitadel.admin.v1.UpdateSMTPConfigResponse.
225
+ * Use `create(UpdateSMTPConfigResponseSchema)` to create a new message.
226
+ */
227
+ export const UpdateSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 39);
228
+ /**
229
+ * Describes the message zitadel.admin.v1.UpdateSMTPConfigPasswordRequest.
230
+ * Use `create(UpdateSMTPConfigPasswordRequestSchema)` to create a new message.
231
+ */
232
+ export const UpdateSMTPConfigPasswordRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 40);
233
+ /**
234
+ * Describes the message zitadel.admin.v1.UpdateSMTPConfigPasswordResponse.
235
+ * Use `create(UpdateSMTPConfigPasswordResponseSchema)` to create a new message.
236
+ */
237
+ export const UpdateSMTPConfigPasswordResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 41);
238
+ /**
239
+ * Describes the message zitadel.admin.v1.ActivateSMTPConfigRequest.
240
+ * Use `create(ActivateSMTPConfigRequestSchema)` to create a new message.
241
+ */
242
+ export const ActivateSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 42);
243
+ /**
244
+ * Describes the message zitadel.admin.v1.ActivateSMTPConfigResponse.
245
+ * Use `create(ActivateSMTPConfigResponseSchema)` to create a new message.
246
+ */
247
+ export const ActivateSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 43);
248
+ /**
249
+ * Describes the message zitadel.admin.v1.DeactivateSMTPConfigRequest.
250
+ * Use `create(DeactivateSMTPConfigRequestSchema)` to create a new message.
251
+ */
252
+ export const DeactivateSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 44);
253
+ /**
254
+ * Describes the message zitadel.admin.v1.DeactivateSMTPConfigResponse.
255
+ * Use `create(DeactivateSMTPConfigResponseSchema)` to create a new message.
256
+ */
257
+ export const DeactivateSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 45);
258
+ /**
259
+ * Describes the message zitadel.admin.v1.RemoveSMTPConfigRequest.
260
+ * Use `create(RemoveSMTPConfigRequestSchema)` to create a new message.
261
+ */
262
+ export const RemoveSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 46);
263
+ /**
264
+ * Describes the message zitadel.admin.v1.RemoveSMTPConfigResponse.
265
+ * Use `create(RemoveSMTPConfigResponseSchema)` to create a new message.
266
+ */
267
+ export const RemoveSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 47);
268
+ /**
269
+ * Describes the message zitadel.admin.v1.TestSMTPConfigByIdRequest.
270
+ * Use `create(TestSMTPConfigByIdRequestSchema)` to create a new message.
271
+ */
272
+ export const TestSMTPConfigByIdRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 48);
273
+ /**
274
+ * Describes the message zitadel.admin.v1.TestSMTPConfigByIdResponse.
275
+ * Use `create(TestSMTPConfigByIdResponseSchema)` to create a new message.
276
+ */
277
+ export const TestSMTPConfigByIdResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 49);
278
+ /**
279
+ * Describes the message zitadel.admin.v1.TestSMTPConfigRequest.
280
+ * Use `create(TestSMTPConfigRequestSchema)` to create a new message.
281
+ */
282
+ export const TestSMTPConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 50);
283
+ /**
284
+ * Describes the message zitadel.admin.v1.TestSMTPConfigResponse.
285
+ * Use `create(TestSMTPConfigResponseSchema)` to create a new message.
286
+ */
287
+ export const TestSMTPConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 51);
288
+ /**
289
+ * Describes the message zitadel.admin.v1.GetEmailProviderRequest.
290
+ * Use `create(GetEmailProviderRequestSchema)` to create a new message.
291
+ */
292
+ export const GetEmailProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 52);
293
+ /**
294
+ * Describes the message zitadel.admin.v1.GetEmailProviderResponse.
295
+ * Use `create(GetEmailProviderResponseSchema)` to create a new message.
296
+ */
297
+ export const GetEmailProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 53);
298
+ /**
299
+ * Describes the message zitadel.admin.v1.GetEmailProviderByIdRequest.
300
+ * Use `create(GetEmailProviderByIdRequestSchema)` to create a new message.
301
+ */
302
+ export const GetEmailProviderByIdRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 54);
303
+ /**
304
+ * Describes the message zitadel.admin.v1.GetEmailProviderByIdResponse.
305
+ * Use `create(GetEmailProviderByIdResponseSchema)` to create a new message.
306
+ */
307
+ export const GetEmailProviderByIdResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 55);
308
+ /**
309
+ * Describes the message zitadel.admin.v1.ListEmailProvidersRequest.
310
+ * Use `create(ListEmailProvidersRequestSchema)` to create a new message.
311
+ */
312
+ export const ListEmailProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 56);
313
+ /**
314
+ * Describes the message zitadel.admin.v1.ListEmailProvidersResponse.
315
+ * Use `create(ListEmailProvidersResponseSchema)` to create a new message.
316
+ */
317
+ export const ListEmailProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 57);
318
+ /**
319
+ * Describes the message zitadel.admin.v1.AddEmailProviderSMTPRequest.
320
+ * Use `create(AddEmailProviderSMTPRequestSchema)` to create a new message.
321
+ */
322
+ export const AddEmailProviderSMTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 58);
323
+ /**
324
+ * Describes the message zitadel.admin.v1.SMTPNoAuth.
325
+ * Use `create(SMTPNoAuthSchema)` to create a new message.
326
+ */
327
+ export const SMTPNoAuthSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 59);
328
+ /**
329
+ * Describes the message zitadel.admin.v1.SMTPPlainAuth.
330
+ * Use `create(SMTPPlainAuthSchema)` to create a new message.
331
+ */
332
+ export const SMTPPlainAuthSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 60);
333
+ /**
334
+ * Describes the message zitadel.admin.v1.SMTPXOAuth2Auth.
335
+ * Use `create(SMTPXOAuth2AuthSchema)` to create a new message.
336
+ */
337
+ export const SMTPXOAuth2AuthSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 61);
338
+ /**
339
+ * Describes the message zitadel.admin.v1.SMTPXOAuth2Auth.ClientCredentials.
340
+ * Use `create(SMTPXOAuth2Auth_ClientCredentialsSchema)` to create a new message.
341
+ */
342
+ export const SMTPXOAuth2Auth_ClientCredentialsSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 61, 0);
343
+ /**
344
+ * Describes the message zitadel.admin.v1.AddEmailProviderSMTPResponse.
345
+ * Use `create(AddEmailProviderSMTPResponseSchema)` to create a new message.
346
+ */
347
+ export const AddEmailProviderSMTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 62);
348
+ /**
349
+ * Describes the message zitadel.admin.v1.UpdateEmailProviderSMTPRequest.
350
+ * Use `create(UpdateEmailProviderSMTPRequestSchema)` to create a new message.
351
+ */
352
+ export const UpdateEmailProviderSMTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 63);
353
+ /**
354
+ * Describes the message zitadel.admin.v1.UpdateEmailProviderSMTPResponse.
355
+ * Use `create(UpdateEmailProviderSMTPResponseSchema)` to create a new message.
356
+ */
357
+ export const UpdateEmailProviderSMTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 64);
358
+ /**
359
+ * Describes the message zitadel.admin.v1.UpdateEmailProviderSMTPPasswordRequest.
360
+ * Use `create(UpdateEmailProviderSMTPPasswordRequestSchema)` to create a new message.
361
+ */
362
+ export const UpdateEmailProviderSMTPPasswordRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 65);
363
+ /**
364
+ * Describes the message zitadel.admin.v1.UpdateEmailProviderSMTPPasswordResponse.
365
+ * Use `create(UpdateEmailProviderSMTPPasswordResponseSchema)` to create a new message.
366
+ */
367
+ export const UpdateEmailProviderSMTPPasswordResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 66);
368
+ /**
369
+ * Describes the message zitadel.admin.v1.AddEmailProviderHTTPRequest.
370
+ * Use `create(AddEmailProviderHTTPRequestSchema)` to create a new message.
371
+ */
372
+ export const AddEmailProviderHTTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 67);
373
+ /**
374
+ * Describes the message zitadel.admin.v1.AddEmailProviderHTTPResponse.
375
+ * Use `create(AddEmailProviderHTTPResponseSchema)` to create a new message.
376
+ */
377
+ export const AddEmailProviderHTTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 68);
378
+ /**
379
+ * Describes the message zitadel.admin.v1.UpdateEmailProviderHTTPRequest.
380
+ * Use `create(UpdateEmailProviderHTTPRequestSchema)` to create a new message.
381
+ */
382
+ export const UpdateEmailProviderHTTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 69);
383
+ /**
384
+ * Describes the message zitadel.admin.v1.UpdateEmailProviderHTTPResponse.
385
+ * Use `create(UpdateEmailProviderHTTPResponseSchema)` to create a new message.
386
+ */
387
+ export const UpdateEmailProviderHTTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 70);
388
+ /**
389
+ * Describes the message zitadel.admin.v1.ActivateEmailProviderRequest.
390
+ * Use `create(ActivateEmailProviderRequestSchema)` to create a new message.
391
+ */
392
+ export const ActivateEmailProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 71);
393
+ /**
394
+ * Describes the message zitadel.admin.v1.ActivateEmailProviderResponse.
395
+ * Use `create(ActivateEmailProviderResponseSchema)` to create a new message.
396
+ */
397
+ export const ActivateEmailProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 72);
398
+ /**
399
+ * Describes the message zitadel.admin.v1.DeactivateEmailProviderRequest.
400
+ * Use `create(DeactivateEmailProviderRequestSchema)` to create a new message.
401
+ */
402
+ export const DeactivateEmailProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 73);
403
+ /**
404
+ * Describes the message zitadel.admin.v1.DeactivateEmailProviderResponse.
405
+ * Use `create(DeactivateEmailProviderResponseSchema)` to create a new message.
406
+ */
407
+ export const DeactivateEmailProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 74);
408
+ /**
409
+ * Describes the message zitadel.admin.v1.RemoveEmailProviderRequest.
410
+ * Use `create(RemoveEmailProviderRequestSchema)` to create a new message.
411
+ */
412
+ export const RemoveEmailProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 75);
413
+ /**
414
+ * Describes the message zitadel.admin.v1.RemoveEmailProviderResponse.
415
+ * Use `create(RemoveEmailProviderResponseSchema)` to create a new message.
416
+ */
417
+ export const RemoveEmailProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 76);
418
+ /**
419
+ * Describes the message zitadel.admin.v1.TestEmailProviderSMTPByIdRequest.
420
+ * Use `create(TestEmailProviderSMTPByIdRequestSchema)` to create a new message.
421
+ */
422
+ export const TestEmailProviderSMTPByIdRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 77);
423
+ /**
424
+ * Describes the message zitadel.admin.v1.TestEmailProviderSMTPByIdResponse.
425
+ * Use `create(TestEmailProviderSMTPByIdResponseSchema)` to create a new message.
426
+ */
427
+ export const TestEmailProviderSMTPByIdResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 78);
428
+ /**
429
+ * Describes the message zitadel.admin.v1.TestEmailProviderSMTPRequest.
430
+ * Use `create(TestEmailProviderSMTPRequestSchema)` to create a new message.
431
+ */
432
+ export const TestEmailProviderSMTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 79);
433
+ /**
434
+ * Describes the message zitadel.admin.v1.TestEmailProviderSMTPResponse.
435
+ * Use `create(TestEmailProviderSMTPResponseSchema)` to create a new message.
436
+ */
437
+ export const TestEmailProviderSMTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 80);
438
+ /**
439
+ * Describes the message zitadel.admin.v1.ListSMSProvidersRequest.
440
+ * Use `create(ListSMSProvidersRequestSchema)` to create a new message.
441
+ */
442
+ export const ListSMSProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 81);
443
+ /**
444
+ * Describes the message zitadel.admin.v1.ListSMSProvidersResponse.
445
+ * Use `create(ListSMSProvidersResponseSchema)` to create a new message.
446
+ */
447
+ export const ListSMSProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 82);
448
+ /**
449
+ * Describes the message zitadel.admin.v1.GetSMSProviderRequest.
450
+ * Use `create(GetSMSProviderRequestSchema)` to create a new message.
451
+ */
452
+ export const GetSMSProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 83);
453
+ /**
454
+ * Describes the message zitadel.admin.v1.GetSMSProviderResponse.
455
+ * Use `create(GetSMSProviderResponseSchema)` to create a new message.
456
+ */
457
+ export const GetSMSProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 84);
458
+ /**
459
+ * Describes the message zitadel.admin.v1.AddSMSProviderTwilioRequest.
460
+ * Use `create(AddSMSProviderTwilioRequestSchema)` to create a new message.
461
+ */
462
+ export const AddSMSProviderTwilioRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 85);
463
+ /**
464
+ * Describes the message zitadel.admin.v1.AddSMSProviderTwilioResponse.
465
+ * Use `create(AddSMSProviderTwilioResponseSchema)` to create a new message.
466
+ */
467
+ export const AddSMSProviderTwilioResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 86);
468
+ /**
469
+ * Describes the message zitadel.admin.v1.UpdateSMSProviderTwilioRequest.
470
+ * Use `create(UpdateSMSProviderTwilioRequestSchema)` to create a new message.
471
+ */
472
+ export const UpdateSMSProviderTwilioRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 87);
473
+ /**
474
+ * Describes the message zitadel.admin.v1.UpdateSMSProviderTwilioResponse.
475
+ * Use `create(UpdateSMSProviderTwilioResponseSchema)` to create a new message.
476
+ */
477
+ export const UpdateSMSProviderTwilioResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 88);
478
+ /**
479
+ * Describes the message zitadel.admin.v1.UpdateSMSProviderTwilioTokenRequest.
480
+ * Use `create(UpdateSMSProviderTwilioTokenRequestSchema)` to create a new message.
481
+ */
482
+ export const UpdateSMSProviderTwilioTokenRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 89);
483
+ /**
484
+ * Describes the message zitadel.admin.v1.UpdateSMSProviderTwilioTokenResponse.
485
+ * Use `create(UpdateSMSProviderTwilioTokenResponseSchema)` to create a new message.
486
+ */
487
+ export const UpdateSMSProviderTwilioTokenResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 90);
488
+ /**
489
+ * Describes the message zitadel.admin.v1.AddSMSProviderHTTPRequest.
490
+ * Use `create(AddSMSProviderHTTPRequestSchema)` to create a new message.
491
+ */
492
+ export const AddSMSProviderHTTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 91);
493
+ /**
494
+ * Describes the message zitadel.admin.v1.AddSMSProviderHTTPResponse.
495
+ * Use `create(AddSMSProviderHTTPResponseSchema)` to create a new message.
496
+ */
497
+ export const AddSMSProviderHTTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 92);
498
+ /**
499
+ * Describes the message zitadel.admin.v1.UpdateSMSProviderHTTPRequest.
500
+ * Use `create(UpdateSMSProviderHTTPRequestSchema)` to create a new message.
501
+ */
502
+ export const UpdateSMSProviderHTTPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 93);
503
+ /**
504
+ * Describes the message zitadel.admin.v1.UpdateSMSProviderHTTPResponse.
505
+ * Use `create(UpdateSMSProviderHTTPResponseSchema)` to create a new message.
506
+ */
507
+ export const UpdateSMSProviderHTTPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 94);
508
+ /**
509
+ * Describes the message zitadel.admin.v1.ActivateSMSProviderRequest.
510
+ * Use `create(ActivateSMSProviderRequestSchema)` to create a new message.
511
+ */
512
+ export const ActivateSMSProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 95);
513
+ /**
514
+ * Describes the message zitadel.admin.v1.ActivateSMSProviderResponse.
515
+ * Use `create(ActivateSMSProviderResponseSchema)` to create a new message.
516
+ */
517
+ export const ActivateSMSProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 96);
518
+ /**
519
+ * Describes the message zitadel.admin.v1.DeactivateSMSProviderRequest.
520
+ * Use `create(DeactivateSMSProviderRequestSchema)` to create a new message.
521
+ */
522
+ export const DeactivateSMSProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 97);
523
+ /**
524
+ * Describes the message zitadel.admin.v1.DeactivateSMSProviderResponse.
525
+ * Use `create(DeactivateSMSProviderResponseSchema)` to create a new message.
526
+ */
527
+ export const DeactivateSMSProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 98);
528
+ /**
529
+ * Describes the message zitadel.admin.v1.RemoveSMSProviderRequest.
530
+ * Use `create(RemoveSMSProviderRequestSchema)` to create a new message.
531
+ */
532
+ export const RemoveSMSProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 99);
533
+ /**
534
+ * Describes the message zitadel.admin.v1.RemoveSMSProviderResponse.
535
+ * Use `create(RemoveSMSProviderResponseSchema)` to create a new message.
536
+ */
537
+ export const RemoveSMSProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 100);
538
+ /**
539
+ * Describes the message zitadel.admin.v1.GetFileSystemNotificationProviderRequest.
540
+ * Use `create(GetFileSystemNotificationProviderRequestSchema)` to create a new message.
541
+ */
542
+ export const GetFileSystemNotificationProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 101);
543
+ /**
544
+ * Describes the message zitadel.admin.v1.GetFileSystemNotificationProviderResponse.
545
+ * Use `create(GetFileSystemNotificationProviderResponseSchema)` to create a new message.
546
+ */
547
+ export const GetFileSystemNotificationProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 102);
548
+ /**
549
+ * Describes the message zitadel.admin.v1.GetLogNotificationProviderRequest.
550
+ * Use `create(GetLogNotificationProviderRequestSchema)` to create a new message.
551
+ */
552
+ export const GetLogNotificationProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 103);
553
+ /**
554
+ * Describes the message zitadel.admin.v1.GetLogNotificationProviderResponse.
555
+ * Use `create(GetLogNotificationProviderResponseSchema)` to create a new message.
556
+ */
557
+ export const GetLogNotificationProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 104);
558
+ /**
559
+ * Describes the message zitadel.admin.v1.GetOIDCSettingsRequest.
560
+ * Use `create(GetOIDCSettingsRequestSchema)` to create a new message.
561
+ */
562
+ export const GetOIDCSettingsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 105);
563
+ /**
564
+ * Describes the message zitadel.admin.v1.GetOIDCSettingsResponse.
565
+ * Use `create(GetOIDCSettingsResponseSchema)` to create a new message.
566
+ */
567
+ export const GetOIDCSettingsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 106);
568
+ /**
569
+ * Describes the message zitadel.admin.v1.AddOIDCSettingsRequest.
570
+ * Use `create(AddOIDCSettingsRequestSchema)` to create a new message.
571
+ */
572
+ export const AddOIDCSettingsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 107);
573
+ /**
574
+ * Describes the message zitadel.admin.v1.AddOIDCSettingsResponse.
575
+ * Use `create(AddOIDCSettingsResponseSchema)` to create a new message.
576
+ */
577
+ export const AddOIDCSettingsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 108);
578
+ /**
579
+ * Describes the message zitadel.admin.v1.UpdateOIDCSettingsRequest.
580
+ * Use `create(UpdateOIDCSettingsRequestSchema)` to create a new message.
581
+ */
582
+ export const UpdateOIDCSettingsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 109);
583
+ /**
584
+ * Describes the message zitadel.admin.v1.UpdateOIDCSettingsResponse.
585
+ * Use `create(UpdateOIDCSettingsResponseSchema)` to create a new message.
586
+ */
587
+ export const UpdateOIDCSettingsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 110);
588
+ /**
589
+ * Describes the message zitadel.admin.v1.GetSecurityPolicyRequest.
590
+ * Use `create(GetSecurityPolicyRequestSchema)` to create a new message.
591
+ */
592
+ export const GetSecurityPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 111);
593
+ /**
594
+ * Describes the message zitadel.admin.v1.GetSecurityPolicyResponse.
595
+ * Use `create(GetSecurityPolicyResponseSchema)` to create a new message.
596
+ */
597
+ export const GetSecurityPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 112);
598
+ /**
599
+ * Describes the message zitadel.admin.v1.SetSecurityPolicyRequest.
600
+ * Use `create(SetSecurityPolicyRequestSchema)` to create a new message.
601
+ */
602
+ export const SetSecurityPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 113);
603
+ /**
604
+ * Describes the message zitadel.admin.v1.SetSecurityPolicyResponse.
605
+ * Use `create(SetSecurityPolicyResponseSchema)` to create a new message.
606
+ */
607
+ export const SetSecurityPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 114);
608
+ /**
609
+ * Describes the message zitadel.admin.v1.IsOrgUniqueRequest.
610
+ * Use `create(IsOrgUniqueRequestSchema)` to create a new message.
611
+ */
612
+ export const IsOrgUniqueRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 115);
613
+ /**
614
+ * Describes the message zitadel.admin.v1.IsOrgUniqueResponse.
615
+ * Use `create(IsOrgUniqueResponseSchema)` to create a new message.
616
+ */
617
+ export const IsOrgUniqueResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 116);
618
+ /**
619
+ * Describes the message zitadel.admin.v1.GetOrgByIDRequest.
620
+ * Use `create(GetOrgByIDRequestSchema)` to create a new message.
621
+ */
622
+ export const GetOrgByIDRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 117);
623
+ /**
624
+ * Describes the message zitadel.admin.v1.GetOrgByIDResponse.
625
+ * Use `create(GetOrgByIDResponseSchema)` to create a new message.
626
+ */
627
+ export const GetOrgByIDResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 118);
628
+ /**
629
+ * Describes the message zitadel.admin.v1.ListOrgsRequest.
630
+ * Use `create(ListOrgsRequestSchema)` to create a new message.
631
+ */
632
+ export const ListOrgsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 119);
633
+ /**
634
+ * Describes the message zitadel.admin.v1.ListOrgsResponse.
635
+ * Use `create(ListOrgsResponseSchema)` to create a new message.
636
+ */
637
+ export const ListOrgsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 120);
638
+ /**
639
+ * Describes the message zitadel.admin.v1.SetUpOrgRequest.
640
+ * Use `create(SetUpOrgRequestSchema)` to create a new message.
641
+ */
642
+ export const SetUpOrgRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 121);
643
+ /**
644
+ * Describes the message zitadel.admin.v1.SetUpOrgRequest.Org.
645
+ * Use `create(SetUpOrgRequest_OrgSchema)` to create a new message.
646
+ */
647
+ export const SetUpOrgRequest_OrgSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 121, 0);
648
+ /**
649
+ * Describes the message zitadel.admin.v1.SetUpOrgRequest.Human.
650
+ * Use `create(SetUpOrgRequest_HumanSchema)` to create a new message.
651
+ */
652
+ export const SetUpOrgRequest_HumanSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 121, 1);
653
+ /**
654
+ * Describes the message zitadel.admin.v1.SetUpOrgRequest.Human.Profile.
655
+ * Use `create(SetUpOrgRequest_Human_ProfileSchema)` to create a new message.
656
+ */
657
+ export const SetUpOrgRequest_Human_ProfileSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 121, 1, 0);
658
+ /**
659
+ * Describes the message zitadel.admin.v1.SetUpOrgRequest.Human.Email.
660
+ * Use `create(SetUpOrgRequest_Human_EmailSchema)` to create a new message.
661
+ */
662
+ export const SetUpOrgRequest_Human_EmailSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 121, 1, 1);
663
+ /**
664
+ * Describes the message zitadel.admin.v1.SetUpOrgRequest.Human.Phone.
665
+ * Use `create(SetUpOrgRequest_Human_PhoneSchema)` to create a new message.
666
+ */
667
+ export const SetUpOrgRequest_Human_PhoneSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 121, 1, 2);
668
+ /**
669
+ * Describes the message zitadel.admin.v1.SetUpOrgResponse.
670
+ * Use `create(SetUpOrgResponseSchema)` to create a new message.
671
+ */
672
+ export const SetUpOrgResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 122);
673
+ /**
674
+ * Describes the message zitadel.admin.v1.RemoveOrgRequest.
675
+ * Use `create(RemoveOrgRequestSchema)` to create a new message.
676
+ */
677
+ export const RemoveOrgRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 123);
678
+ /**
679
+ * Describes the message zitadel.admin.v1.RemoveOrgResponse.
680
+ * Use `create(RemoveOrgResponseSchema)` to create a new message.
681
+ */
682
+ export const RemoveOrgResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 124);
683
+ /**
684
+ * Describes the message zitadel.admin.v1.GetIDPByIDRequest.
685
+ * Use `create(GetIDPByIDRequestSchema)` to create a new message.
686
+ */
687
+ export const GetIDPByIDRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 125);
688
+ /**
689
+ * Describes the message zitadel.admin.v1.GetIDPByIDResponse.
690
+ * Use `create(GetIDPByIDResponseSchema)` to create a new message.
691
+ */
692
+ export const GetIDPByIDResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 126);
693
+ /**
694
+ * Describes the message zitadel.admin.v1.ListIDPsRequest.
695
+ * Use `create(ListIDPsRequestSchema)` to create a new message.
696
+ */
697
+ export const ListIDPsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 127);
698
+ /**
699
+ * Describes the message zitadel.admin.v1.IDPQuery.
700
+ * Use `create(IDPQuerySchema)` to create a new message.
701
+ */
702
+ export const IDPQuerySchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 128);
703
+ /**
704
+ * Describes the message zitadel.admin.v1.ListIDPsResponse.
705
+ * Use `create(ListIDPsResponseSchema)` to create a new message.
706
+ */
707
+ export const ListIDPsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 129);
708
+ /**
709
+ * Describes the message zitadel.admin.v1.AddOIDCIDPRequest.
710
+ * Use `create(AddOIDCIDPRequestSchema)` to create a new message.
711
+ */
712
+ export const AddOIDCIDPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 130);
713
+ /**
714
+ * Describes the message zitadel.admin.v1.AddOIDCIDPResponse.
715
+ * Use `create(AddOIDCIDPResponseSchema)` to create a new message.
716
+ */
717
+ export const AddOIDCIDPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 131);
718
+ /**
719
+ * Describes the message zitadel.admin.v1.AddJWTIDPRequest.
720
+ * Use `create(AddJWTIDPRequestSchema)` to create a new message.
721
+ */
722
+ export const AddJWTIDPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 132);
723
+ /**
724
+ * Describes the message zitadel.admin.v1.AddJWTIDPResponse.
725
+ * Use `create(AddJWTIDPResponseSchema)` to create a new message.
726
+ */
727
+ export const AddJWTIDPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 133);
728
+ /**
729
+ * Describes the message zitadel.admin.v1.UpdateIDPRequest.
730
+ * Use `create(UpdateIDPRequestSchema)` to create a new message.
731
+ */
732
+ export const UpdateIDPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 134);
733
+ /**
734
+ * Describes the message zitadel.admin.v1.UpdateIDPResponse.
735
+ * Use `create(UpdateIDPResponseSchema)` to create a new message.
736
+ */
737
+ export const UpdateIDPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 135);
738
+ /**
739
+ * Describes the message zitadel.admin.v1.DeactivateIDPRequest.
740
+ * Use `create(DeactivateIDPRequestSchema)` to create a new message.
741
+ */
742
+ export const DeactivateIDPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 136);
743
+ /**
744
+ * Describes the message zitadel.admin.v1.DeactivateIDPResponse.
745
+ * Use `create(DeactivateIDPResponseSchema)` to create a new message.
746
+ */
747
+ export const DeactivateIDPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 137);
748
+ /**
749
+ * Describes the message zitadel.admin.v1.ReactivateIDPRequest.
750
+ * Use `create(ReactivateIDPRequestSchema)` to create a new message.
751
+ */
752
+ export const ReactivateIDPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 138);
753
+ /**
754
+ * Describes the message zitadel.admin.v1.ReactivateIDPResponse.
755
+ * Use `create(ReactivateIDPResponseSchema)` to create a new message.
756
+ */
757
+ export const ReactivateIDPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 139);
758
+ /**
759
+ * Describes the message zitadel.admin.v1.RemoveIDPRequest.
760
+ * Use `create(RemoveIDPRequestSchema)` to create a new message.
761
+ */
762
+ export const RemoveIDPRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 140);
763
+ /**
764
+ * Describes the message zitadel.admin.v1.RemoveIDPResponse.
765
+ * Use `create(RemoveIDPResponseSchema)` to create a new message.
766
+ */
767
+ export const RemoveIDPResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 141);
768
+ /**
769
+ * Describes the message zitadel.admin.v1.UpdateIDPOIDCConfigRequest.
770
+ * Use `create(UpdateIDPOIDCConfigRequestSchema)` to create a new message.
771
+ */
772
+ export const UpdateIDPOIDCConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 142);
773
+ /**
774
+ * Describes the message zitadel.admin.v1.UpdateIDPOIDCConfigResponse.
775
+ * Use `create(UpdateIDPOIDCConfigResponseSchema)` to create a new message.
776
+ */
777
+ export const UpdateIDPOIDCConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 143);
778
+ /**
779
+ * Describes the message zitadel.admin.v1.UpdateIDPJWTConfigRequest.
780
+ * Use `create(UpdateIDPJWTConfigRequestSchema)` to create a new message.
781
+ */
782
+ export const UpdateIDPJWTConfigRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 144);
783
+ /**
784
+ * Describes the message zitadel.admin.v1.UpdateIDPJWTConfigResponse.
785
+ * Use `create(UpdateIDPJWTConfigResponseSchema)` to create a new message.
786
+ */
787
+ export const UpdateIDPJWTConfigResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 145);
788
+ /**
789
+ * Describes the message zitadel.admin.v1.ListProvidersRequest.
790
+ * Use `create(ListProvidersRequestSchema)` to create a new message.
791
+ */
792
+ export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 146);
793
+ /**
794
+ * Describes the message zitadel.admin.v1.ProviderQuery.
795
+ * Use `create(ProviderQuerySchema)` to create a new message.
796
+ */
797
+ export const ProviderQuerySchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 147);
798
+ /**
799
+ * Describes the message zitadel.admin.v1.ListProvidersResponse.
800
+ * Use `create(ListProvidersResponseSchema)` to create a new message.
801
+ */
802
+ export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 148);
803
+ /**
804
+ * Describes the message zitadel.admin.v1.GetProviderByIDRequest.
805
+ * Use `create(GetProviderByIDRequestSchema)` to create a new message.
806
+ */
807
+ export const GetProviderByIDRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 149);
808
+ /**
809
+ * Describes the message zitadel.admin.v1.GetProviderByIDResponse.
810
+ * Use `create(GetProviderByIDResponseSchema)` to create a new message.
811
+ */
812
+ export const GetProviderByIDResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 150);
813
+ /**
814
+ * Describes the message zitadel.admin.v1.AddGenericOAuthProviderRequest.
815
+ * Use `create(AddGenericOAuthProviderRequestSchema)` to create a new message.
816
+ */
817
+ export const AddGenericOAuthProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 151);
818
+ /**
819
+ * Describes the message zitadel.admin.v1.AddGenericOAuthProviderResponse.
820
+ * Use `create(AddGenericOAuthProviderResponseSchema)` to create a new message.
821
+ */
822
+ export const AddGenericOAuthProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 152);
823
+ /**
824
+ * Describes the message zitadel.admin.v1.UpdateGenericOAuthProviderRequest.
825
+ * Use `create(UpdateGenericOAuthProviderRequestSchema)` to create a new message.
826
+ */
827
+ export const UpdateGenericOAuthProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 153);
828
+ /**
829
+ * Describes the message zitadel.admin.v1.UpdateGenericOAuthProviderResponse.
830
+ * Use `create(UpdateGenericOAuthProviderResponseSchema)` to create a new message.
831
+ */
832
+ export const UpdateGenericOAuthProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 154);
833
+ /**
834
+ * Describes the message zitadel.admin.v1.AddGenericOIDCProviderRequest.
835
+ * Use `create(AddGenericOIDCProviderRequestSchema)` to create a new message.
836
+ */
837
+ export const AddGenericOIDCProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 155);
838
+ /**
839
+ * Describes the message zitadel.admin.v1.AddGenericOIDCProviderResponse.
840
+ * Use `create(AddGenericOIDCProviderResponseSchema)` to create a new message.
841
+ */
842
+ export const AddGenericOIDCProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 156);
843
+ /**
844
+ * Describes the message zitadel.admin.v1.UpdateGenericOIDCProviderRequest.
845
+ * Use `create(UpdateGenericOIDCProviderRequestSchema)` to create a new message.
846
+ */
847
+ export const UpdateGenericOIDCProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 157);
848
+ /**
849
+ * Describes the message zitadel.admin.v1.UpdateGenericOIDCProviderResponse.
850
+ * Use `create(UpdateGenericOIDCProviderResponseSchema)` to create a new message.
851
+ */
852
+ export const UpdateGenericOIDCProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 158);
853
+ /**
854
+ * Describes the message zitadel.admin.v1.MigrateGenericOIDCProviderRequest.
855
+ * Use `create(MigrateGenericOIDCProviderRequestSchema)` to create a new message.
856
+ */
857
+ export const MigrateGenericOIDCProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 159);
858
+ /**
859
+ * Describes the message zitadel.admin.v1.MigrateGenericOIDCProviderResponse.
860
+ * Use `create(MigrateGenericOIDCProviderResponseSchema)` to create a new message.
861
+ */
862
+ export const MigrateGenericOIDCProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 160);
863
+ /**
864
+ * Describes the message zitadel.admin.v1.AddJWTProviderRequest.
865
+ * Use `create(AddJWTProviderRequestSchema)` to create a new message.
866
+ */
867
+ export const AddJWTProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 161);
868
+ /**
869
+ * Describes the message zitadel.admin.v1.AddJWTProviderResponse.
870
+ * Use `create(AddJWTProviderResponseSchema)` to create a new message.
871
+ */
872
+ export const AddJWTProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 162);
873
+ /**
874
+ * Describes the message zitadel.admin.v1.UpdateJWTProviderRequest.
875
+ * Use `create(UpdateJWTProviderRequestSchema)` to create a new message.
876
+ */
877
+ export const UpdateJWTProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 163);
878
+ /**
879
+ * Describes the message zitadel.admin.v1.UpdateJWTProviderResponse.
880
+ * Use `create(UpdateJWTProviderResponseSchema)` to create a new message.
881
+ */
882
+ export const UpdateJWTProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 164);
883
+ /**
884
+ * Describes the message zitadel.admin.v1.AddAzureADProviderRequest.
885
+ * Use `create(AddAzureADProviderRequestSchema)` to create a new message.
886
+ */
887
+ export const AddAzureADProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 165);
888
+ /**
889
+ * Describes the message zitadel.admin.v1.AddAzureADProviderResponse.
890
+ * Use `create(AddAzureADProviderResponseSchema)` to create a new message.
891
+ */
892
+ export const AddAzureADProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 166);
893
+ /**
894
+ * Describes the message zitadel.admin.v1.UpdateAzureADProviderRequest.
895
+ * Use `create(UpdateAzureADProviderRequestSchema)` to create a new message.
896
+ */
897
+ export const UpdateAzureADProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 167);
898
+ /**
899
+ * Describes the message zitadel.admin.v1.UpdateAzureADProviderResponse.
900
+ * Use `create(UpdateAzureADProviderResponseSchema)` to create a new message.
901
+ */
902
+ export const UpdateAzureADProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 168);
903
+ /**
904
+ * Describes the message zitadel.admin.v1.AddGitHubProviderRequest.
905
+ * Use `create(AddGitHubProviderRequestSchema)` to create a new message.
906
+ */
907
+ export const AddGitHubProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 169);
908
+ /**
909
+ * Describes the message zitadel.admin.v1.AddGitHubProviderResponse.
910
+ * Use `create(AddGitHubProviderResponseSchema)` to create a new message.
911
+ */
912
+ export const AddGitHubProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 170);
913
+ /**
914
+ * Describes the message zitadel.admin.v1.UpdateGitHubProviderRequest.
915
+ * Use `create(UpdateGitHubProviderRequestSchema)` to create a new message.
916
+ */
917
+ export const UpdateGitHubProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 171);
918
+ /**
919
+ * Describes the message zitadel.admin.v1.UpdateGitHubProviderResponse.
920
+ * Use `create(UpdateGitHubProviderResponseSchema)` to create a new message.
921
+ */
922
+ export const UpdateGitHubProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 172);
923
+ /**
924
+ * Describes the message zitadel.admin.v1.AddGitHubEnterpriseServerProviderRequest.
925
+ * Use `create(AddGitHubEnterpriseServerProviderRequestSchema)` to create a new message.
926
+ */
927
+ export const AddGitHubEnterpriseServerProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 173);
928
+ /**
929
+ * Describes the message zitadel.admin.v1.AddGitHubEnterpriseServerProviderResponse.
930
+ * Use `create(AddGitHubEnterpriseServerProviderResponseSchema)` to create a new message.
931
+ */
932
+ export const AddGitHubEnterpriseServerProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 174);
933
+ /**
934
+ * Describes the message zitadel.admin.v1.UpdateGitHubEnterpriseServerProviderRequest.
935
+ * Use `create(UpdateGitHubEnterpriseServerProviderRequestSchema)` to create a new message.
936
+ */
937
+ export const UpdateGitHubEnterpriseServerProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 175);
938
+ /**
939
+ * Describes the message zitadel.admin.v1.UpdateGitHubEnterpriseServerProviderResponse.
940
+ * Use `create(UpdateGitHubEnterpriseServerProviderResponseSchema)` to create a new message.
941
+ */
942
+ export const UpdateGitHubEnterpriseServerProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 176);
943
+ /**
944
+ * Describes the message zitadel.admin.v1.AddGitLabProviderRequest.
945
+ * Use `create(AddGitLabProviderRequestSchema)` to create a new message.
946
+ */
947
+ export const AddGitLabProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 177);
948
+ /**
949
+ * Describes the message zitadel.admin.v1.AddGitLabProviderResponse.
950
+ * Use `create(AddGitLabProviderResponseSchema)` to create a new message.
951
+ */
952
+ export const AddGitLabProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 178);
953
+ /**
954
+ * Describes the message zitadel.admin.v1.UpdateGitLabProviderRequest.
955
+ * Use `create(UpdateGitLabProviderRequestSchema)` to create a new message.
956
+ */
957
+ export const UpdateGitLabProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 179);
958
+ /**
959
+ * Describes the message zitadel.admin.v1.UpdateGitLabProviderResponse.
960
+ * Use `create(UpdateGitLabProviderResponseSchema)` to create a new message.
961
+ */
962
+ export const UpdateGitLabProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 180);
963
+ /**
964
+ * Describes the message zitadel.admin.v1.AddGitLabSelfHostedProviderRequest.
965
+ * Use `create(AddGitLabSelfHostedProviderRequestSchema)` to create a new message.
966
+ */
967
+ export const AddGitLabSelfHostedProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 181);
968
+ /**
969
+ * Describes the message zitadel.admin.v1.AddGitLabSelfHostedProviderResponse.
970
+ * Use `create(AddGitLabSelfHostedProviderResponseSchema)` to create a new message.
971
+ */
972
+ export const AddGitLabSelfHostedProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 182);
973
+ /**
974
+ * Describes the message zitadel.admin.v1.UpdateGitLabSelfHostedProviderRequest.
975
+ * Use `create(UpdateGitLabSelfHostedProviderRequestSchema)` to create a new message.
976
+ */
977
+ export const UpdateGitLabSelfHostedProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 183);
978
+ /**
979
+ * Describes the message zitadel.admin.v1.UpdateGitLabSelfHostedProviderResponse.
980
+ * Use `create(UpdateGitLabSelfHostedProviderResponseSchema)` to create a new message.
981
+ */
982
+ export const UpdateGitLabSelfHostedProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 184);
983
+ /**
984
+ * Describes the message zitadel.admin.v1.AddGoogleProviderRequest.
985
+ * Use `create(AddGoogleProviderRequestSchema)` to create a new message.
986
+ */
987
+ export const AddGoogleProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 185);
988
+ /**
989
+ * Describes the message zitadel.admin.v1.AddGoogleProviderResponse.
990
+ * Use `create(AddGoogleProviderResponseSchema)` to create a new message.
991
+ */
992
+ export const AddGoogleProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 186);
993
+ /**
994
+ * Describes the message zitadel.admin.v1.UpdateGoogleProviderRequest.
995
+ * Use `create(UpdateGoogleProviderRequestSchema)` to create a new message.
996
+ */
997
+ export const UpdateGoogleProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 187);
998
+ /**
999
+ * Describes the message zitadel.admin.v1.UpdateGoogleProviderResponse.
1000
+ * Use `create(UpdateGoogleProviderResponseSchema)` to create a new message.
1001
+ */
1002
+ export const UpdateGoogleProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 188);
1003
+ /**
1004
+ * Describes the message zitadel.admin.v1.AddLDAPProviderRequest.
1005
+ * Use `create(AddLDAPProviderRequestSchema)` to create a new message.
1006
+ */
1007
+ export const AddLDAPProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 189);
1008
+ /**
1009
+ * Describes the message zitadel.admin.v1.AddLDAPProviderResponse.
1010
+ * Use `create(AddLDAPProviderResponseSchema)` to create a new message.
1011
+ */
1012
+ export const AddLDAPProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 190);
1013
+ /**
1014
+ * Describes the message zitadel.admin.v1.UpdateLDAPProviderRequest.
1015
+ * Use `create(UpdateLDAPProviderRequestSchema)` to create a new message.
1016
+ */
1017
+ export const UpdateLDAPProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 191);
1018
+ /**
1019
+ * Describes the message zitadel.admin.v1.UpdateLDAPProviderResponse.
1020
+ * Use `create(UpdateLDAPProviderResponseSchema)` to create a new message.
1021
+ */
1022
+ export const UpdateLDAPProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 192);
1023
+ /**
1024
+ * Describes the message zitadel.admin.v1.AddAppleProviderRequest.
1025
+ * Use `create(AddAppleProviderRequestSchema)` to create a new message.
1026
+ */
1027
+ export const AddAppleProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 193);
1028
+ /**
1029
+ * Describes the message zitadel.admin.v1.AddAppleProviderResponse.
1030
+ * Use `create(AddAppleProviderResponseSchema)` to create a new message.
1031
+ */
1032
+ export const AddAppleProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 194);
1033
+ /**
1034
+ * Describes the message zitadel.admin.v1.UpdateAppleProviderRequest.
1035
+ * Use `create(UpdateAppleProviderRequestSchema)` to create a new message.
1036
+ */
1037
+ export const UpdateAppleProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 195);
1038
+ /**
1039
+ * Describes the message zitadel.admin.v1.UpdateAppleProviderResponse.
1040
+ * Use `create(UpdateAppleProviderResponseSchema)` to create a new message.
1041
+ */
1042
+ export const UpdateAppleProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 196);
1043
+ /**
1044
+ * Describes the message zitadel.admin.v1.AddSAMLProviderRequest.
1045
+ * Use `create(AddSAMLProviderRequestSchema)` to create a new message.
1046
+ */
1047
+ export const AddSAMLProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 197);
1048
+ /**
1049
+ * Describes the message zitadel.admin.v1.AddSAMLProviderResponse.
1050
+ * Use `create(AddSAMLProviderResponseSchema)` to create a new message.
1051
+ */
1052
+ export const AddSAMLProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 198);
1053
+ /**
1054
+ * Describes the message zitadel.admin.v1.UpdateSAMLProviderRequest.
1055
+ * Use `create(UpdateSAMLProviderRequestSchema)` to create a new message.
1056
+ */
1057
+ export const UpdateSAMLProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 199);
1058
+ /**
1059
+ * Describes the message zitadel.admin.v1.UpdateSAMLProviderResponse.
1060
+ * Use `create(UpdateSAMLProviderResponseSchema)` to create a new message.
1061
+ */
1062
+ export const UpdateSAMLProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 200);
1063
+ /**
1064
+ * Describes the message zitadel.admin.v1.RegenerateSAMLProviderCertificateRequest.
1065
+ * Use `create(RegenerateSAMLProviderCertificateRequestSchema)` to create a new message.
1066
+ */
1067
+ export const RegenerateSAMLProviderCertificateRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 201);
1068
+ /**
1069
+ * Describes the message zitadel.admin.v1.RegenerateSAMLProviderCertificateResponse.
1070
+ * Use `create(RegenerateSAMLProviderCertificateResponseSchema)` to create a new message.
1071
+ */
1072
+ export const RegenerateSAMLProviderCertificateResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 202);
1073
+ /**
1074
+ * Describes the message zitadel.admin.v1.AddZitadelProviderRequest.
1075
+ * Use `create(AddZitadelProviderRequestSchema)` to create a new message.
1076
+ */
1077
+ export const AddZitadelProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 203);
1078
+ /**
1079
+ * Describes the message zitadel.admin.v1.AddZitadelProviderResponse.
1080
+ * Use `create(AddZitadelProviderResponseSchema)` to create a new message.
1081
+ */
1082
+ export const AddZitadelProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 204);
1083
+ /**
1084
+ * Describes the message zitadel.admin.v1.UpdateZitadelProviderRequest.
1085
+ * Use `create(UpdateZitadelProviderRequestSchema)` to create a new message.
1086
+ */
1087
+ export const UpdateZitadelProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 205);
1088
+ /**
1089
+ * Describes the message zitadel.admin.v1.UpdateZitadelProviderResponse.
1090
+ * Use `create(UpdateZitadelProviderResponseSchema)` to create a new message.
1091
+ */
1092
+ export const UpdateZitadelProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 206);
1093
+ /**
1094
+ * Describes the message zitadel.admin.v1.DeleteProviderRequest.
1095
+ * Use `create(DeleteProviderRequestSchema)` to create a new message.
1096
+ */
1097
+ export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 207);
1098
+ /**
1099
+ * Describes the message zitadel.admin.v1.DeleteProviderResponse.
1100
+ * Use `create(DeleteProviderResponseSchema)` to create a new message.
1101
+ */
1102
+ export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 208);
1103
+ /**
1104
+ * Describes the message zitadel.admin.v1.GetOrgIAMPolicyRequest.
1105
+ * Use `create(GetOrgIAMPolicyRequestSchema)` to create a new message.
1106
+ */
1107
+ export const GetOrgIAMPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 209);
1108
+ /**
1109
+ * Describes the message zitadel.admin.v1.GetOrgIAMPolicyResponse.
1110
+ * Use `create(GetOrgIAMPolicyResponseSchema)` to create a new message.
1111
+ */
1112
+ export const GetOrgIAMPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 210);
1113
+ /**
1114
+ * Describes the message zitadel.admin.v1.UpdateOrgIAMPolicyRequest.
1115
+ * Use `create(UpdateOrgIAMPolicyRequestSchema)` to create a new message.
1116
+ */
1117
+ export const UpdateOrgIAMPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 211);
1118
+ /**
1119
+ * Describes the message zitadel.admin.v1.UpdateOrgIAMPolicyResponse.
1120
+ * Use `create(UpdateOrgIAMPolicyResponseSchema)` to create a new message.
1121
+ */
1122
+ export const UpdateOrgIAMPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 212);
1123
+ /**
1124
+ * Describes the message zitadel.admin.v1.GetCustomOrgIAMPolicyRequest.
1125
+ * Use `create(GetCustomOrgIAMPolicyRequestSchema)` to create a new message.
1126
+ */
1127
+ export const GetCustomOrgIAMPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 213);
1128
+ /**
1129
+ * Describes the message zitadel.admin.v1.GetCustomOrgIAMPolicyResponse.
1130
+ * Use `create(GetCustomOrgIAMPolicyResponseSchema)` to create a new message.
1131
+ */
1132
+ export const GetCustomOrgIAMPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 214);
1133
+ /**
1134
+ * Describes the message zitadel.admin.v1.AddCustomOrgIAMPolicyRequest.
1135
+ * Use `create(AddCustomOrgIAMPolicyRequestSchema)` to create a new message.
1136
+ */
1137
+ export const AddCustomOrgIAMPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 215);
1138
+ /**
1139
+ * Describes the message zitadel.admin.v1.AddCustomOrgIAMPolicyResponse.
1140
+ * Use `create(AddCustomOrgIAMPolicyResponseSchema)` to create a new message.
1141
+ */
1142
+ export const AddCustomOrgIAMPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 216);
1143
+ /**
1144
+ * Describes the message zitadel.admin.v1.UpdateCustomOrgIAMPolicyRequest.
1145
+ * Use `create(UpdateCustomOrgIAMPolicyRequestSchema)` to create a new message.
1146
+ */
1147
+ export const UpdateCustomOrgIAMPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 217);
1148
+ /**
1149
+ * Describes the message zitadel.admin.v1.UpdateCustomOrgIAMPolicyResponse.
1150
+ * Use `create(UpdateCustomOrgIAMPolicyResponseSchema)` to create a new message.
1151
+ */
1152
+ export const UpdateCustomOrgIAMPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 218);
1153
+ /**
1154
+ * Describes the message zitadel.admin.v1.ResetCustomOrgIAMPolicyToDefaultRequest.
1155
+ * Use `create(ResetCustomOrgIAMPolicyToDefaultRequestSchema)` to create a new message.
1156
+ */
1157
+ export const ResetCustomOrgIAMPolicyToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 219);
1158
+ /**
1159
+ * Describes the message zitadel.admin.v1.ResetCustomOrgIAMPolicyToDefaultResponse.
1160
+ * Use `create(ResetCustomOrgIAMPolicyToDefaultResponseSchema)` to create a new message.
1161
+ */
1162
+ export const ResetCustomOrgIAMPolicyToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 220);
1163
+ /**
1164
+ * Describes the message zitadel.admin.v1.GetDomainPolicyRequest.
1165
+ * Use `create(GetDomainPolicyRequestSchema)` to create a new message.
1166
+ */
1167
+ export const GetDomainPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 221);
1168
+ /**
1169
+ * Describes the message zitadel.admin.v1.GetDomainPolicyResponse.
1170
+ * Use `create(GetDomainPolicyResponseSchema)` to create a new message.
1171
+ */
1172
+ export const GetDomainPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 222);
1173
+ /**
1174
+ * Describes the message zitadel.admin.v1.UpdateDomainPolicyRequest.
1175
+ * Use `create(UpdateDomainPolicyRequestSchema)` to create a new message.
1176
+ */
1177
+ export const UpdateDomainPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 223);
1178
+ /**
1179
+ * Describes the message zitadel.admin.v1.UpdateDomainPolicyResponse.
1180
+ * Use `create(UpdateDomainPolicyResponseSchema)` to create a new message.
1181
+ */
1182
+ export const UpdateDomainPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 224);
1183
+ /**
1184
+ * Describes the message zitadel.admin.v1.GetCustomDomainPolicyRequest.
1185
+ * Use `create(GetCustomDomainPolicyRequestSchema)` to create a new message.
1186
+ */
1187
+ export const GetCustomDomainPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 225);
1188
+ /**
1189
+ * Describes the message zitadel.admin.v1.GetCustomDomainPolicyResponse.
1190
+ * Use `create(GetCustomDomainPolicyResponseSchema)` to create a new message.
1191
+ */
1192
+ export const GetCustomDomainPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 226);
1193
+ /**
1194
+ * Describes the message zitadel.admin.v1.AddCustomDomainPolicyRequest.
1195
+ * Use `create(AddCustomDomainPolicyRequestSchema)` to create a new message.
1196
+ */
1197
+ export const AddCustomDomainPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 227);
1198
+ /**
1199
+ * Describes the message zitadel.admin.v1.AddCustomDomainPolicyResponse.
1200
+ * Use `create(AddCustomDomainPolicyResponseSchema)` to create a new message.
1201
+ */
1202
+ export const AddCustomDomainPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 228);
1203
+ /**
1204
+ * Describes the message zitadel.admin.v1.UpdateCustomDomainPolicyRequest.
1205
+ * Use `create(UpdateCustomDomainPolicyRequestSchema)` to create a new message.
1206
+ */
1207
+ export const UpdateCustomDomainPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 229);
1208
+ /**
1209
+ * Describes the message zitadel.admin.v1.UpdateCustomDomainPolicyResponse.
1210
+ * Use `create(UpdateCustomDomainPolicyResponseSchema)` to create a new message.
1211
+ */
1212
+ export const UpdateCustomDomainPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 230);
1213
+ /**
1214
+ * Describes the message zitadel.admin.v1.ResetCustomDomainPolicyToDefaultRequest.
1215
+ * Use `create(ResetCustomDomainPolicyToDefaultRequestSchema)` to create a new message.
1216
+ */
1217
+ export const ResetCustomDomainPolicyToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 231);
1218
+ /**
1219
+ * Describes the message zitadel.admin.v1.ResetCustomDomainPolicyToDefaultResponse.
1220
+ * Use `create(ResetCustomDomainPolicyToDefaultResponseSchema)` to create a new message.
1221
+ */
1222
+ export const ResetCustomDomainPolicyToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 232);
1223
+ /**
1224
+ * Describes the message zitadel.admin.v1.GetLabelPolicyRequest.
1225
+ * Use `create(GetLabelPolicyRequestSchema)` to create a new message.
1226
+ */
1227
+ export const GetLabelPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 233);
1228
+ /**
1229
+ * Describes the message zitadel.admin.v1.GetLabelPolicyResponse.
1230
+ * Use `create(GetLabelPolicyResponseSchema)` to create a new message.
1231
+ */
1232
+ export const GetLabelPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 234);
1233
+ /**
1234
+ * Describes the message zitadel.admin.v1.GetPreviewLabelPolicyRequest.
1235
+ * Use `create(GetPreviewLabelPolicyRequestSchema)` to create a new message.
1236
+ */
1237
+ export const GetPreviewLabelPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 235);
1238
+ /**
1239
+ * Describes the message zitadel.admin.v1.GetPreviewLabelPolicyResponse.
1240
+ * Use `create(GetPreviewLabelPolicyResponseSchema)` to create a new message.
1241
+ */
1242
+ export const GetPreviewLabelPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 236);
1243
+ /**
1244
+ * Describes the message zitadel.admin.v1.UpdateLabelPolicyRequest.
1245
+ * Use `create(UpdateLabelPolicyRequestSchema)` to create a new message.
1246
+ */
1247
+ export const UpdateLabelPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 237);
1248
+ /**
1249
+ * Describes the message zitadel.admin.v1.UpdateLabelPolicyResponse.
1250
+ * Use `create(UpdateLabelPolicyResponseSchema)` to create a new message.
1251
+ */
1252
+ export const UpdateLabelPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 238);
1253
+ /**
1254
+ * Describes the message zitadel.admin.v1.ActivateLabelPolicyRequest.
1255
+ * Use `create(ActivateLabelPolicyRequestSchema)` to create a new message.
1256
+ */
1257
+ export const ActivateLabelPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 239);
1258
+ /**
1259
+ * Describes the message zitadel.admin.v1.ActivateLabelPolicyResponse.
1260
+ * Use `create(ActivateLabelPolicyResponseSchema)` to create a new message.
1261
+ */
1262
+ export const ActivateLabelPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 240);
1263
+ /**
1264
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyLogoRequest.
1265
+ * Use `create(RemoveLabelPolicyLogoRequestSchema)` to create a new message.
1266
+ */
1267
+ export const RemoveLabelPolicyLogoRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 241);
1268
+ /**
1269
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyLogoResponse.
1270
+ * Use `create(RemoveLabelPolicyLogoResponseSchema)` to create a new message.
1271
+ */
1272
+ export const RemoveLabelPolicyLogoResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 242);
1273
+ /**
1274
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyLogoDarkRequest.
1275
+ * Use `create(RemoveLabelPolicyLogoDarkRequestSchema)` to create a new message.
1276
+ */
1277
+ export const RemoveLabelPolicyLogoDarkRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 243);
1278
+ /**
1279
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyLogoDarkResponse.
1280
+ * Use `create(RemoveLabelPolicyLogoDarkResponseSchema)` to create a new message.
1281
+ */
1282
+ export const RemoveLabelPolicyLogoDarkResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 244);
1283
+ /**
1284
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyIconRequest.
1285
+ * Use `create(RemoveLabelPolicyIconRequestSchema)` to create a new message.
1286
+ */
1287
+ export const RemoveLabelPolicyIconRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 245);
1288
+ /**
1289
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyIconResponse.
1290
+ * Use `create(RemoveLabelPolicyIconResponseSchema)` to create a new message.
1291
+ */
1292
+ export const RemoveLabelPolicyIconResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 246);
1293
+ /**
1294
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyIconDarkRequest.
1295
+ * Use `create(RemoveLabelPolicyIconDarkRequestSchema)` to create a new message.
1296
+ */
1297
+ export const RemoveLabelPolicyIconDarkRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 247);
1298
+ /**
1299
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyIconDarkResponse.
1300
+ * Use `create(RemoveLabelPolicyIconDarkResponseSchema)` to create a new message.
1301
+ */
1302
+ export const RemoveLabelPolicyIconDarkResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 248);
1303
+ /**
1304
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyFontRequest.
1305
+ * Use `create(RemoveLabelPolicyFontRequestSchema)` to create a new message.
1306
+ */
1307
+ export const RemoveLabelPolicyFontRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 249);
1308
+ /**
1309
+ * Describes the message zitadel.admin.v1.RemoveLabelPolicyFontResponse.
1310
+ * Use `create(RemoveLabelPolicyFontResponseSchema)` to create a new message.
1311
+ */
1312
+ export const RemoveLabelPolicyFontResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 250);
1313
+ /**
1314
+ * Describes the message zitadel.admin.v1.GetLoginPolicyRequest.
1315
+ * Use `create(GetLoginPolicyRequestSchema)` to create a new message.
1316
+ */
1317
+ export const GetLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 251);
1318
+ /**
1319
+ * Describes the message zitadel.admin.v1.GetLoginPolicyResponse.
1320
+ * Use `create(GetLoginPolicyResponseSchema)` to create a new message.
1321
+ */
1322
+ export const GetLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 252);
1323
+ /**
1324
+ * Describes the message zitadel.admin.v1.UpdateLoginPolicyRequest.
1325
+ * Use `create(UpdateLoginPolicyRequestSchema)` to create a new message.
1326
+ */
1327
+ export const UpdateLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 253);
1328
+ /**
1329
+ * Describes the message zitadel.admin.v1.UpdateLoginPolicyResponse.
1330
+ * Use `create(UpdateLoginPolicyResponseSchema)` to create a new message.
1331
+ */
1332
+ export const UpdateLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 254);
1333
+ /**
1334
+ * Describes the message zitadel.admin.v1.ListLoginPolicyIDPsRequest.
1335
+ * Use `create(ListLoginPolicyIDPsRequestSchema)` to create a new message.
1336
+ */
1337
+ export const ListLoginPolicyIDPsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 255);
1338
+ /**
1339
+ * Describes the message zitadel.admin.v1.ListLoginPolicyIDPsResponse.
1340
+ * Use `create(ListLoginPolicyIDPsResponseSchema)` to create a new message.
1341
+ */
1342
+ export const ListLoginPolicyIDPsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 256);
1343
+ /**
1344
+ * Describes the message zitadel.admin.v1.AddIDPToLoginPolicyRequest.
1345
+ * Use `create(AddIDPToLoginPolicyRequestSchema)` to create a new message.
1346
+ */
1347
+ export const AddIDPToLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 257);
1348
+ /**
1349
+ * Describes the message zitadel.admin.v1.AddIDPToLoginPolicyResponse.
1350
+ * Use `create(AddIDPToLoginPolicyResponseSchema)` to create a new message.
1351
+ */
1352
+ export const AddIDPToLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 258);
1353
+ /**
1354
+ * Describes the message zitadel.admin.v1.RemoveIDPFromLoginPolicyRequest.
1355
+ * Use `create(RemoveIDPFromLoginPolicyRequestSchema)` to create a new message.
1356
+ */
1357
+ export const RemoveIDPFromLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 259);
1358
+ /**
1359
+ * Describes the message zitadel.admin.v1.RemoveIDPFromLoginPolicyResponse.
1360
+ * Use `create(RemoveIDPFromLoginPolicyResponseSchema)` to create a new message.
1361
+ */
1362
+ export const RemoveIDPFromLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 260);
1363
+ /**
1364
+ * Describes the message zitadel.admin.v1.ListLoginPolicySecondFactorsRequest.
1365
+ * Use `create(ListLoginPolicySecondFactorsRequestSchema)` to create a new message.
1366
+ */
1367
+ export const ListLoginPolicySecondFactorsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 261);
1368
+ /**
1369
+ * Describes the message zitadel.admin.v1.ListLoginPolicySecondFactorsResponse.
1370
+ * Use `create(ListLoginPolicySecondFactorsResponseSchema)` to create a new message.
1371
+ */
1372
+ export const ListLoginPolicySecondFactorsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 262);
1373
+ /**
1374
+ * Describes the message zitadel.admin.v1.AddSecondFactorToLoginPolicyRequest.
1375
+ * Use `create(AddSecondFactorToLoginPolicyRequestSchema)` to create a new message.
1376
+ */
1377
+ export const AddSecondFactorToLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 263);
1378
+ /**
1379
+ * Describes the message zitadel.admin.v1.AddSecondFactorToLoginPolicyResponse.
1380
+ * Use `create(AddSecondFactorToLoginPolicyResponseSchema)` to create a new message.
1381
+ */
1382
+ export const AddSecondFactorToLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 264);
1383
+ /**
1384
+ * Describes the message zitadel.admin.v1.RemoveSecondFactorFromLoginPolicyRequest.
1385
+ * Use `create(RemoveSecondFactorFromLoginPolicyRequestSchema)` to create a new message.
1386
+ */
1387
+ export const RemoveSecondFactorFromLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 265);
1388
+ /**
1389
+ * Describes the message zitadel.admin.v1.RemoveSecondFactorFromLoginPolicyResponse.
1390
+ * Use `create(RemoveSecondFactorFromLoginPolicyResponseSchema)` to create a new message.
1391
+ */
1392
+ export const RemoveSecondFactorFromLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 266);
1393
+ /**
1394
+ * Describes the message zitadel.admin.v1.ListLoginPolicyMultiFactorsRequest.
1395
+ * Use `create(ListLoginPolicyMultiFactorsRequestSchema)` to create a new message.
1396
+ */
1397
+ export const ListLoginPolicyMultiFactorsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 267);
1398
+ /**
1399
+ * Describes the message zitadel.admin.v1.ListLoginPolicyMultiFactorsResponse.
1400
+ * Use `create(ListLoginPolicyMultiFactorsResponseSchema)` to create a new message.
1401
+ */
1402
+ export const ListLoginPolicyMultiFactorsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 268);
1403
+ /**
1404
+ * Describes the message zitadel.admin.v1.AddMultiFactorToLoginPolicyRequest.
1405
+ * Use `create(AddMultiFactorToLoginPolicyRequestSchema)` to create a new message.
1406
+ */
1407
+ export const AddMultiFactorToLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 269);
1408
+ /**
1409
+ * Describes the message zitadel.admin.v1.AddMultiFactorToLoginPolicyResponse.
1410
+ * Use `create(AddMultiFactorToLoginPolicyResponseSchema)` to create a new message.
1411
+ */
1412
+ export const AddMultiFactorToLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 270);
1413
+ /**
1414
+ * Describes the message zitadel.admin.v1.RemoveMultiFactorFromLoginPolicyRequest.
1415
+ * Use `create(RemoveMultiFactorFromLoginPolicyRequestSchema)` to create a new message.
1416
+ */
1417
+ export const RemoveMultiFactorFromLoginPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 271);
1418
+ /**
1419
+ * Describes the message zitadel.admin.v1.RemoveMultiFactorFromLoginPolicyResponse.
1420
+ * Use `create(RemoveMultiFactorFromLoginPolicyResponseSchema)` to create a new message.
1421
+ */
1422
+ export const RemoveMultiFactorFromLoginPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 272);
1423
+ /**
1424
+ * Describes the message zitadel.admin.v1.GetPasswordComplexityPolicyRequest.
1425
+ * Use `create(GetPasswordComplexityPolicyRequestSchema)` to create a new message.
1426
+ */
1427
+ export const GetPasswordComplexityPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 273);
1428
+ /**
1429
+ * Describes the message zitadel.admin.v1.GetPasswordComplexityPolicyResponse.
1430
+ * Use `create(GetPasswordComplexityPolicyResponseSchema)` to create a new message.
1431
+ */
1432
+ export const GetPasswordComplexityPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 274);
1433
+ /**
1434
+ * Describes the message zitadel.admin.v1.UpdatePasswordComplexityPolicyRequest.
1435
+ * Use `create(UpdatePasswordComplexityPolicyRequestSchema)` to create a new message.
1436
+ */
1437
+ export const UpdatePasswordComplexityPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 275);
1438
+ /**
1439
+ * Describes the message zitadel.admin.v1.UpdatePasswordComplexityPolicyResponse.
1440
+ * Use `create(UpdatePasswordComplexityPolicyResponseSchema)` to create a new message.
1441
+ */
1442
+ export const UpdatePasswordComplexityPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 276);
1443
+ /**
1444
+ * Describes the message zitadel.admin.v1.GetPasswordAgePolicyRequest.
1445
+ * Use `create(GetPasswordAgePolicyRequestSchema)` to create a new message.
1446
+ */
1447
+ export const GetPasswordAgePolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 277);
1448
+ /**
1449
+ * Describes the message zitadel.admin.v1.GetPasswordAgePolicyResponse.
1450
+ * Use `create(GetPasswordAgePolicyResponseSchema)` to create a new message.
1451
+ */
1452
+ export const GetPasswordAgePolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 278);
1453
+ /**
1454
+ * Describes the message zitadel.admin.v1.UpdatePasswordAgePolicyRequest.
1455
+ * Use `create(UpdatePasswordAgePolicyRequestSchema)` to create a new message.
1456
+ */
1457
+ export const UpdatePasswordAgePolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 279);
1458
+ /**
1459
+ * Describes the message zitadel.admin.v1.UpdatePasswordAgePolicyResponse.
1460
+ * Use `create(UpdatePasswordAgePolicyResponseSchema)` to create a new message.
1461
+ */
1462
+ export const UpdatePasswordAgePolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 280);
1463
+ /**
1464
+ * Describes the message zitadel.admin.v1.GetLockoutPolicyRequest.
1465
+ * Use `create(GetLockoutPolicyRequestSchema)` to create a new message.
1466
+ */
1467
+ export const GetLockoutPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 281);
1468
+ /**
1469
+ * Describes the message zitadel.admin.v1.GetLockoutPolicyResponse.
1470
+ * Use `create(GetLockoutPolicyResponseSchema)` to create a new message.
1471
+ */
1472
+ export const GetLockoutPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 282);
1473
+ /**
1474
+ * Describes the message zitadel.admin.v1.UpdateLockoutPolicyRequest.
1475
+ * Use `create(UpdateLockoutPolicyRequestSchema)` to create a new message.
1476
+ */
1477
+ export const UpdateLockoutPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 283);
1478
+ /**
1479
+ * Describes the message zitadel.admin.v1.UpdateLockoutPolicyResponse.
1480
+ * Use `create(UpdateLockoutPolicyResponseSchema)` to create a new message.
1481
+ */
1482
+ export const UpdateLockoutPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 284);
1483
+ /**
1484
+ * Describes the message zitadel.admin.v1.GetPrivacyPolicyRequest.
1485
+ * Use `create(GetPrivacyPolicyRequestSchema)` to create a new message.
1486
+ */
1487
+ export const GetPrivacyPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 285);
1488
+ /**
1489
+ * Describes the message zitadel.admin.v1.GetPrivacyPolicyResponse.
1490
+ * Use `create(GetPrivacyPolicyResponseSchema)` to create a new message.
1491
+ */
1492
+ export const GetPrivacyPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 286);
1493
+ /**
1494
+ * Describes the message zitadel.admin.v1.UpdatePrivacyPolicyRequest.
1495
+ * Use `create(UpdatePrivacyPolicyRequestSchema)` to create a new message.
1496
+ */
1497
+ export const UpdatePrivacyPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 287);
1498
+ /**
1499
+ * Describes the message zitadel.admin.v1.UpdatePrivacyPolicyResponse.
1500
+ * Use `create(UpdatePrivacyPolicyResponseSchema)` to create a new message.
1501
+ */
1502
+ export const UpdatePrivacyPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 288);
1503
+ /**
1504
+ * Describes the message zitadel.admin.v1.AddNotificationPolicyRequest.
1505
+ * Use `create(AddNotificationPolicyRequestSchema)` to create a new message.
1506
+ */
1507
+ export const AddNotificationPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 289);
1508
+ /**
1509
+ * Describes the message zitadel.admin.v1.AddNotificationPolicyResponse.
1510
+ * Use `create(AddNotificationPolicyResponseSchema)` to create a new message.
1511
+ */
1512
+ export const AddNotificationPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 290);
1513
+ /**
1514
+ * Describes the message zitadel.admin.v1.GetNotificationPolicyRequest.
1515
+ * Use `create(GetNotificationPolicyRequestSchema)` to create a new message.
1516
+ */
1517
+ export const GetNotificationPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 291);
1518
+ /**
1519
+ * Describes the message zitadel.admin.v1.GetNotificationPolicyResponse.
1520
+ * Use `create(GetNotificationPolicyResponseSchema)` to create a new message.
1521
+ */
1522
+ export const GetNotificationPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 292);
1523
+ /**
1524
+ * Describes the message zitadel.admin.v1.UpdateNotificationPolicyRequest.
1525
+ * Use `create(UpdateNotificationPolicyRequestSchema)` to create a new message.
1526
+ */
1527
+ export const UpdateNotificationPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 293);
1528
+ /**
1529
+ * Describes the message zitadel.admin.v1.UpdateNotificationPolicyResponse.
1530
+ * Use `create(UpdateNotificationPolicyResponseSchema)` to create a new message.
1531
+ */
1532
+ export const UpdateNotificationPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 294);
1533
+ /**
1534
+ * Describes the message zitadel.admin.v1.GetDefaultInitMessageTextRequest.
1535
+ * Use `create(GetDefaultInitMessageTextRequestSchema)` to create a new message.
1536
+ */
1537
+ export const GetDefaultInitMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 295);
1538
+ /**
1539
+ * Describes the message zitadel.admin.v1.GetDefaultInitMessageTextResponse.
1540
+ * Use `create(GetDefaultInitMessageTextResponseSchema)` to create a new message.
1541
+ */
1542
+ export const GetDefaultInitMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 296);
1543
+ /**
1544
+ * Describes the message zitadel.admin.v1.GetCustomInitMessageTextRequest.
1545
+ * Use `create(GetCustomInitMessageTextRequestSchema)` to create a new message.
1546
+ */
1547
+ export const GetCustomInitMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 297);
1548
+ /**
1549
+ * Describes the message zitadel.admin.v1.GetCustomInitMessageTextResponse.
1550
+ * Use `create(GetCustomInitMessageTextResponseSchema)` to create a new message.
1551
+ */
1552
+ export const GetCustomInitMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 298);
1553
+ /**
1554
+ * Describes the message zitadel.admin.v1.SetDefaultInitMessageTextRequest.
1555
+ * Use `create(SetDefaultInitMessageTextRequestSchema)` to create a new message.
1556
+ */
1557
+ export const SetDefaultInitMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 299);
1558
+ /**
1559
+ * Describes the message zitadel.admin.v1.SetDefaultInitMessageTextResponse.
1560
+ * Use `create(SetDefaultInitMessageTextResponseSchema)` to create a new message.
1561
+ */
1562
+ export const SetDefaultInitMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 300);
1563
+ /**
1564
+ * Describes the message zitadel.admin.v1.ResetCustomInitMessageTextToDefaultRequest.
1565
+ * Use `create(ResetCustomInitMessageTextToDefaultRequestSchema)` to create a new message.
1566
+ */
1567
+ export const ResetCustomInitMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 301);
1568
+ /**
1569
+ * Describes the message zitadel.admin.v1.ResetCustomInitMessageTextToDefaultResponse.
1570
+ * Use `create(ResetCustomInitMessageTextToDefaultResponseSchema)` to create a new message.
1571
+ */
1572
+ export const ResetCustomInitMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 302);
1573
+ /**
1574
+ * Describes the message zitadel.admin.v1.GetDefaultPasswordResetMessageTextRequest.
1575
+ * Use `create(GetDefaultPasswordResetMessageTextRequestSchema)` to create a new message.
1576
+ */
1577
+ export const GetDefaultPasswordResetMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 303);
1578
+ /**
1579
+ * Describes the message zitadel.admin.v1.GetDefaultPasswordResetMessageTextResponse.
1580
+ * Use `create(GetDefaultPasswordResetMessageTextResponseSchema)` to create a new message.
1581
+ */
1582
+ export const GetDefaultPasswordResetMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 304);
1583
+ /**
1584
+ * Describes the message zitadel.admin.v1.GetCustomPasswordResetMessageTextRequest.
1585
+ * Use `create(GetCustomPasswordResetMessageTextRequestSchema)` to create a new message.
1586
+ */
1587
+ export const GetCustomPasswordResetMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 305);
1588
+ /**
1589
+ * Describes the message zitadel.admin.v1.GetCustomPasswordResetMessageTextResponse.
1590
+ * Use `create(GetCustomPasswordResetMessageTextResponseSchema)` to create a new message.
1591
+ */
1592
+ export const GetCustomPasswordResetMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 306);
1593
+ /**
1594
+ * Describes the message zitadel.admin.v1.SetDefaultPasswordResetMessageTextRequest.
1595
+ * Use `create(SetDefaultPasswordResetMessageTextRequestSchema)` to create a new message.
1596
+ */
1597
+ export const SetDefaultPasswordResetMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 307);
1598
+ /**
1599
+ * Describes the message zitadel.admin.v1.SetDefaultPasswordResetMessageTextResponse.
1600
+ * Use `create(SetDefaultPasswordResetMessageTextResponseSchema)` to create a new message.
1601
+ */
1602
+ export const SetDefaultPasswordResetMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 308);
1603
+ /**
1604
+ * Describes the message zitadel.admin.v1.ResetCustomPasswordResetMessageTextToDefaultRequest.
1605
+ * Use `create(ResetCustomPasswordResetMessageTextToDefaultRequestSchema)` to create a new message.
1606
+ */
1607
+ export const ResetCustomPasswordResetMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 309);
1608
+ /**
1609
+ * Describes the message zitadel.admin.v1.ResetCustomPasswordResetMessageTextToDefaultResponse.
1610
+ * Use `create(ResetCustomPasswordResetMessageTextToDefaultResponseSchema)` to create a new message.
1611
+ */
1612
+ export const ResetCustomPasswordResetMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 310);
1613
+ /**
1614
+ * Describes the message zitadel.admin.v1.GetDefaultVerifyEmailMessageTextRequest.
1615
+ * Use `create(GetDefaultVerifyEmailMessageTextRequestSchema)` to create a new message.
1616
+ */
1617
+ export const GetDefaultVerifyEmailMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 311);
1618
+ /**
1619
+ * Describes the message zitadel.admin.v1.GetDefaultVerifyEmailMessageTextResponse.
1620
+ * Use `create(GetDefaultVerifyEmailMessageTextResponseSchema)` to create a new message.
1621
+ */
1622
+ export const GetDefaultVerifyEmailMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 312);
1623
+ /**
1624
+ * Describes the message zitadel.admin.v1.GetCustomVerifyEmailMessageTextRequest.
1625
+ * Use `create(GetCustomVerifyEmailMessageTextRequestSchema)` to create a new message.
1626
+ */
1627
+ export const GetCustomVerifyEmailMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 313);
1628
+ /**
1629
+ * Describes the message zitadel.admin.v1.GetCustomVerifyEmailMessageTextResponse.
1630
+ * Use `create(GetCustomVerifyEmailMessageTextResponseSchema)` to create a new message.
1631
+ */
1632
+ export const GetCustomVerifyEmailMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 314);
1633
+ /**
1634
+ * Describes the message zitadel.admin.v1.SetDefaultVerifyEmailMessageTextRequest.
1635
+ * Use `create(SetDefaultVerifyEmailMessageTextRequestSchema)` to create a new message.
1636
+ */
1637
+ export const SetDefaultVerifyEmailMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 315);
1638
+ /**
1639
+ * Describes the message zitadel.admin.v1.SetDefaultVerifyEmailMessageTextResponse.
1640
+ * Use `create(SetDefaultVerifyEmailMessageTextResponseSchema)` to create a new message.
1641
+ */
1642
+ export const SetDefaultVerifyEmailMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 316);
1643
+ /**
1644
+ * Describes the message zitadel.admin.v1.ResetCustomVerifyEmailMessageTextToDefaultRequest.
1645
+ * Use `create(ResetCustomVerifyEmailMessageTextToDefaultRequestSchema)` to create a new message.
1646
+ */
1647
+ export const ResetCustomVerifyEmailMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 317);
1648
+ /**
1649
+ * Describes the message zitadel.admin.v1.ResetCustomVerifyEmailMessageTextToDefaultResponse.
1650
+ * Use `create(ResetCustomVerifyEmailMessageTextToDefaultResponseSchema)` to create a new message.
1651
+ */
1652
+ export const ResetCustomVerifyEmailMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 318);
1653
+ /**
1654
+ * Describes the message zitadel.admin.v1.GetDefaultVerifyPhoneMessageTextRequest.
1655
+ * Use `create(GetDefaultVerifyPhoneMessageTextRequestSchema)` to create a new message.
1656
+ */
1657
+ export const GetDefaultVerifyPhoneMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 319);
1658
+ /**
1659
+ * Describes the message zitadel.admin.v1.GetDefaultVerifyPhoneMessageTextResponse.
1660
+ * Use `create(GetDefaultVerifyPhoneMessageTextResponseSchema)` to create a new message.
1661
+ */
1662
+ export const GetDefaultVerifyPhoneMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 320);
1663
+ /**
1664
+ * Describes the message zitadel.admin.v1.GetCustomVerifyPhoneMessageTextRequest.
1665
+ * Use `create(GetCustomVerifyPhoneMessageTextRequestSchema)` to create a new message.
1666
+ */
1667
+ export const GetCustomVerifyPhoneMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 321);
1668
+ /**
1669
+ * Describes the message zitadel.admin.v1.GetCustomVerifyPhoneMessageTextResponse.
1670
+ * Use `create(GetCustomVerifyPhoneMessageTextResponseSchema)` to create a new message.
1671
+ */
1672
+ export const GetCustomVerifyPhoneMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 322);
1673
+ /**
1674
+ * Describes the message zitadel.admin.v1.SetDefaultVerifyPhoneMessageTextRequest.
1675
+ * Use `create(SetDefaultVerifyPhoneMessageTextRequestSchema)` to create a new message.
1676
+ */
1677
+ export const SetDefaultVerifyPhoneMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 323);
1678
+ /**
1679
+ * Describes the message zitadel.admin.v1.SetDefaultVerifyPhoneMessageTextResponse.
1680
+ * Use `create(SetDefaultVerifyPhoneMessageTextResponseSchema)` to create a new message.
1681
+ */
1682
+ export const SetDefaultVerifyPhoneMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 324);
1683
+ /**
1684
+ * Describes the message zitadel.admin.v1.ResetCustomVerifyPhoneMessageTextToDefaultRequest.
1685
+ * Use `create(ResetCustomVerifyPhoneMessageTextToDefaultRequestSchema)` to create a new message.
1686
+ */
1687
+ export const ResetCustomVerifyPhoneMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 325);
1688
+ /**
1689
+ * Describes the message zitadel.admin.v1.ResetCustomVerifyPhoneMessageTextToDefaultResponse.
1690
+ * Use `create(ResetCustomVerifyPhoneMessageTextToDefaultResponseSchema)` to create a new message.
1691
+ */
1692
+ export const ResetCustomVerifyPhoneMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 326);
1693
+ /**
1694
+ * Describes the message zitadel.admin.v1.GetCustomVerifySMSOTPMessageTextRequest.
1695
+ * Use `create(GetCustomVerifySMSOTPMessageTextRequestSchema)` to create a new message.
1696
+ */
1697
+ export const GetCustomVerifySMSOTPMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 327);
1698
+ /**
1699
+ * Describes the message zitadel.admin.v1.GetCustomVerifySMSOTPMessageTextResponse.
1700
+ * Use `create(GetCustomVerifySMSOTPMessageTextResponseSchema)` to create a new message.
1701
+ */
1702
+ export const GetCustomVerifySMSOTPMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 328);
1703
+ /**
1704
+ * Describes the message zitadel.admin.v1.GetDefaultVerifySMSOTPMessageTextRequest.
1705
+ * Use `create(GetDefaultVerifySMSOTPMessageTextRequestSchema)` to create a new message.
1706
+ */
1707
+ export const GetDefaultVerifySMSOTPMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 329);
1708
+ /**
1709
+ * Describes the message zitadel.admin.v1.GetDefaultVerifySMSOTPMessageTextResponse.
1710
+ * Use `create(GetDefaultVerifySMSOTPMessageTextResponseSchema)` to create a new message.
1711
+ */
1712
+ export const GetDefaultVerifySMSOTPMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 330);
1713
+ /**
1714
+ * Describes the message zitadel.admin.v1.SetDefaultVerifySMSOTPMessageTextRequest.
1715
+ * Use `create(SetDefaultVerifySMSOTPMessageTextRequestSchema)` to create a new message.
1716
+ */
1717
+ export const SetDefaultVerifySMSOTPMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 331);
1718
+ /**
1719
+ * Describes the message zitadel.admin.v1.SetDefaultVerifySMSOTPMessageTextResponse.
1720
+ * Use `create(SetDefaultVerifySMSOTPMessageTextResponseSchema)` to create a new message.
1721
+ */
1722
+ export const SetDefaultVerifySMSOTPMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 332);
1723
+ /**
1724
+ * Describes the message zitadel.admin.v1.ResetCustomVerifySMSOTPMessageTextToDefaultRequest.
1725
+ * Use `create(ResetCustomVerifySMSOTPMessageTextToDefaultRequestSchema)` to create a new message.
1726
+ */
1727
+ export const ResetCustomVerifySMSOTPMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 333);
1728
+ /**
1729
+ * Describes the message zitadel.admin.v1.ResetCustomVerifySMSOTPMessageTextToDefaultResponse.
1730
+ * Use `create(ResetCustomVerifySMSOTPMessageTextToDefaultResponseSchema)` to create a new message.
1731
+ */
1732
+ export const ResetCustomVerifySMSOTPMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 334);
1733
+ /**
1734
+ * Describes the message zitadel.admin.v1.GetCustomVerifyEmailOTPMessageTextRequest.
1735
+ * Use `create(GetCustomVerifyEmailOTPMessageTextRequestSchema)` to create a new message.
1736
+ */
1737
+ export const GetCustomVerifyEmailOTPMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 335);
1738
+ /**
1739
+ * Describes the message zitadel.admin.v1.GetCustomVerifyEmailOTPMessageTextResponse.
1740
+ * Use `create(GetCustomVerifyEmailOTPMessageTextResponseSchema)` to create a new message.
1741
+ */
1742
+ export const GetCustomVerifyEmailOTPMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 336);
1743
+ /**
1744
+ * Describes the message zitadel.admin.v1.GetDefaultVerifyEmailOTPMessageTextRequest.
1745
+ * Use `create(GetDefaultVerifyEmailOTPMessageTextRequestSchema)` to create a new message.
1746
+ */
1747
+ export const GetDefaultVerifyEmailOTPMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 337);
1748
+ /**
1749
+ * Describes the message zitadel.admin.v1.GetDefaultVerifyEmailOTPMessageTextResponse.
1750
+ * Use `create(GetDefaultVerifyEmailOTPMessageTextResponseSchema)` to create a new message.
1751
+ */
1752
+ export const GetDefaultVerifyEmailOTPMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 338);
1753
+ /**
1754
+ * Describes the message zitadel.admin.v1.SetDefaultVerifyEmailOTPMessageTextRequest.
1755
+ * Use `create(SetDefaultVerifyEmailOTPMessageTextRequestSchema)` to create a new message.
1756
+ */
1757
+ export const SetDefaultVerifyEmailOTPMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 339);
1758
+ /**
1759
+ * Describes the message zitadel.admin.v1.SetDefaultVerifyEmailOTPMessageTextResponse.
1760
+ * Use `create(SetDefaultVerifyEmailOTPMessageTextResponseSchema)` to create a new message.
1761
+ */
1762
+ export const SetDefaultVerifyEmailOTPMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 340);
1763
+ /**
1764
+ * Describes the message zitadel.admin.v1.ResetCustomVerifyEmailOTPMessageTextToDefaultRequest.
1765
+ * Use `create(ResetCustomVerifyEmailOTPMessageTextToDefaultRequestSchema)` to create a new message.
1766
+ */
1767
+ export const ResetCustomVerifyEmailOTPMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 341);
1768
+ /**
1769
+ * Describes the message zitadel.admin.v1.ResetCustomVerifyEmailOTPMessageTextToDefaultResponse.
1770
+ * Use `create(ResetCustomVerifyEmailOTPMessageTextToDefaultResponseSchema)` to create a new message.
1771
+ */
1772
+ export const ResetCustomVerifyEmailOTPMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 342);
1773
+ /**
1774
+ * Describes the message zitadel.admin.v1.GetDefaultDomainClaimedMessageTextRequest.
1775
+ * Use `create(GetDefaultDomainClaimedMessageTextRequestSchema)` to create a new message.
1776
+ */
1777
+ export const GetDefaultDomainClaimedMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 343);
1778
+ /**
1779
+ * Describes the message zitadel.admin.v1.GetDefaultDomainClaimedMessageTextResponse.
1780
+ * Use `create(GetDefaultDomainClaimedMessageTextResponseSchema)` to create a new message.
1781
+ */
1782
+ export const GetDefaultDomainClaimedMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 344);
1783
+ /**
1784
+ * Describes the message zitadel.admin.v1.GetCustomDomainClaimedMessageTextRequest.
1785
+ * Use `create(GetCustomDomainClaimedMessageTextRequestSchema)` to create a new message.
1786
+ */
1787
+ export const GetCustomDomainClaimedMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 345);
1788
+ /**
1789
+ * Describes the message zitadel.admin.v1.GetCustomDomainClaimedMessageTextResponse.
1790
+ * Use `create(GetCustomDomainClaimedMessageTextResponseSchema)` to create a new message.
1791
+ */
1792
+ export const GetCustomDomainClaimedMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 346);
1793
+ /**
1794
+ * Describes the message zitadel.admin.v1.SetDefaultDomainClaimedMessageTextRequest.
1795
+ * Use `create(SetDefaultDomainClaimedMessageTextRequestSchema)` to create a new message.
1796
+ */
1797
+ export const SetDefaultDomainClaimedMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 347);
1798
+ /**
1799
+ * Describes the message zitadel.admin.v1.SetDefaultDomainClaimedMessageTextResponse.
1800
+ * Use `create(SetDefaultDomainClaimedMessageTextResponseSchema)` to create a new message.
1801
+ */
1802
+ export const SetDefaultDomainClaimedMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 348);
1803
+ /**
1804
+ * Describes the message zitadel.admin.v1.ResetCustomDomainClaimedMessageTextToDefaultRequest.
1805
+ * Use `create(ResetCustomDomainClaimedMessageTextToDefaultRequestSchema)` to create a new message.
1806
+ */
1807
+ export const ResetCustomDomainClaimedMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 349);
1808
+ /**
1809
+ * Describes the message zitadel.admin.v1.ResetCustomDomainClaimedMessageTextToDefaultResponse.
1810
+ * Use `create(ResetCustomDomainClaimedMessageTextToDefaultResponseSchema)` to create a new message.
1811
+ */
1812
+ export const ResetCustomDomainClaimedMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 350);
1813
+ /**
1814
+ * Describes the message zitadel.admin.v1.GetDefaultPasswordChangeMessageTextRequest.
1815
+ * Use `create(GetDefaultPasswordChangeMessageTextRequestSchema)` to create a new message.
1816
+ */
1817
+ export const GetDefaultPasswordChangeMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 351);
1818
+ /**
1819
+ * Describes the message zitadel.admin.v1.GetDefaultPasswordChangeMessageTextResponse.
1820
+ * Use `create(GetDefaultPasswordChangeMessageTextResponseSchema)` to create a new message.
1821
+ */
1822
+ export const GetDefaultPasswordChangeMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 352);
1823
+ /**
1824
+ * Describes the message zitadel.admin.v1.GetCustomPasswordChangeMessageTextRequest.
1825
+ * Use `create(GetCustomPasswordChangeMessageTextRequestSchema)` to create a new message.
1826
+ */
1827
+ export const GetCustomPasswordChangeMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 353);
1828
+ /**
1829
+ * Describes the message zitadel.admin.v1.GetCustomPasswordChangeMessageTextResponse.
1830
+ * Use `create(GetCustomPasswordChangeMessageTextResponseSchema)` to create a new message.
1831
+ */
1832
+ export const GetCustomPasswordChangeMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 354);
1833
+ /**
1834
+ * Describes the message zitadel.admin.v1.SetDefaultPasswordChangeMessageTextRequest.
1835
+ * Use `create(SetDefaultPasswordChangeMessageTextRequestSchema)` to create a new message.
1836
+ */
1837
+ export const SetDefaultPasswordChangeMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 355);
1838
+ /**
1839
+ * Describes the message zitadel.admin.v1.SetDefaultPasswordChangeMessageTextResponse.
1840
+ * Use `create(SetDefaultPasswordChangeMessageTextResponseSchema)` to create a new message.
1841
+ */
1842
+ export const SetDefaultPasswordChangeMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 356);
1843
+ /**
1844
+ * Describes the message zitadel.admin.v1.ResetCustomPasswordChangeMessageTextToDefaultRequest.
1845
+ * Use `create(ResetCustomPasswordChangeMessageTextToDefaultRequestSchema)` to create a new message.
1846
+ */
1847
+ export const ResetCustomPasswordChangeMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 357);
1848
+ /**
1849
+ * Describes the message zitadel.admin.v1.ResetCustomPasswordChangeMessageTextToDefaultResponse.
1850
+ * Use `create(ResetCustomPasswordChangeMessageTextToDefaultResponseSchema)` to create a new message.
1851
+ */
1852
+ export const ResetCustomPasswordChangeMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 358);
1853
+ /**
1854
+ * Describes the message zitadel.admin.v1.GetDefaultInviteUserMessageTextRequest.
1855
+ * Use `create(GetDefaultInviteUserMessageTextRequestSchema)` to create a new message.
1856
+ */
1857
+ export const GetDefaultInviteUserMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 359);
1858
+ /**
1859
+ * Describes the message zitadel.admin.v1.GetDefaultInviteUserMessageTextResponse.
1860
+ * Use `create(GetDefaultInviteUserMessageTextResponseSchema)` to create a new message.
1861
+ */
1862
+ export const GetDefaultInviteUserMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 360);
1863
+ /**
1864
+ * Describes the message zitadel.admin.v1.GetCustomInviteUserMessageTextRequest.
1865
+ * Use `create(GetCustomInviteUserMessageTextRequestSchema)` to create a new message.
1866
+ */
1867
+ export const GetCustomInviteUserMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 361);
1868
+ /**
1869
+ * Describes the message zitadel.admin.v1.GetCustomInviteUserMessageTextResponse.
1870
+ * Use `create(GetCustomInviteUserMessageTextResponseSchema)` to create a new message.
1871
+ */
1872
+ export const GetCustomInviteUserMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 362);
1873
+ /**
1874
+ * Describes the message zitadel.admin.v1.SetDefaultInviteUserMessageTextRequest.
1875
+ * Use `create(SetDefaultInviteUserMessageTextRequestSchema)` to create a new message.
1876
+ */
1877
+ export const SetDefaultInviteUserMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 363);
1878
+ /**
1879
+ * Describes the message zitadel.admin.v1.SetDefaultInviteUserMessageTextResponse.
1880
+ * Use `create(SetDefaultInviteUserMessageTextResponseSchema)` to create a new message.
1881
+ */
1882
+ export const SetDefaultInviteUserMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 364);
1883
+ /**
1884
+ * Describes the message zitadel.admin.v1.ResetCustomInviteUserMessageTextToDefaultRequest.
1885
+ * Use `create(ResetCustomInviteUserMessageTextToDefaultRequestSchema)` to create a new message.
1886
+ */
1887
+ export const ResetCustomInviteUserMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 365);
1888
+ /**
1889
+ * Describes the message zitadel.admin.v1.ResetCustomInviteUserMessageTextToDefaultResponse.
1890
+ * Use `create(ResetCustomInviteUserMessageTextToDefaultResponseSchema)` to create a new message.
1891
+ */
1892
+ export const ResetCustomInviteUserMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 366);
1893
+ /**
1894
+ * Describes the message zitadel.admin.v1.GetDefaultPasswordlessRegistrationMessageTextRequest.
1895
+ * Use `create(GetDefaultPasswordlessRegistrationMessageTextRequestSchema)` to create a new message.
1896
+ */
1897
+ export const GetDefaultPasswordlessRegistrationMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 367);
1898
+ /**
1899
+ * Describes the message zitadel.admin.v1.GetDefaultPasswordlessRegistrationMessageTextResponse.
1900
+ * Use `create(GetDefaultPasswordlessRegistrationMessageTextResponseSchema)` to create a new message.
1901
+ */
1902
+ export const GetDefaultPasswordlessRegistrationMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 368);
1903
+ /**
1904
+ * Describes the message zitadel.admin.v1.GetCustomPasswordlessRegistrationMessageTextRequest.
1905
+ * Use `create(GetCustomPasswordlessRegistrationMessageTextRequestSchema)` to create a new message.
1906
+ */
1907
+ export const GetCustomPasswordlessRegistrationMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 369);
1908
+ /**
1909
+ * Describes the message zitadel.admin.v1.GetCustomPasswordlessRegistrationMessageTextResponse.
1910
+ * Use `create(GetCustomPasswordlessRegistrationMessageTextResponseSchema)` to create a new message.
1911
+ */
1912
+ export const GetCustomPasswordlessRegistrationMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 370);
1913
+ /**
1914
+ * Describes the message zitadel.admin.v1.SetDefaultPasswordlessRegistrationMessageTextRequest.
1915
+ * Use `create(SetDefaultPasswordlessRegistrationMessageTextRequestSchema)` to create a new message.
1916
+ */
1917
+ export const SetDefaultPasswordlessRegistrationMessageTextRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 371);
1918
+ /**
1919
+ * Describes the message zitadel.admin.v1.SetDefaultPasswordlessRegistrationMessageTextResponse.
1920
+ * Use `create(SetDefaultPasswordlessRegistrationMessageTextResponseSchema)` to create a new message.
1921
+ */
1922
+ export const SetDefaultPasswordlessRegistrationMessageTextResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 372);
1923
+ /**
1924
+ * Describes the message zitadel.admin.v1.ResetCustomPasswordlessRegistrationMessageTextToDefaultRequest.
1925
+ * Use `create(ResetCustomPasswordlessRegistrationMessageTextToDefaultRequestSchema)` to create a new message.
1926
+ */
1927
+ export const ResetCustomPasswordlessRegistrationMessageTextToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 373);
1928
+ /**
1929
+ * Describes the message zitadel.admin.v1.ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse.
1930
+ * Use `create(ResetCustomPasswordlessRegistrationMessageTextToDefaultResponseSchema)` to create a new message.
1931
+ */
1932
+ export const ResetCustomPasswordlessRegistrationMessageTextToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 374);
1933
+ /**
1934
+ * Describes the message zitadel.admin.v1.GetDefaultLoginTextsRequest.
1935
+ * Use `create(GetDefaultLoginTextsRequestSchema)` to create a new message.
1936
+ */
1937
+ export const GetDefaultLoginTextsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 375);
1938
+ /**
1939
+ * Describes the message zitadel.admin.v1.GetDefaultLoginTextsResponse.
1940
+ * Use `create(GetDefaultLoginTextsResponseSchema)` to create a new message.
1941
+ */
1942
+ export const GetDefaultLoginTextsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 376);
1943
+ /**
1944
+ * Describes the message zitadel.admin.v1.GetCustomLoginTextsRequest.
1945
+ * Use `create(GetCustomLoginTextsRequestSchema)` to create a new message.
1946
+ */
1947
+ export const GetCustomLoginTextsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 377);
1948
+ /**
1949
+ * Describes the message zitadel.admin.v1.GetCustomLoginTextsResponse.
1950
+ * Use `create(GetCustomLoginTextsResponseSchema)` to create a new message.
1951
+ */
1952
+ export const GetCustomLoginTextsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 378);
1953
+ /**
1954
+ * Describes the message zitadel.admin.v1.SetCustomLoginTextsRequest.
1955
+ * Use `create(SetCustomLoginTextsRequestSchema)` to create a new message.
1956
+ */
1957
+ export const SetCustomLoginTextsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 379);
1958
+ /**
1959
+ * Describes the message zitadel.admin.v1.SetCustomLoginTextsResponse.
1960
+ * Use `create(SetCustomLoginTextsResponseSchema)` to create a new message.
1961
+ */
1962
+ export const SetCustomLoginTextsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 380);
1963
+ /**
1964
+ * Describes the message zitadel.admin.v1.ResetCustomLoginTextsToDefaultRequest.
1965
+ * Use `create(ResetCustomLoginTextsToDefaultRequestSchema)` to create a new message.
1966
+ */
1967
+ export const ResetCustomLoginTextsToDefaultRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 381);
1968
+ /**
1969
+ * Describes the message zitadel.admin.v1.ResetCustomLoginTextsToDefaultResponse.
1970
+ * Use `create(ResetCustomLoginTextsToDefaultResponseSchema)` to create a new message.
1971
+ */
1972
+ export const ResetCustomLoginTextsToDefaultResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 382);
1973
+ /**
1974
+ * Describes the message zitadel.admin.v1.AddIAMMemberRequest.
1975
+ * Use `create(AddIAMMemberRequestSchema)` to create a new message.
1976
+ */
1977
+ export const AddIAMMemberRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 383);
1978
+ /**
1979
+ * Describes the message zitadel.admin.v1.AddIAMMemberResponse.
1980
+ * Use `create(AddIAMMemberResponseSchema)` to create a new message.
1981
+ */
1982
+ export const AddIAMMemberResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 384);
1983
+ /**
1984
+ * Describes the message zitadel.admin.v1.UpdateIAMMemberRequest.
1985
+ * Use `create(UpdateIAMMemberRequestSchema)` to create a new message.
1986
+ */
1987
+ export const UpdateIAMMemberRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 385);
1988
+ /**
1989
+ * Describes the message zitadel.admin.v1.UpdateIAMMemberResponse.
1990
+ * Use `create(UpdateIAMMemberResponseSchema)` to create a new message.
1991
+ */
1992
+ export const UpdateIAMMemberResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 386);
1993
+ /**
1994
+ * Describes the message zitadel.admin.v1.RemoveIAMMemberRequest.
1995
+ * Use `create(RemoveIAMMemberRequestSchema)` to create a new message.
1996
+ */
1997
+ export const RemoveIAMMemberRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 387);
1998
+ /**
1999
+ * Describes the message zitadel.admin.v1.RemoveIAMMemberResponse.
2000
+ * Use `create(RemoveIAMMemberResponseSchema)` to create a new message.
2001
+ */
2002
+ export const RemoveIAMMemberResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 388);
2003
+ /**
2004
+ * Describes the message zitadel.admin.v1.ListIAMMemberRolesRequest.
2005
+ * Use `create(ListIAMMemberRolesRequestSchema)` to create a new message.
2006
+ */
2007
+ export const ListIAMMemberRolesRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 389);
2008
+ /**
2009
+ * Describes the message zitadel.admin.v1.ListIAMMemberRolesResponse.
2010
+ * Use `create(ListIAMMemberRolesResponseSchema)` to create a new message.
2011
+ */
2012
+ export const ListIAMMemberRolesResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 390);
2013
+ /**
2014
+ * Describes the message zitadel.admin.v1.ListIAMMembersRequest.
2015
+ * Use `create(ListIAMMembersRequestSchema)` to create a new message.
2016
+ */
2017
+ export const ListIAMMembersRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 391);
2018
+ /**
2019
+ * Describes the message zitadel.admin.v1.ListIAMMembersResponse.
2020
+ * Use `create(ListIAMMembersResponseSchema)` to create a new message.
2021
+ */
2022
+ export const ListIAMMembersResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 392);
2023
+ /**
2024
+ * Describes the message zitadel.admin.v1.ListViewsRequest.
2025
+ * Use `create(ListViewsRequestSchema)` to create a new message.
2026
+ */
2027
+ export const ListViewsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 393);
2028
+ /**
2029
+ * Describes the message zitadel.admin.v1.ListViewsResponse.
2030
+ * Use `create(ListViewsResponseSchema)` to create a new message.
2031
+ */
2032
+ export const ListViewsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 394);
2033
+ /**
2034
+ * Describes the message zitadel.admin.v1.ListFailedEventsRequest.
2035
+ * Use `create(ListFailedEventsRequestSchema)` to create a new message.
2036
+ */
2037
+ export const ListFailedEventsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 395);
2038
+ /**
2039
+ * Describes the message zitadel.admin.v1.ListFailedEventsResponse.
2040
+ * Use `create(ListFailedEventsResponseSchema)` to create a new message.
2041
+ */
2042
+ export const ListFailedEventsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 396);
2043
+ /**
2044
+ * Describes the message zitadel.admin.v1.RemoveFailedEventRequest.
2045
+ * Use `create(RemoveFailedEventRequestSchema)` to create a new message.
2046
+ */
2047
+ export const RemoveFailedEventRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 397);
2048
+ /**
2049
+ * Describes the message zitadel.admin.v1.RemoveFailedEventResponse.
2050
+ * Use `create(RemoveFailedEventResponseSchema)` to create a new message.
2051
+ */
2052
+ export const RemoveFailedEventResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 398);
2053
+ /**
2054
+ * Describes the message zitadel.admin.v1.View.
2055
+ * Use `create(ViewSchema)` to create a new message.
2056
+ */
2057
+ export const ViewSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 399);
2058
+ /**
2059
+ * Describes the message zitadel.admin.v1.FailedEvent.
2060
+ * Use `create(FailedEventSchema)` to create a new message.
2061
+ */
2062
+ export const FailedEventSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 400);
2063
+ /**
2064
+ * Describes the message zitadel.admin.v1.ImportDataRequest.
2065
+ * Use `create(ImportDataRequestSchema)` to create a new message.
2066
+ */
2067
+ export const ImportDataRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 401);
2068
+ /**
2069
+ * Describes the message zitadel.admin.v1.ImportDataRequest.LocalInput.
2070
+ * Use `create(ImportDataRequest_LocalInputSchema)` to create a new message.
2071
+ */
2072
+ export const ImportDataRequest_LocalInputSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 401, 0);
2073
+ /**
2074
+ * Describes the message zitadel.admin.v1.ImportDataRequest.S3Input.
2075
+ * Use `create(ImportDataRequest_S3InputSchema)` to create a new message.
2076
+ */
2077
+ export const ImportDataRequest_S3InputSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 401, 1);
2078
+ /**
2079
+ * Describes the message zitadel.admin.v1.ImportDataRequest.GCSInput.
2080
+ * Use `create(ImportDataRequest_GCSInputSchema)` to create a new message.
2081
+ */
2082
+ export const ImportDataRequest_GCSInputSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 401, 2);
2083
+ /**
2084
+ * Describes the message zitadel.admin.v1.ImportDataOrg.
2085
+ * Use `create(ImportDataOrgSchema)` to create a new message.
2086
+ */
2087
+ export const ImportDataOrgSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 402);
2088
+ /**
2089
+ * Describes the message zitadel.admin.v1.DataOrg.
2090
+ * Use `create(DataOrgSchema)` to create a new message.
2091
+ */
2092
+ export const DataOrgSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 403);
2093
+ /**
2094
+ * Describes the message zitadel.admin.v1.ImportDataResponse.
2095
+ * Use `create(ImportDataResponseSchema)` to create a new message.
2096
+ */
2097
+ export const ImportDataResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 404);
2098
+ /**
2099
+ * Describes the message zitadel.admin.v1.ImportDataError.
2100
+ * Use `create(ImportDataErrorSchema)` to create a new message.
2101
+ */
2102
+ export const ImportDataErrorSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 405);
2103
+ /**
2104
+ * Describes the message zitadel.admin.v1.ImportDataSuccess.
2105
+ * Use `create(ImportDataSuccessSchema)` to create a new message.
2106
+ */
2107
+ export const ImportDataSuccessSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 406);
2108
+ /**
2109
+ * Describes the message zitadel.admin.v1.ImportDataSuccessOrg.
2110
+ * Use `create(ImportDataSuccessOrgSchema)` to create a new message.
2111
+ */
2112
+ export const ImportDataSuccessOrgSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 407);
2113
+ /**
2114
+ * Describes the message zitadel.admin.v1.ImportDataSuccessProjectGrant.
2115
+ * Use `create(ImportDataSuccessProjectGrantSchema)` to create a new message.
2116
+ */
2117
+ export const ImportDataSuccessProjectGrantSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 408);
2118
+ /**
2119
+ * Describes the message zitadel.admin.v1.ImportDataSuccessUserGrant.
2120
+ * Use `create(ImportDataSuccessUserGrantSchema)` to create a new message.
2121
+ */
2122
+ export const ImportDataSuccessUserGrantSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 409);
2123
+ /**
2124
+ * Describes the message zitadel.admin.v1.ImportDataSuccessProjectMember.
2125
+ * Use `create(ImportDataSuccessProjectMemberSchema)` to create a new message.
2126
+ */
2127
+ export const ImportDataSuccessProjectMemberSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 410);
2128
+ /**
2129
+ * Describes the message zitadel.admin.v1.ImportDataSuccessProjectGrantMember.
2130
+ * Use `create(ImportDataSuccessProjectGrantMemberSchema)` to create a new message.
2131
+ */
2132
+ export const ImportDataSuccessProjectGrantMemberSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 411);
2133
+ /**
2134
+ * Describes the message zitadel.admin.v1.ImportDataSuccessUserLinks.
2135
+ * Use `create(ImportDataSuccessUserLinksSchema)` to create a new message.
2136
+ */
2137
+ export const ImportDataSuccessUserLinksSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 412);
2138
+ /**
2139
+ * Describes the message zitadel.admin.v1.ImportDataSuccessUserMetadata.
2140
+ * Use `create(ImportDataSuccessUserMetadataSchema)` to create a new message.
2141
+ */
2142
+ export const ImportDataSuccessUserMetadataSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 413);
2143
+ /**
2144
+ * Describes the message zitadel.admin.v1.ExportDataRequest.
2145
+ * Use `create(ExportDataRequestSchema)` to create a new message.
2146
+ */
2147
+ export const ExportDataRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 414);
2148
+ /**
2149
+ * Describes the message zitadel.admin.v1.ExportDataRequest.LocalOutput.
2150
+ * Use `create(ExportDataRequest_LocalOutputSchema)` to create a new message.
2151
+ */
2152
+ export const ExportDataRequest_LocalOutputSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 414, 0);
2153
+ /**
2154
+ * Describes the message zitadel.admin.v1.ExportDataRequest.S3Output.
2155
+ * Use `create(ExportDataRequest_S3OutputSchema)` to create a new message.
2156
+ */
2157
+ export const ExportDataRequest_S3OutputSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 414, 1);
2158
+ /**
2159
+ * Describes the message zitadel.admin.v1.ExportDataRequest.GCSOutput.
2160
+ * Use `create(ExportDataRequest_GCSOutputSchema)` to create a new message.
2161
+ */
2162
+ export const ExportDataRequest_GCSOutputSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 414, 2);
2163
+ /**
2164
+ * Describes the message zitadel.admin.v1.ExportDataResponse.
2165
+ * Use `create(ExportDataResponseSchema)` to create a new message.
2166
+ */
2167
+ export const ExportDataResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 415);
2168
+ /**
2169
+ * Describes the message zitadel.admin.v1.ListEventsRequest.
2170
+ * Use `create(ListEventsRequestSchema)` to create a new message.
2171
+ */
2172
+ export const ListEventsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 416);
2173
+ /**
2174
+ * Describes the message zitadel.admin.v1.ListEventsRequest.creation_date_range.
2175
+ * Use `create(ListEventsRequest_creation_date_rangeSchema)` to create a new message.
2176
+ */
2177
+ export const ListEventsRequest_creation_date_rangeSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 416, 0);
2178
+ /**
2179
+ * Describes the message zitadel.admin.v1.ListEventsResponse.
2180
+ * Use `create(ListEventsResponseSchema)` to create a new message.
2181
+ */
2182
+ export const ListEventsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 417);
2183
+ /**
2184
+ * Describes the message zitadel.admin.v1.ListEventTypesRequest.
2185
+ * Use `create(ListEventTypesRequestSchema)` to create a new message.
2186
+ */
2187
+ export const ListEventTypesRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 418);
2188
+ /**
2189
+ * Describes the message zitadel.admin.v1.ListEventTypesResponse.
2190
+ * Use `create(ListEventTypesResponseSchema)` to create a new message.
2191
+ */
2192
+ export const ListEventTypesResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 419);
2193
+ /**
2194
+ * Describes the message zitadel.admin.v1.ListAggregateTypesRequest.
2195
+ * Use `create(ListAggregateTypesRequestSchema)` to create a new message.
2196
+ */
2197
+ export const ListAggregateTypesRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 420);
2198
+ /**
2199
+ * Describes the message zitadel.admin.v1.ListAggregateTypesResponse.
2200
+ * Use `create(ListAggregateTypesResponseSchema)` to create a new message.
2201
+ */
2202
+ export const ListAggregateTypesResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 421);
2203
+ /**
2204
+ * Describes the message zitadel.admin.v1.ActivateFeatureLoginDefaultOrgRequest.
2205
+ * Use `create(ActivateFeatureLoginDefaultOrgRequestSchema)` to create a new message.
2206
+ */
2207
+ export const ActivateFeatureLoginDefaultOrgRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 422);
2208
+ /**
2209
+ * Describes the message zitadel.admin.v1.ActivateFeatureLoginDefaultOrgResponse.
2210
+ * Use `create(ActivateFeatureLoginDefaultOrgResponseSchema)` to create a new message.
2211
+ */
2212
+ export const ActivateFeatureLoginDefaultOrgResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 423);
2213
+ /**
2214
+ * Describes the message zitadel.admin.v1.ListMilestonesRequest.
2215
+ * Use `create(ListMilestonesRequestSchema)` to create a new message.
2216
+ */
2217
+ export const ListMilestonesRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 424);
2218
+ /**
2219
+ * Describes the message zitadel.admin.v1.ListMilestonesResponse.
2220
+ * Use `create(ListMilestonesResponseSchema)` to create a new message.
2221
+ */
2222
+ export const ListMilestonesResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 425);
2223
+ /**
2224
+ * Describes the message zitadel.admin.v1.SetRestrictionsRequest.
2225
+ * Use `create(SetRestrictionsRequestSchema)` to create a new message.
2226
+ */
2227
+ export const SetRestrictionsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 426);
2228
+ /**
2229
+ * Describes the message zitadel.admin.v1.SelectLanguages.
2230
+ * Use `create(SelectLanguagesSchema)` to create a new message.
2231
+ */
2232
+ export const SelectLanguagesSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 427);
2233
+ /**
2234
+ * Describes the message zitadel.admin.v1.SetRestrictionsResponse.
2235
+ * Use `create(SetRestrictionsResponseSchema)` to create a new message.
2236
+ */
2237
+ export const SetRestrictionsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 428);
2238
+ /**
2239
+ * Describes the message zitadel.admin.v1.GetRestrictionsRequest.
2240
+ * Use `create(GetRestrictionsRequestSchema)` to create a new message.
2241
+ */
2242
+ export const GetRestrictionsRequestSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 429);
2243
+ /**
2244
+ * Describes the message zitadel.admin.v1.GetRestrictionsResponse.
2245
+ * Use `create(GetRestrictionsResponseSchema)` to create a new message.
2246
+ */
2247
+ export const GetRestrictionsResponseSchema = /*@__PURE__*/ messageDesc(file_zitadel_admin, 430);
2248
+ /**
2249
+ * @generated from service zitadel.admin.v1.AdminService
2250
+ */
2251
+ export const AdminService = /*@__PURE__*/ serviceDesc(file_zitadel_admin, 0);
2252
+ //# sourceMappingURL=admin_pb.js.map