payload 2.0.15 → 2.1.1

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 (167) hide show
  1. package/README.md +3 -4
  2. package/components/hooks.d.ts +1 -0
  3. package/components/hooks.js +5 -1
  4. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  5. package/dist/admin/components/elements/DocumentControls/index.js +6 -4
  6. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
  7. package/dist/admin/components/elements/EditUpload/index.js +15 -7
  8. package/dist/admin/components/elements/EditUpload/index.scss +5 -0
  9. package/dist/admin/components/elements/FileDetails/index.js +2 -2
  10. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.d.ts +1 -1
  11. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  12. package/dist/admin/components/elements/Localizer/LocalizerLabel/index.js +8 -6
  13. package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
  14. package/dist/admin/components/elements/Localizer/index.js +8 -3
  15. package/dist/admin/components/elements/PreviewSizes/index.d.ts +1 -1
  16. package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -1
  17. package/dist/admin/components/elements/PreviewSizes/index.js +58 -32
  18. package/dist/admin/components/elements/PreviewSizes/index.scss +0 -1
  19. package/dist/admin/components/elements/WhereBuilder/Condition/Date/index.js +3 -2
  20. package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts +1 -0
  21. package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts.map +1 -1
  22. package/dist/admin/components/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
  23. package/dist/admin/components/elements/WhereBuilder/Condition/Number/index.js +3 -2
  24. package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.d.ts +1 -0
  25. package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.d.ts.map +1 -1
  26. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  27. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/index.js +3 -2
  28. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.d.ts +1 -0
  29. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.d.ts.map +1 -1
  30. package/dist/admin/components/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
  31. package/dist/admin/components/elements/WhereBuilder/Condition/Select/index.js +3 -2
  32. package/dist/admin/components/elements/WhereBuilder/Condition/Select/types.d.ts +1 -0
  33. package/dist/admin/components/elements/WhereBuilder/Condition/Select/types.d.ts.map +1 -1
  34. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.d.ts.map +1 -1
  35. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.js +3 -2
  36. package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.d.ts +1 -0
  37. package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.d.ts.map +1 -1
  38. package/dist/admin/components/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  39. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +27 -17
  40. package/dist/admin/components/elements/WhereBuilder/reducer.js +6 -6
  41. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +2 -2
  42. package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts +4 -0
  43. package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts.map +1 -1
  44. package/dist/admin/components/forms/field-types/Checkbox/Input.js +6 -5
  45. package/dist/admin/components/forms/field-types/Checkbox/index.d.ts.map +1 -1
  46. package/dist/admin/components/forms/field-types/Checkbox/index.js +7 -3
  47. package/dist/admin/components/forms/field-types/Code/index.d.ts.map +1 -1
  48. package/dist/admin/components/forms/field-types/Code/index.js +6 -4
  49. package/dist/admin/components/forms/field-types/DateTime/Input.d.ts +6 -0
  50. package/dist/admin/components/forms/field-types/DateTime/Input.d.ts.map +1 -1
  51. package/dist/admin/components/forms/field-types/DateTime/Input.js +8 -6
  52. package/dist/admin/components/forms/field-types/DateTime/index.d.ts.map +1 -1
  53. package/dist/admin/components/forms/field-types/DateTime/index.js +3 -2
  54. package/dist/admin/components/forms/field-types/Email/index.d.ts.map +1 -1
  55. package/dist/admin/components/forms/field-types/Email/index.js +10 -6
  56. package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
  57. package/dist/admin/components/forms/field-types/JSON/index.js +6 -4
  58. package/dist/admin/components/forms/field-types/Number/index.d.ts.map +1 -1
  59. package/dist/admin/components/forms/field-types/Number/index.js +10 -6
  60. package/dist/admin/components/forms/field-types/Point/index.d.ts.map +1 -1
  61. package/dist/admin/components/forms/field-types/Point/index.js +14 -8
  62. package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts +2 -0
  63. package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts.map +1 -1
  64. package/dist/admin/components/forms/field-types/RadioGroup/Input.js +6 -4
  65. package/dist/admin/components/forms/field-types/RadioGroup/index.d.ts.map +1 -1
  66. package/dist/admin/components/forms/field-types/RadioGroup/index.js +5 -3
  67. package/dist/admin/components/forms/field-types/Relationship/index.d.ts.map +1 -1
  68. package/dist/admin/components/forms/field-types/Relationship/index.js +7 -5
  69. package/dist/admin/components/forms/field-types/Select/Input.d.ts +2 -0
  70. package/dist/admin/components/forms/field-types/Select/Input.d.ts.map +1 -1
  71. package/dist/admin/components/forms/field-types/Select/Input.js +6 -4
  72. package/dist/admin/components/forms/field-types/Select/index.d.ts.map +1 -1
  73. package/dist/admin/components/forms/field-types/Select/index.js +5 -3
  74. package/dist/admin/components/forms/field-types/Text/Input.d.ts +4 -0
  75. package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
  76. package/dist/admin/components/forms/field-types/Text/Input.js +10 -6
  77. package/dist/admin/components/forms/field-types/Text/index.d.ts.map +1 -1
  78. package/dist/admin/components/forms/field-types/Text/index.js +7 -3
  79. package/dist/admin/components/forms/field-types/Textarea/Input.d.ts +4 -0
  80. package/dist/admin/components/forms/field-types/Textarea/Input.d.ts.map +1 -1
  81. package/dist/admin/components/forms/field-types/Textarea/Input.js +8 -6
  82. package/dist/admin/components/forms/field-types/Textarea/index.d.ts.map +1 -1
  83. package/dist/admin/components/forms/field-types/Textarea/index.js +7 -3
  84. package/dist/admin/components/forms/field-types/Upload/Input.d.ts +2 -0
  85. package/dist/admin/components/forms/field-types/Upload/Input.d.ts.map +1 -1
  86. package/dist/admin/components/forms/field-types/Upload/Input.js +6 -4
  87. package/dist/admin/components/forms/field-types/Upload/index.d.ts.map +1 -1
  88. package/dist/admin/components/forms/field-types/Upload/index.js +5 -3
  89. package/dist/admin/components/forms/useField/index.d.ts.map +1 -1
  90. package/dist/admin/components/forms/useField/index.js +31 -25
  91. package/dist/admin/components/utilities/Auth/index.d.ts +1 -3
  92. package/dist/admin/components/utilities/Auth/index.d.ts.map +1 -1
  93. package/dist/admin/components/utilities/Auth/index.js +1 -1
  94. package/dist/admin/components/views/API/index.d.ts.map +1 -1
  95. package/dist/admin/components/views/API/index.js +6 -6
  96. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  97. package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
  98. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  99. package/dist/admin/components/views/LivePreview/index.js +1 -1
  100. package/dist/admin/components/views/collections/Edit/Upload/index.js +2 -2
  101. package/dist/auth/graphql/resolvers/access.d.ts.map +1 -1
  102. package/dist/auth/graphql/resolvers/access.js +4 -2
  103. package/dist/auth/graphql/resolvers/forgotPassword.d.ts.map +1 -1
  104. package/dist/auth/graphql/resolvers/forgotPassword.js +4 -2
  105. package/dist/auth/graphql/resolvers/init.d.ts.map +1 -1
  106. package/dist/auth/graphql/resolvers/init.js +4 -2
  107. package/dist/auth/graphql/resolvers/login.d.ts.map +1 -1
  108. package/dist/auth/graphql/resolvers/login.js +4 -2
  109. package/dist/auth/graphql/resolvers/logout.d.ts.map +1 -1
  110. package/dist/auth/graphql/resolvers/logout.js +4 -2
  111. package/dist/auth/graphql/resolvers/me.d.ts.map +1 -1
  112. package/dist/auth/graphql/resolvers/me.js +4 -2
  113. package/dist/auth/graphql/resolvers/refresh.d.ts.map +1 -1
  114. package/dist/auth/graphql/resolvers/refresh.js +4 -2
  115. package/dist/auth/graphql/resolvers/resetPassword.d.ts.map +1 -1
  116. package/dist/auth/graphql/resolvers/resetPassword.js +4 -2
  117. package/dist/auth/graphql/resolvers/unlock.d.ts.map +1 -1
  118. package/dist/auth/graphql/resolvers/unlock.js +4 -2
  119. package/dist/auth/graphql/resolvers/verifyEmail.d.ts.map +1 -1
  120. package/dist/auth/graphql/resolvers/verifyEmail.js +4 -2
  121. package/dist/auth/operations/refresh.js +2 -2
  122. package/dist/collections/graphql/resolvers/create.js +4 -2
  123. package/dist/collections/graphql/resolvers/delete.js +4 -2
  124. package/dist/collections/graphql/resolvers/docAccess.js +4 -2
  125. package/dist/collections/graphql/resolvers/find.js +4 -2
  126. package/dist/collections/graphql/resolvers/findVersionByID.js +4 -2
  127. package/dist/collections/graphql/resolvers/findVersions.js +4 -2
  128. package/dist/collections/graphql/resolvers/restoreVersion.js +4 -2
  129. package/dist/collections/graphql/resolvers/update.js +4 -2
  130. package/dist/config/schema.d.ts.map +1 -1
  131. package/dist/config/schema.js +4 -2
  132. package/dist/config/types.d.ts +2 -2
  133. package/dist/config/types.d.ts.map +1 -1
  134. package/dist/config/types.js +1 -1
  135. package/dist/exports/components/hooks.d.ts +1 -0
  136. package/dist/exports/components/hooks.d.ts.map +1 -1
  137. package/dist/exports/components/hooks.js +5 -1
  138. package/dist/fields/config/schema.d.ts.map +1 -1
  139. package/dist/fields/config/schema.js +90 -10
  140. package/dist/fields/config/types.d.ts +67 -0
  141. package/dist/fields/config/types.d.ts.map +1 -1
  142. package/dist/fields/config/types.js +1 -1
  143. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  144. package/dist/fields/hooks/beforeChange/promise.js +2 -1
  145. package/dist/fields/validations.d.ts +4 -0
  146. package/dist/fields/validations.d.ts.map +1 -1
  147. package/dist/fields/validations.js +3 -2
  148. package/dist/globals/graphql/resolvers/docAccess.js +4 -2
  149. package/dist/globals/graphql/resolvers/findOne.d.ts.map +1 -1
  150. package/dist/globals/graphql/resolvers/findOne.js +4 -2
  151. package/dist/globals/graphql/resolvers/findVersionByID.js +4 -2
  152. package/dist/globals/graphql/resolvers/findVersions.js +4 -2
  153. package/dist/globals/graphql/resolvers/restoreVersion.js +4 -2
  154. package/dist/globals/graphql/resolvers/update.js +4 -2
  155. package/dist/uploads/generateFileData.js +4 -4
  156. package/dist/uploads/getFileByPath.d.ts.map +1 -1
  157. package/dist/uploads/getFileByPath.js +7 -2
  158. package/dist/uploads/imageResizer.d.ts.map +1 -1
  159. package/dist/uploads/imageResizer.js +87 -55
  160. package/dist/uploads/types.d.ts +11 -1
  161. package/dist/uploads/types.d.ts.map +1 -1
  162. package/dist/uploads/types.js +1 -1
  163. package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
  164. package/dist/utilities/fieldSchemaToJSON.js +21 -3
  165. package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
  166. package/dist/utilities/getEntityPolicies.js +4 -2
  167. package/package.json +2 -2
@@ -23,4 +23,4 @@ function hasTransportOptions(emailConfig) {
23
23
  return emailConfig.transportOptions !== undefined;
24
24
  }
25
25
 
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHByZXNzLCBOZXh0RnVuY3Rpb24sIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IEluaXRPcHRpb25zIGFzIGkxOG5Jbml0T3B0aW9ucyB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgdHlwZSB7IElubGluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICd3ZWJwYWNrJ1xuXG5pbXBvcnQgdHlwZSB7XG4gIERvY3VtZW50VGFiLFxuICBEb2N1bWVudFRhYkNvbXBvbmVudCxcbiAgRG9jdW1lbnRUYWJDb25maWcsXG59IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvRG9jdW1lbnRIZWFkZXIvVGFicy90eXBlcydcbmltcG9ydCB0eXBlIHsgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9SaWNoVGV4dC90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29udGV4dFR5cGUgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9Eb2N1bWVudEluZm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuLi9hdXRoL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkQnVuZGxlciB9IGZyb20gJy4uL2J1bmRsZXJzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBZnRlckVycm9ySG9vayxcbiAgQ29sbGVjdGlvbkNvbmZpZyxcbiAgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbn0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2xvYmFsQ29uZmlnLCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uL3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgUHJldHRpZnk8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgTm9uTnVsbGFibGU8dW5rbm93bj5cblxudHlwZSBFbWFpbCA9IHtcbiAgZnJvbUFkZHJlc3M6IHN0cmluZ1xuICBmcm9tTmFtZTogc3RyaW5nXG4gIGxvZ01vY2tDcmVkZW50aWFscz86IGJvb2xlYW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBQbHVnaW4gPSAoY29uZmlnOiBDb25maWcpID0+IENvbmZpZyB8IFByb21pc2U8Q29uZmlnPlxuXG5leHBvcnQgdHlwZSBMaXZlUHJldmlld0NvbmZpZyA9IHtcbiAgLyoqXG4gICBEZXZpY2UgYnJlYWtwb2ludHMgdG8gdXNlIGZvciB0aGUgYGlmcmFtZWAgb2YgdGhlIExpdmUgUHJldmlldyB3aW5kb3cuXG4gICBPcHRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIExpdmUgUHJldmlldyB0b29sYmFyLlxuICAgVGhlIGByZXNwb25zaXZlYCBicmVha3BvaW50IGlzIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBicmVha3BvaW50cz86IHtcbiAgICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgIFRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uLiBUaGlzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aGluIGFuIGBpZnJhbWVgIGFzIGl0cyBgc3JjYC5cbiAgIFBheWxvYWQgd2lsbCBzZW5kIGEgYHdpbmRvdy5wb3N0TWVzc2FnZSgpYCB0byB0aGlzIFVSTCB3aXRoIHRoZSBkb2N1bWVudCBkYXRhIGluIHJlYWwtdGltZS5cbiAgIFRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHRoZSBtZXNzYWdlIGFuZCB1cGRhdGluZyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICBVc2UgdGhlIGB1c2VMaXZlUHJldmlld2AgaG9vayB0byBnZXQgc3RhcnRlZCBpbiBSZWFjdCBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICB1cmw/OlxuICAgIHwgKChhcmdzOiB7IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT47IGRvY3VtZW50SW5mbzogQ29udGV4dFR5cGU7IGxvY2FsZTogTG9jYWxlIH0pID0+IHN0cmluZylcbiAgICB8IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxFeHRlbnNpb24gPSAoXG4gIGdyYXBoUUw6IHR5cGVvZiBHcmFwaFFMLFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgdHlwZSBJbml0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2l0aCB0aGUgbG9jYWwgQVBJLCB5b3UgbWlnaHQgbmVlZCB0byBwYXNzIGEgY29uZmlnIGZpbGUgZGlyZWN0bHksIGZvciBleGFtcGxlLCBzZXJ2ZXJsZXNzIG9uIFZlcmNlbFxuICAgKiBUaGUgcGFzc2VkIGNvbmZpZyBzaG91bGQgbWF0Y2ggdGhlIGNvbmZpZyBmaWxlLCBhbmQgaWYgaXQgZG9lc24ndCwgdGhlcmUgY291bGQgYmUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBhZG1pbiBVSVxuICAgKiBhbmQgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgY29uZmlnPzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+XG5cbiAgLyoqXG4gICAqIERpc2FibGUgY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugb24gaW5pdFxuICAgKi9cbiAgZGlzYWJsZURCQ29ubmVjdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogRGlzYWJsZSBydW5uaW5nIG9mIHRoZSBgb25Jbml0YCBmdW5jdGlvblxuICAgKi9cbiAgZGlzYWJsZU9uSW5pdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgUGF5bG9hZCdzIGVtYWlsIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG5cbiAgLyoqIEV4cHJlc3MgYXBwIGZvciBQYXlsb2FkIHRvIHVzZSAqL1xuICBleHByZXNzPzogRXhwcmVzc1xuXG4gIC8qKlxuICAgKiBNYWtlIFBheWxvYWQgc3RhcnQgaW4gbG9jYWwtb25seSBtb2RlLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYnlwYXNzIHNldHRpbmcgdXAgUkVTVCBhbmQgR3JhcGhRTCBBUEkgcm91dGVzLlxuICAgKiBFeHByZXNzIHdpbGwgbm90IGJlIHJlcXVpcmVkIGlmIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBsb2NhbD86IGJvb2xlYW5cblxuICBsb2dnZXJEZXN0aW5hdGlvbj86IERlc3RpbmF0aW9uU3RyZWFtXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0J3Mgb25seSBhcmd1bWVudC5cbiAgICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuXG4gIC8qKiBTZWN1cmUgc3RyaW5nIHRoYXQgUGF5bG9hZCB3aWxsIHVzZSBmb3IgYW55IGVuY3J5cHRpb24gd29ya2Zsb3dzICovXG4gIHNlY3JldDogc3RyaW5nXG59XG5cbi8qKlxuICogVGhpcyByZXN1bHQgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2VydmVyXG4gKiBhbmQgdGhlbiBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGB0cnVlYCwgdGhlIHVzZXIgaGFzIGFjY2Vzcy5cbiAqIElmIHRoZSByZXN1bHQgaXMgYW4gb2JqZWN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIE1vbmdvREIgcXVlcnkuXG4gKlxuICogQGV4YW1wbGUgYHsgY3JlYXRlZEJ5OiB7IGVxdWFsczogaWQgfSB9YFxuICpcbiAqIEBleGFtcGxlIGB7IHRlbmFudDogeyBpbjogdGVuYW50SWRzIH0gfWBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3NSZXN1bHQgPSBXaGVyZSB8IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgQWNjZXNzQXJnczxUID0gYW55LCBVID0gYW55PiA9IHtcbiAgLyoqXG4gICAqIFRoZSByZWxldmFudCByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkLlxuICAgKlxuICAgKiBgZGF0YWAgaXMgbnVsbCB3aGVuIGEgbGlzdCBpcyByZXF1ZXN0ZWRcbiAgICovXG4gIGRhdGE/OiBUXG4gIC8qKiBJRCBvZiB0aGUgcmVzb3VyY2UgYmVpbmcgYWNjZXNzZWQgKi9cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIEVxdWl2YWxlbnQgdG8gZXhwcmVzcyBtaWRkbGV3YXJlLCBidXQgd2l0aCBhbiBlbmhhbmNlZCByZXF1ZXN0IG9iamVjdCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkSGFuZGxlciB7XG4gIChyZXE6IFBheWxvYWRSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkXG59XG5cbi8qKlxuICogRG9jczogaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3Jlc3QtYXBpL292ZXJ2aWV3I2N1c3RvbS1lbmRwb2ludHNcbiAqL1xuZXhwb3J0IHR5cGUgRW5kcG9pbnQgPSB7XG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLyoqXG4gICAqIE1pZGRsZXdhcmUgdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwYXRoL21ldGhvZCBtYXRjaGVzXG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCBFeHByZXNzIG1pZGRsZXdhcmVcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyIHwgUGF5bG9hZEhhbmRsZXJbXVxuICAvKiogSFRUUCBtZXRob2QgKG9yIFwiYWxsXCIpICovXG4gIG1ldGhvZDogJ2Nvbm5lY3QnIHwgJ2RlbGV0ZScgfCAnZ2V0JyB8ICdoZWFkJyB8ICdvcHRpb25zJyB8ICdwYXRjaCcgfCAncG9zdCcgfCAncHV0J1xuICAvKipcbiAgICogUGF0dGVybiB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcGF0aCBvZiB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggdGhlIEV4cHJlc3Mgcm91dGVyXG4gICAqL1xuICBwYXRoOiBzdHJpbmdcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgUGF5bG9hZCBtaWRkbGV3YXJlIGZvciB0aGlzIGVuZHBvaW50XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByb290PzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb25maWcgPSB7XG4gIENvbXBvbmVudDogQWRtaW5WaWV3Q29tcG9uZW50XG4gIC8qKiBXaGV0aGVyIHRoZSBwYXRoIHNob3VsZCBiZSBtYXRjaGVkIGV4YWN0bHkgb3IgYXMgYSBwcmVmaXggKi9cbiAgZXhhY3Q/OiBib29sZWFuXG4gIHBhdGg6IHN0cmluZ1xuICBzZW5zaXRpdmU/OiBib29sZWFuXG4gIHN0cmljdD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQWRtaW5WaWV3UHJvcHMgPSB7XG4gIGNhbkFjY2Vzc0FkbWluPzogYm9vbGVhblxuICB1c2VyOiBVc2VyIHwgbnVsbCB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPEFkbWluVmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXcgPSBBZG1pblZpZXdDb21wb25lbnQgfCBBZG1pblZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb25maWcgPVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogQWRkIGEgbmV3IEVkaXQgdmlldyB0byB0aGUgYWRtaW4gcGFuZWxcbiAgICAgICAqIGkuZS4geW91IGNhbiByZW5kZXIgYSBjdXN0b20gdmlldyB0aGF0IGhhcyBubyB0YWIsIGlmIGRlc2lyZWRcbiAgICAgICAqIE9yIG92ZXJyaWRlIGEgc3BlY2lmaWMgcHJvcGVydGllcyBvZiBhbiBleGlzdGluZyBvbmVcbiAgICAgICAqIGkuZS4geW91IGNhbiBjdXN0b21pemUgdGhlIGBEZWZhdWx0YCB2aWV3IHRhYiBsYWJlbCwgaWYgZGVzaXJlZFxuICAgICAgICovXG4gICAgICBUYWI/OiBEb2N1bWVudFRhYlxuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBDb21wb25lbnQ6IEFkbWluVmlld0NvbXBvbmVudFxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgfVxuXG4vKipcbiAqIE92ZXJyaWRlIGV4aXN0aW5nIHZpZXdzXG4gKiBpLmUuIERhc2hib2FyZCwgQWNjb3VudCwgQVBJLCBMaXZlUHJldmlldywgZXRjLlxuICogUGF0aCBpcyBub3QgYXZhaWxhYmxlIGhlcmVcbiAqIEFsbCBUYWIgcHJvcGVydGllcyBiZWNvbWUgb3B0aW9uYWxcbiAqIGkuZS4geW91IGNhbiBjaGFuZ2UganVzdCB0aGUgbGFiZWwsIGlmIGRlc2lyZWRcbiAqL1xuZXhwb3J0IHR5cGUgRWRpdFZpZXcgPSBBZG1pblZpZXdDb21wb25lbnQgfCBFZGl0Vmlld0NvbmZpZ1xuXG5leHBvcnQgdHlwZSBMb2NhbGUgPSB7XG4gIC8qKlxuICAgKiB2YWx1ZSBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiZW5cIlxuICAgKi9cbiAgY29kZTogc3RyaW5nXG4gIC8qKlxuICAgKiBsYWJlbCBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiRW5nbGlzaFwiXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvblxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0ge1xuICAvKiogQ29uZmlndXJlIGFkbWluIGRhc2hib2FyZCAqL1xuICBhZG1pbj86IHtcbiAgICAvKiogQXV0b21hdGljYWxseSBsb2cgaW4gYXMgYSB1c2VyIHdoZW4gdmlzaXRpbmcgdGhlIGFkbWluIGRhc2hib2FyZC4gKi9cbiAgICBhdXRvTG9naW4/OlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgdG8gbG9naW4gYXNcbiAgICAgICAgICAgKlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmdcbiAgICAgICAgICAvKiogVGhlIHBhc3N3b3JkIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzICovXG4gICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZ1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIElmIHNldCB0byB0cnVlLCB0aGUgbG9naW4gY3JlZGVudGlhbHMgd2lsbCBiZSBwcmVmaWxsZWQgYnV0IHRoZSB1c2VyIHdpbGwgc3RpbGwgbmVlZCB0byBjbGljayB0aGUgbG9naW4gYnV0dG9uLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwcmVmaWxsT25seT86IGJvb2xlYW5cbiAgICAgICAgfVxuICAgICAgfCBmYWxzZVxuXG4gICAgLyoqIFNldCBhY2NvdW50IHByb2ZpbGUgcGljdHVyZS4gT3B0aW9uczogZ3JhdmF0YXIsIGRlZmF1bHQgb3IgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiAqL1xuICAgIGF2YXRhcj86ICdkZWZhdWx0JyB8ICdncmF2YXRhcicgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IGFuIGFic29sdXRlIHBhdGggZm9yIHdoZXJlIHRvIHN0b3JlIHRoZSBidWlsdCBBZG1pbiBwYW5lbCBidW5kbGUgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCIvYnVpbGRcIlxuICAgICAqICovXG4gICAgYnVpbGRQYXRoPzogc3RyaW5nXG4gICAgLyoqIEN1c3RvbWl6ZSB0aGUgYnVuZGxlciB1c2VkIHRvIHJ1biB5b3VyIGFkbWluIHBhbmVsLiAqL1xuICAgIGJ1bmRsZXI/OiBQYXlsb2FkQnVuZGxlclxuICAgIC8qKlxuICAgICAqIEFkZCBleHRyYSBhbmQvb3IgcmVwbGFjZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIGNvbXBvbmVudHNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FkbWluL2NvbXBvbmVudHNcbiAgICAgKi9cbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9uIHdpdGggYSBjdXN0b20gY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIE5hdj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIGNvbGxlY3Rpb24gb3ZlcnZpZXdcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIGVtYWlsL3Bhc3N3b3JkIGZpZWxkXG4gICAgICAgKi9cbiAgICAgIGFmdGVyTG9naW4/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJOYXZMaW5rcz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIGNvbGxlY3Rpb24gb3ZlcnZpZXdcbiAgICAgICAqL1xuICAgICAgYmVmb3JlRGFzaGJvYXJkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTG9naW4/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBuYXZpZ2F0aW9uIGxpbmtzXG4gICAgICAgKi9cbiAgICAgIGJlZm9yZU5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKiBSZXBsYWNlIGdyYXBoaWNhbCBjb21wb25lbnRzICovXG4gICAgICBncmFwaGljcz86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGljb24gaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgICAgICAgSWNvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgICAvKiogUmVwbGFjZSB0aGUgbG9nbyBvbiB0aGUgbG9naW4gcGFnZSAqL1xuICAgICAgICBMb2dvPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICB9XG4gICAgICAvKiogUmVwbGFjZSBsb2dvdXQgcmVsYXRlZCBjb21wb25lbnRzICovXG4gICAgICBsb2dvdXQ/OiB7XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvdXQgYnV0dG9uICAqL1xuICAgICAgICBCdXR0b24/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKlxuICAgICAgICogV3JhcCB0aGUgYWRtaW4gZGFzaGJvYXJkIGluIGN1c3RvbSBjb250ZXh0IHByb3ZpZGVyc1xuICAgICAgICovXG4gICAgICBwcm92aWRlcnM/OiBSZWFjdC5Db21wb25lbnRUeXBlPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PltdXG4gICAgICAvKipcbiAgICAgICAqIFJlcGxhY2Ugb3IgbW9kaWZ5IHRvcC1sZXZlbCBhZG1pbiByb3V0ZXMsIG9yIGFkZCBuZXcgb25lczpcbiAgICAgICAqICsgYEFjY291bnRgIC0gYC9hZG1pbi9hY2NvdW50YFxuICAgICAgICogKyBgRGFzaGJvYXJkYCAtIGAvYWRtaW5gXG4gICAgICAgKiArIGA6cGF0aGAgLSBgL2FkbWluLzpwYXRoYFxuICAgICAgICovXG4gICAgICB2aWV3cz86IHtcbiAgICAgICAgLyoqIEFkZCBjdXN0b20gYWRtaW4gdmlld3MgKi9cbiAgICAgICAgW2tleTogc3RyaW5nXTogQWRtaW5WaWV3XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBhY2NvdW50IHNjcmVlbiAqL1xuICAgICAgICBBY2NvdW50PzogQWRtaW5WaWV3XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBhZG1pbiBob21lcGFnZSAqL1xuICAgICAgICBEYXNoYm9hcmQ/OiBBZG1pblZpZXdcbiAgICAgIH1cbiAgICB9XG4gICAgLyoqIEFic29sdXRlIHBhdGggdG8gYSBzdHlsZXNoZWV0IHRoYXQgeW91IGNhbiB1c2UgdG8gb3ZlcnJpZGUgLyBjdXN0b21pemUgdGhlIEFkbWluIHBhbmVsIHN0eWxpbmcuICovXG4gICAgY3NzPzogc3RyaW5nXG4gICAgLyoqIEdsb2JhbCBkYXRlIGZvcm1hdCB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYWxsIGRhdGVzIGluIHRoZSBBZG1pbiBwYW5lbC4gQW55IHZhbGlkIGRhdGUtZm5zIGZvcm1hdCBwYXR0ZXJuIGNhbiBiZSB1c2VkLiAqL1xuICAgIGRhdGVGb3JtYXQ/OiBzdHJpbmdcbiAgICAvKiogSWYgc2V0IHRvIHRydWUsIHRoZSBlbnRpcmUgQWRtaW4gcGFuZWwgd2lsbCBiZSBkaXNhYmxlZC4gKi9cbiAgICBkaXNhYmxlPzogYm9vbGVhblxuICAgIC8qKiBUaGUgcm91dGUgdGhlIHVzZXIgd2lsbCBiZSByZWRpcmVjdGVkIHRvIGFmdGVyIGJlaW5nIGluYWN0aXZlIGZvciB0b28gbG9uZy4gKi9cbiAgICBpbmFjdGl2aXR5Um91dGU/OiBzdHJpbmdcbiAgICAvKiogUmVwbGFjZSB0aGUgZW50aXJldHkgb2YgdGhlIGluZGV4Lmh0bWwgZmlsZSB1c2VkIGJ5IHRoZSBBZG1pbiBwYW5lbC4gUmVmZXJlbmNlIHRoZSBiYXNlIGluZGV4Lmh0bWwgZmlsZSB0byBlbnN1cmUgeW91ciByZXBsYWNlbWVudCBoYXMgdGhlIGFwcHJvcHJpYXRlIEhUTUwgZWxlbWVudHMuICovXG4gICAgaW5kZXhIVE1MPzogc3RyaW5nXG4gICAgbGl2ZVByZXZpZXc/OiBMaXZlUHJldmlld0NvbmZpZyAmIHtcbiAgICAgIGNvbGxlY3Rpb25zPzogc3RyaW5nW11cbiAgICAgIGdsb2JhbHM/OiBzdHJpbmdbXVxuICAgIH1cbiAgICAvKiogVGhlIHJvdXRlIGZvciB0aGUgbG9nb3V0IHBhZ2UuICovXG4gICAgbG9nb3V0Um91dGU/OiBzdHJpbmdcbiAgICAvKiogQmFzZSBtZXRhIGRhdGEgdG8gdXNlIGZvciB0aGUgQWRtaW4gcGFuZWwuIEluY2x1ZGVkIHByb3BlcnRpZXMgYXJlIHRpdGxlU3VmZml4LCBvZ0ltYWdlLCBhbmQgZmF2aWNvbi4gKi9cbiAgICBtZXRhPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBQdWJsaWMgcGF0aCB0byBhbiBpY29uXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGluIHRoZSBicm93c2VyIG5leHQgdG8gdGhlIHRpdGxlIG9mIHRoZSBwYWdlXG4gICAgICAgKi9cbiAgICAgIGZhdmljb24/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaW1hZ2VcbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGltYWdlIG1heSBiZSBkaXNwbGF5ZWQgYXMgcHJldmlldyB3aGVuIHRoZSBsaW5rIGlzIHNoYXJlZCBvbiBzb2NpYWwgbWVkaWFcbiAgICAgICAqL1xuICAgICAgb2dJbWFnZT86IHN0cmluZ1xuICAgICAgLyoqXG4gICAgICAgKiBTdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSA8dGl0bGU+IG9mIGFkbWluIHBhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSBgXCIgLSBNeSBCcmFuZFwiYFxuICAgICAgICovXG4gICAgICB0aXRsZVN1ZmZpeD86IHN0cmluZ1xuICAgIH1cbiAgICAvKiogVGhlIHNsdWcgb2YgYSBDb2xsZWN0aW9uIHRoYXQgeW91IHdhbnQgYmUgdXNlZCB0byBsb2cgaW4gdG8gdGhlIEFkbWluIGRhc2hib2FyZC4gKi9cbiAgICB1c2VyPzogc3RyaW5nXG4gICAgLyoqIEN1c3RvbWl6ZSB0aGUgVml0ZSBjb25maWcgdGhhdCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIEFkbWluIHBhbmVsLiAqL1xuICAgIHZpdGU/OiAoY29uZmlnOiBJbmxpbmVDb25maWcpID0+IElubGluZUNvbmZpZ1xuICAgIC8qKiBDdXN0b21pemUgdGhlIFdlYnBhY2sgY29uZmlnIHRoYXQncyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBBZG1pbiBwYW5lbC4gKi9cbiAgICB3ZWJwYWNrPzogKGNvbmZpZzogQ29uZmlndXJhdGlvbikgPT4gQ29uZmlndXJhdGlvblxuICB9XG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIGRhdGFtb2RlbCBvZiB5b3VyIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vY29sbGVjdGlvbnMjY29sbGVjdGlvbi1jb25maWdzXG4gICAqL1xuICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25Db25maWdbXVxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBvbmVzXG4gICAqL1xuICBjb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiAoKCkgPT4gSlNYLkVsZW1lbnQpIHwgSlNYLkVsZW1lbnQgfVxuICAvKipcbiAgICogUHJlZml4IGEgc3RyaW5nIHRvIGFsbCBjb29raWVzIHRoYXQgUGF5bG9hZCBzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBheWxvYWRcIlxuICAgKi9cbiAgY29va2llUHJlZml4Pzogc3RyaW5nXG4gIC8qKiBFaXRoZXIgYSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMUyB0byBhbGxvdyBDT1JTIHJlcXVlc3RzIGZyb20sIG9yIGEgd2lsZGNhcmQgc3RyaW5nICgnKicpIHRvIGFjY2VwdCBpbmNvbWluZyByZXF1ZXN0cyBmcm9tIGFueSBkb21haW4uICovXG4gIGNvcnM/OiAnKicgfCBzdHJpbmdbXVxuXG4gIC8qKiBBIHdoaXRlbGlzdCBhcnJheSBvZiBVUkxzIHRvIGFsbG93IFBheWxvYWQgY29va2llcyB0byBiZSBhY2NlcHRlZCBmcm9tIGFzIGEgZm9ybSBvZiBDU1JGIHByb3RlY3Rpb24uICovXG4gIGNzcmY/OiBzdHJpbmdbXVxuXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLyoqIFBhc3MgaW4gYSBkYXRhYmFzZSBhZGFwdGVyIGZvciB1c2Ugb24gdGhpcyBwcm9qZWN0LiAqL1xuICBkYjogKGFyZ3M6IHsgcGF5bG9hZDogUGF5bG9hZCB9KSA9PiBCYXNlRGF0YWJhc2VBZGFwdGVyXG4gIC8qKiBFbmFibGUgdG8gZXhwb3NlIG1vcmUgZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgYSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYGRlcHRoYCB3aGlsZSByZXF1ZXN0aW5nIGEgcmVzb3VyY2UsIHRoaXMgZGVwdGggd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgZGVmYXVsdERlcHRoPzogbnVtYmVyXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MDAwMFxuICAgKi9cbiAgZGVmYXVsdE1heFRleHRMZW5ndGg/OiBudW1iZXJcbiAgLyoqIERlZmF1bHQgcmljaHRleHQgZWRpdG9yIHRvIHVzZSBmb3IgcmljaFRleHQgZmllbGRzICovXG4gIGVkaXRvcjogUmljaFRleHRBZGFwdGVyPGFueSwgYW55LCBhbnk+XG4gIC8qKlxuICAgKiBFbWFpbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSBgZW1haWxgIGluIFBheWxvYWQuaW5pdCBpZiBwYXNzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuICAvKiogQ3VzdG9tIFJFU1QgZW5kcG9pbnRzICovXG4gIGVuZHBvaW50cz86IEVuZHBvaW50W11cbiAgLyoqXG4gICAqIEV4cHJlc3Mtc3BlY2lmaWMgbWlkZGxld2FyZSBvcHRpb25zIHN1Y2ggYXMgY29tcHJlc3Npb24gYW5kIEpTT04gcGFyc2luZy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9leHByZXNzXG4gICAqL1xuICBleHByZXNzPzoge1xuICAgIC8qKiBDb250cm9sIHRoZSB3YXkgcmVzcG9uc2VzIGFyZSBjb21wcmVzc2VkICovXG4gICAgY29tcHJlc3Npb24/OiB7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duXG4gICAgfVxuICAgIC8qKiBDb250cm9sIHRoZSB3YXkgSlNPTiBpcyBwYXJzZWQgKi9cbiAgICBqc29uPzoge1xuICAgICAgLyoqIERlZmF1bHRzIHRvIDJNQiAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyXG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGV4cHJlc3MubWlkZGxld2FyZSB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gUGxlYXNlIG1pZ3JhdGUgdG8gZXhwcmVzcy5wb3N0TWlkZGxld2FyZS5cbiAgICAgKi9cbiAgICBtaWRkbGV3YXJlPzogYW55W11cbiAgICBwb3N0TWlkZGxld2FyZT86IGFueVtdXG4gICAgcHJlTWlkZGxld2FyZT86IGFueVtdXG4gIH1cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZ2xvYmFscyNnbG9iYWwtY29uZmlnc1xuICAgKi9cbiAgZ2xvYmFscz86IEdsb2JhbENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIEdyYXBoUUwgQVBJXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIHlvdXIgb3duIEdyYXBoUUwgcXVlcmllcyBhbmQgbXV0YXRpb25zIHRvIFBheWxvYWQsIG1ha2luZyB1c2Ugb2YgYWxsIHRoZSB0eXBlcyB0aGF0IFBheWxvYWQgaGFzIGRlZmluZWQgZm9yIHlvdS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAgICovXG4gIGdyYXBoUUw/OiB7XG4gICAgZGlzYWJsZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlUGxheWdyb3VuZEluUHJvZHVjdGlvbj86IGJvb2xlYW5cbiAgICBtYXhDb21wbGV4aXR5PzogbnVtYmVyXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIGtleXMgdG8gY3VzdG9tIEdyYXBoUUwgbXV0YXRpb25zXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICAgICAqL1xuICAgIG11dGF0aW9ucz86IEdyYXBoUUxFeHRlbnNpb25cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyB0byBjdXN0b20gR3JhcGhRTCBxdWVyaWVzXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICAgICAqL1xuICAgIHF1ZXJpZXM/OiBHcmFwaFFMRXh0ZW5zaW9uXG4gICAgc2NoZW1hT3V0cHV0RmlsZT86IHN0cmluZ1xuICB9XG4gIC8qKlxuICAgKiBUYXAgaW50byBQYXlsb2FkLXdpZGUgaG9va3MuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2hvb2tzL292ZXJ2aWV3XG4gICAqL1xuICBob29rcz86IHtcbiAgICBhZnRlckVycm9yPzogQWZ0ZXJFcnJvckhvb2tcbiAgfVxuICAvKipcbiAgICogQ29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIHRoZSBhZG1pbiBpbnRlcm5hdGlvbmFsaXNhdGlvbi5cbiAgICpcbiAgICogU2VlIGkxOG5leHQgb3B0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHRcbiAgICoge1xuICAgKiAgIGZhbGxiYWNrTG5nOiAnZW4nLFxuICAgKiAgIGRlYnVnOiBmYWxzZSxcbiAgICogICBzdXBwb3J0ZWRMbmdzOiBPYmplY3Qua2V5cyh0cmFuc2xhdGlvbnMpLFxuICAgKiAgIHJlc291cmNlczogdHJhbnNsYXRpb25zLFxuICAgKiB9XG4gICAqL1xuICBpMThuPzogaTE4bkluaXRPcHRpb25zXG4gIC8qKiBBdXRvbWF0aWNhbGx5IGluZGV4IGFsbCBzb3J0YWJsZSB0b3AtbGV2ZWwgZmllbGRzIGluIHRoZSBkYXRhYmFzZSB0byBpbXByb3ZlIHNvcnQgcGVyZm9ybWFuY2UgYW5kIGFkZCBkYXRhYmFzZSBjb21wYXRpYmlsaXR5IGZvciBBenVyZSBDb3Ntb3MgYW5kIHNpbWlsYXIuICovXG4gIGluZGV4U29ydGFibGVGaWVsZHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgeW91ciBjb250ZW50IHRvIGRpZmZlcmVudCBsYW5ndWFnZXMvbG9jYWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2UgLy8gZGlzYWJsZSBsb2NhbGl6YXRpb25cbiAgICovXG4gIGxvY2FsaXphdGlvbj86IExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIG1heERlcHRoPzogbnVtYmVyXG4gIC8qKiBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBzdGFydHVwIHRoYXQgcmVjZWl2ZXMgdGhlIFBheWxvYWQgaW5zdGFuY2UgYXMgaXRzIG9ubHkgYXJndW1lbnQuICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgUGF5bG9hZCBwbHVnaW5zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9wbHVnaW5zL292ZXJ2aWV3XG4gICAqL1xuICBwbHVnaW5zPzogUGx1Z2luW11cbiAgLyoqXG4gICAqIExpbWl0IGhlYXZ5IHVzYWdlXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqIHtcbiAgICogICB3aW5kb3c6IDE1ICogNjAgKiAxMDAwLCAvLyAxNSBtaW51dGVzLFxuICAgKiAgIG1heDogNTAwLFxuICAgKiB9XG4gICAqL1xuICByYXRlTGltaXQ/OiB7XG4gICAgbWF4PzogbnVtYmVyXG4gICAgc2tpcD86IChyZXE6IFBheWxvYWRSZXF1ZXN0KSA9PiBib29sZWFuXG4gICAgdHJ1c3RQcm94eT86IGJvb2xlYW5cbiAgICB3aW5kb3c/OiBudW1iZXJcbiAgfVxuICAvKiogQ29udHJvbCB0aGUgcm91dGluZyBzdHJ1Y3R1cmUgdGhhdCBQYXlsb2FkIGJpbmRzIGl0c2VsZiB0by4gKi9cbiAgcm91dGVzPzoge1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hZG1pblwiICovXG4gICAgYWRtaW4/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvYXBpXCIgICovXG4gICAgYXBpPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWxcIiAgKi9cbiAgICBncmFwaFFMPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL3BsYXlncm91bmRcIiAqL1xuICAgIGdyYXBoUUxQbGF5Z3JvdW5kPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgYWJzb2x1dGUgVVJMIG9mIHlvdXIgYXBwIGluY2x1ZGluZyB0aGUgcHJvdG9jb2wsIGZvciBleGFtcGxlIGBodHRwczovL2V4YW1wbGUub3JnYC5cbiAgICogTm8gcGF0aHMgYWxsb3dlZCwgb25seSBwcm90b2NvbCwgZG9tYWluIGFuZCAob3B0aW9uYWxseSkgcG9ydC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9vdmVydmlldyNvcHRpb25zXG4gICAqL1xuICBzZXJ2ZXJVUkw/OiBzdHJpbmdcbiAgLyoqIFNlbmQgYW5vbnltb3VzIHRlbGVtZXRyeSBkYXRhIGFib3V0IGdlbmVyYWwgdXNhZ2UuICovXG4gIHRlbGVtZXRyeT86IGJvb2xlYW5cbiAgLyoqIENvbnRyb2wgaG93IHR5cGVzY3JpcHQgaW50ZXJmYWNlcyBhcmUgZ2VuZXJhdGVkIGZyb20geW91ciBjb2xsZWN0aW9ucy4gKi9cbiAgdHlwZXNjcmlwdD86IHtcbiAgICAvKiogRGlzYWJsZSBkZWNsYXJlIGJsb2NrIGluIGdlbmVyYXRlZCB0eXBlcyBmaWxlICovXG4gICAgZGVjbGFyZT86IGZhbHNlXG4gICAgLyoqIEZpbGVuYW1lIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgdHlwZXMgdG8gKi9cbiAgICBvdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSB0aGUgaGFuZGxpbmcgb2YgaW5jb21pbmcgZmlsZSB1cGxvYWRzIGZvciBjb2xsZWN0aW9ucyB0aGF0IGhhdmUgdXBsb2FkcyBlbmFibGVkLlxuICAgKi9cbiAgdXBsb2FkPzogRXhwcmVzc0ZpbGVVcGxvYWRPcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFNhbml0aXplZENvbmZpZyA9IE9taXQ8XG4gIERlZXBSZXF1aXJlZDxDb25maWc+LFxuICAnY29sbGVjdGlvbnMnIHwgJ2VuZHBvaW50JyB8ICdnbG9iYWxzJyB8ICdsb2NhbGl6YXRpb24nXG4+ICYge1xuICBjb2xsZWN0aW9uczogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1tdXG4gIGVuZHBvaW50czogRW5kcG9pbnRbXVxuICBnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXVxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlXG4gIHBhdGhzOiB7XG4gICAgY29uZmlnOiBzdHJpbmdcbiAgICBjb25maWdEaXI6IHN0cmluZ1xuICAgIHJhd0NvbmZpZzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImhhc1RyYW5zcG9ydE9wdGlvbnMiLCJlbWFpbENvbmZpZyIsInRyYW5zcG9ydCIsInVuZGVmaW5lZCIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBK0ZnQkEsWUFBWTtlQUFaQTs7SUFRQUMsbUJBQW1CO2VBQW5CQTs7O0FBUlQsU0FBU0QsYUFBYUUsV0FBeUI7SUFDcEQsT0FBTyxBQUFDQSxZQUErQkMsU0FBUyxLQUFLQztBQUN2RDtBQU1PLFNBQVNILG9CQUNkQyxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDRyxnQkFBZ0IsS0FBS0Q7QUFDckUifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHByZXNzLCBOZXh0RnVuY3Rpb24sIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IEluaXRPcHRpb25zIGFzIGkxOG5Jbml0T3B0aW9ucyB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgdHlwZSB7IElubGluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICd3ZWJwYWNrJ1xuXG5pbXBvcnQgdHlwZSB7XG4gIERvY3VtZW50VGFiLFxuICBEb2N1bWVudFRhYkNvbXBvbmVudCxcbiAgRG9jdW1lbnRUYWJDb25maWcsXG59IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvRG9jdW1lbnRIZWFkZXIvVGFicy90eXBlcydcbmltcG9ydCB0eXBlIHsgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9SaWNoVGV4dC90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29udGV4dFR5cGUgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9Eb2N1bWVudEluZm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuLi9hdXRoL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkQnVuZGxlciB9IGZyb20gJy4uL2J1bmRsZXJzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBZnRlckVycm9ySG9vayxcbiAgQ29sbGVjdGlvbkNvbmZpZyxcbiAgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbn0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2xvYmFsQ29uZmlnLCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uL3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgUHJldHRpZnk8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgTm9uTnVsbGFibGU8dW5rbm93bj5cblxudHlwZSBFbWFpbCA9IHtcbiAgZnJvbUFkZHJlc3M6IHN0cmluZ1xuICBmcm9tTmFtZTogc3RyaW5nXG4gIGxvZ01vY2tDcmVkZW50aWFscz86IGJvb2xlYW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBQbHVnaW4gPSAoY29uZmlnOiBDb25maWcpID0+IENvbmZpZyB8IFByb21pc2U8Q29uZmlnPlxuXG5leHBvcnQgdHlwZSBMaXZlUHJldmlld0NvbmZpZyA9IHtcbiAgLyoqXG4gICBEZXZpY2UgYnJlYWtwb2ludHMgdG8gdXNlIGZvciB0aGUgYGlmcmFtZWAgb2YgdGhlIExpdmUgUHJldmlldyB3aW5kb3cuXG4gICBPcHRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIExpdmUgUHJldmlldyB0b29sYmFyLlxuICAgVGhlIGByZXNwb25zaXZlYCBicmVha3BvaW50IGlzIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBicmVha3BvaW50cz86IHtcbiAgICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgIFRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uLiBUaGlzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aGluIGFuIGBpZnJhbWVgIGFzIGl0cyBgc3JjYC5cbiAgIFBheWxvYWQgd2lsbCBzZW5kIGEgYHdpbmRvdy5wb3N0TWVzc2FnZSgpYCB0byB0aGlzIFVSTCB3aXRoIHRoZSBkb2N1bWVudCBkYXRhIGluIHJlYWwtdGltZS5cbiAgIFRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHRoZSBtZXNzYWdlIGFuZCB1cGRhdGluZyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICBVc2UgdGhlIGB1c2VMaXZlUHJldmlld2AgaG9vayB0byBnZXQgc3RhcnRlZCBpbiBSZWFjdCBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICB1cmw/OlxuICAgIHwgKChhcmdzOiB7IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT47IGRvY3VtZW50SW5mbzogQ29udGV4dFR5cGU7IGxvY2FsZTogTG9jYWxlIH0pID0+IHN0cmluZylcbiAgICB8IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxFeHRlbnNpb24gPSAoXG4gIGdyYXBoUUw6IHR5cGVvZiBHcmFwaFFMLFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgdHlwZSBJbml0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2l0aCB0aGUgbG9jYWwgQVBJLCB5b3UgbWlnaHQgbmVlZCB0byBwYXNzIGEgY29uZmlnIGZpbGUgZGlyZWN0bHksIGZvciBleGFtcGxlLCBzZXJ2ZXJsZXNzIG9uIFZlcmNlbFxuICAgKiBUaGUgcGFzc2VkIGNvbmZpZyBzaG91bGQgbWF0Y2ggdGhlIGNvbmZpZyBmaWxlLCBhbmQgaWYgaXQgZG9lc24ndCwgdGhlcmUgY291bGQgYmUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBhZG1pbiBVSVxuICAgKiBhbmQgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgY29uZmlnPzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+XG5cbiAgLyoqXG4gICAqIERpc2FibGUgY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugb24gaW5pdFxuICAgKi9cbiAgZGlzYWJsZURCQ29ubmVjdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogRGlzYWJsZSBydW5uaW5nIG9mIHRoZSBgb25Jbml0YCBmdW5jdGlvblxuICAgKi9cbiAgZGlzYWJsZU9uSW5pdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgUGF5bG9hZCdzIGVtYWlsIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG5cbiAgLyoqIEV4cHJlc3MgYXBwIGZvciBQYXlsb2FkIHRvIHVzZSAqL1xuICBleHByZXNzPzogRXhwcmVzc1xuXG4gIC8qKlxuICAgKiBNYWtlIFBheWxvYWQgc3RhcnQgaW4gbG9jYWwtb25seSBtb2RlLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYnlwYXNzIHNldHRpbmcgdXAgUkVTVCBhbmQgR3JhcGhRTCBBUEkgcm91dGVzLlxuICAgKiBFeHByZXNzIHdpbGwgbm90IGJlIHJlcXVpcmVkIGlmIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBsb2NhbD86IGJvb2xlYW5cblxuICBsb2dnZXJEZXN0aW5hdGlvbj86IERlc3RpbmF0aW9uU3RyZWFtXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0J3Mgb25seSBhcmd1bWVudC5cbiAgICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuXG4gIC8qKiBTZWN1cmUgc3RyaW5nIHRoYXQgUGF5bG9hZCB3aWxsIHVzZSBmb3IgYW55IGVuY3J5cHRpb24gd29ya2Zsb3dzICovXG4gIHNlY3JldDogc3RyaW5nXG59XG5cbi8qKlxuICogVGhpcyByZXN1bHQgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2VydmVyXG4gKiBhbmQgdGhlbiBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGB0cnVlYCwgdGhlIHVzZXIgaGFzIGFjY2Vzcy5cbiAqIElmIHRoZSByZXN1bHQgaXMgYW4gb2JqZWN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIE1vbmdvREIgcXVlcnkuXG4gKlxuICogQGV4YW1wbGUgYHsgY3JlYXRlZEJ5OiB7IGVxdWFsczogaWQgfSB9YFxuICpcbiAqIEBleGFtcGxlIGB7IHRlbmFudDogeyBpbjogdGVuYW50SWRzIH0gfWBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3NSZXN1bHQgPSBXaGVyZSB8IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgQWNjZXNzQXJnczxUID0gYW55LCBVID0gYW55PiA9IHtcbiAgLyoqXG4gICAqIFRoZSByZWxldmFudCByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkLlxuICAgKlxuICAgKiBgZGF0YWAgaXMgbnVsbCB3aGVuIGEgbGlzdCBpcyByZXF1ZXN0ZWRcbiAgICovXG4gIGRhdGE/OiBUXG4gIC8qKiBJRCBvZiB0aGUgcmVzb3VyY2UgYmVpbmcgYWNjZXNzZWQgKi9cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIEVxdWl2YWxlbnQgdG8gZXhwcmVzcyBtaWRkbGV3YXJlLCBidXQgd2l0aCBhbiBlbmhhbmNlZCByZXF1ZXN0IG9iamVjdCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkSGFuZGxlciB7XG4gIChyZXE6IFBheWxvYWRSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkXG59XG5cbi8qKlxuICogRG9jczogaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3Jlc3QtYXBpL292ZXJ2aWV3I2N1c3RvbS1lbmRwb2ludHNcbiAqL1xuZXhwb3J0IHR5cGUgRW5kcG9pbnQgPSB7XG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLyoqXG4gICAqIE1pZGRsZXdhcmUgdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwYXRoL21ldGhvZCBtYXRjaGVzXG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCBFeHByZXNzIG1pZGRsZXdhcmVcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyIHwgUGF5bG9hZEhhbmRsZXJbXVxuICAvKiogSFRUUCBtZXRob2QgKG9yIFwiYWxsXCIpICovXG4gIG1ldGhvZDogJ2Nvbm5lY3QnIHwgJ2RlbGV0ZScgfCAnZ2V0JyB8ICdoZWFkJyB8ICdvcHRpb25zJyB8ICdwYXRjaCcgfCAncG9zdCcgfCAncHV0J1xuICAvKipcbiAgICogUGF0dGVybiB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcGF0aCBvZiB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggdGhlIEV4cHJlc3Mgcm91dGVyXG4gICAqL1xuICBwYXRoOiBzdHJpbmdcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgUGF5bG9hZCBtaWRkbGV3YXJlIGZvciB0aGlzIGVuZHBvaW50XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByb290PzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb25maWcgPSB7XG4gIENvbXBvbmVudDogQWRtaW5WaWV3Q29tcG9uZW50XG4gIC8qKiBXaGV0aGVyIHRoZSBwYXRoIHNob3VsZCBiZSBtYXRjaGVkIGV4YWN0bHkgb3IgYXMgYSBwcmVmaXggKi9cbiAgZXhhY3Q/OiBib29sZWFuXG4gIHBhdGg6IHN0cmluZ1xuICBzZW5zaXRpdmU/OiBib29sZWFuXG4gIHN0cmljdD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQWRtaW5WaWV3UHJvcHMgPSB7XG4gIGNhbkFjY2Vzc0FkbWluPzogYm9vbGVhblxuICB1c2VyOiBVc2VyIHwgbnVsbCB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPEFkbWluVmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXcgPSBBZG1pblZpZXdDb21wb25lbnQgfCBBZG1pblZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb25maWcgPVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogQWRkIGEgbmV3IEVkaXQgdmlldyB0byB0aGUgYWRtaW4gcGFuZWxcbiAgICAgICAqIGkuZS4geW91IGNhbiByZW5kZXIgYSBjdXN0b20gdmlldyB0aGF0IGhhcyBubyB0YWIsIGlmIGRlc2lyZWRcbiAgICAgICAqIE9yIG92ZXJyaWRlIGEgc3BlY2lmaWMgcHJvcGVydGllcyBvZiBhbiBleGlzdGluZyBvbmVcbiAgICAgICAqIGkuZS4geW91IGNhbiBjdXN0b21pemUgdGhlIGBEZWZhdWx0YCB2aWV3IHRhYiBsYWJlbCwgaWYgZGVzaXJlZFxuICAgICAgICovXG4gICAgICBUYWI/OiBEb2N1bWVudFRhYlxuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBDb21wb25lbnQ6IEFkbWluVmlld0NvbXBvbmVudFxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgfVxuXG4vKipcbiAqIE92ZXJyaWRlIGV4aXN0aW5nIHZpZXdzXG4gKiBpLmUuIERhc2hib2FyZCwgQWNjb3VudCwgQVBJLCBMaXZlUHJldmlldywgZXRjLlxuICogUGF0aCBpcyBub3QgYXZhaWxhYmxlIGhlcmVcbiAqIEFsbCBUYWIgcHJvcGVydGllcyBiZWNvbWUgb3B0aW9uYWxcbiAqIGkuZS4geW91IGNhbiBjaGFuZ2UganVzdCB0aGUgbGFiZWwsIGlmIGRlc2lyZWRcbiAqL1xuZXhwb3J0IHR5cGUgRWRpdFZpZXcgPSBBZG1pblZpZXdDb21wb25lbnQgfCBFZGl0Vmlld0NvbmZpZ1xuXG5leHBvcnQgdHlwZSBMb2NhbGUgPSB7XG4gIC8qKlxuICAgKiB2YWx1ZSBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiZW5cIlxuICAgKi9cbiAgY29kZTogc3RyaW5nXG4gIC8qKlxuICAgKiBsYWJlbCBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiRW5nbGlzaFwiXG4gICAqL1xuICBsYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICAvKipcbiAgICogaWYgdHJ1ZSwgZGVmYXVsdHMgdGV4dEFsaWdtbmVudCBvbiB0ZXh0IGZpZWxkcyB0byBSVExcbiAgICovXG4gIHJ0bD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQmFzZUxvY2FsaXphdGlvbkNvbmZpZyA9IHtcbiAgLyoqXG4gICAqIExvY2FsZSBmb3IgdXNlcnMgdGhhdCBoYXZlIG5vdCBleHByZXNzZWQgdGhlaXIgcHJlZmVyZW5jZSBmb3IgYSBzcGVjaWZpYyBsb2NhbGVcbiAgICogQGV4YW1wbGUgYFwiZW5cImBcbiAgICovXG4gIGRlZmF1bHRMb2NhbGU6IHN0cmluZ1xuICAvKiogU2V0IHRvIGB0cnVlYCB0byBsZXQgbWlzc2luZyB2YWx1ZXMgaW4gbG9jYWxpc2VkIGZpZWxkcyBmYWxsIGJhY2sgdG8gdGhlIHZhbHVlcyBpbiBgZGVmYXVsdExvY2FsZWAgKi9cbiAgZmFsbGJhY2s/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVscyA9IFByZXR0aWZ5PFxuICBCYXNlTG9jYWxpemF0aW9uQ29uZmlnICYge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXNcbiAgICAgKiBAZXhhbXBsZSBgW1wiZW5cIiwgXCJlc1wiLCBcImZyXCIsIFwibmxcIiwgXCJkZVwiLCBcImpwXCJdYFxuICAgICAqL1xuICAgIGxvY2FsZXM6IHN0cmluZ1tdXG4gIH1cbj5cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyA9IFByZXR0aWZ5PFxuICBCYXNlTG9jYWxpemF0aW9uQ29uZmlnICYge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXMgd2l0aCBsYWJlbHNcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogIGxhYmVsOiAnRW5nbGlzaCcsXG4gICAgICogIHZhbHVlOiAnZW4nLFxuICAgICAqICBydGw6IGZhbHNlXG4gICAgICogfVxuICAgICAqL1xuICAgIGxvY2FsZXM6IExvY2FsZVtdXG4gIH1cbj5cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnID0gUHJldHRpZnk8XG4gIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhMYWJlbHMgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlQ29kZXM6IHN0cmluZ1tdXG4gIH1cbj5cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL2xvY2FsaXphdGlvbiNsb2NhbGl6YXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnID0gUHJldHRpZnk8XG4gIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhMYWJlbHMgfCBMb2NhbGl6YXRpb25Db25maWdXaXRoTm9MYWJlbHNcbj5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgLyoqIENvbmZpZ3VyZSBhZG1pbiBkYXNoYm9hcmQgKi9cbiAgYWRtaW4/OiB7XG4gICAgLyoqIEF1dG9tYXRpY2FsbHkgbG9nIGluIGFzIGEgdXNlciB3aGVuIHZpc2l0aW5nIHRoZSBhZG1pbiBkYXNoYm9hcmQuICovXG4gICAgYXV0b0xvZ2luPzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nXG4gICAgICAgICAgLyoqIFRoZSBwYXNzd29yZCBvZiB0aGUgdXNlciB0byBsb2dpbiBhcyAqL1xuICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGxvZ2luIGNyZWRlbnRpYWxzIHdpbGwgYmUgcHJlZmlsbGVkIGJ1dCB0aGUgdXNlciB3aWxsIHN0aWxsIG5lZWQgdG8gY2xpY2sgdGhlIGxvZ2luIGJ1dHRvbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHJlZmlsbE9ubHk/OiBib29sZWFuXG4gICAgICAgIH1cbiAgICAgIHwgZmFsc2VcblxuICAgIC8qKiBTZXQgYWNjb3VudCBwcm9maWxlIHBpY3R1cmUuIE9wdGlvbnM6IGdyYXZhdGFyLCBkZWZhdWx0IG9yIGEgY3VzdG9tIFJlYWN0IGNvbXBvbmVudC4gKi9cbiAgICBhdmF0YXI/OiAnZGVmYXVsdCcgfCAnZ3JhdmF0YXInIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgLyoqXG4gICAgICogU3BlY2lmeSBhbiBhYnNvbHV0ZSBwYXRoIGZvciB3aGVyZSB0byBzdG9yZSB0aGUgYnVpbHQgQWRtaW4gcGFuZWwgYnVuZGxlIHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiL2J1aWxkXCJcbiAgICAgKiAqL1xuICAgIGJ1aWxkUGF0aD86IHN0cmluZ1xuICAgIC8qKiBDdXN0b21pemUgdGhlIGJ1bmRsZXIgdXNlZCB0byBydW4geW91ciBhZG1pbiBwYW5lbC4gKi9cbiAgICBidW5kbGVyPzogUGF5bG9hZEJ1bmRsZXJcbiAgICAvKipcbiAgICAgKiBBZGQgZXh0cmEgYW5kL29yIHJlcGxhY2UgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBjb21wb25lbnRzXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hZG1pbi9jb21wb25lbnRzXG4gICAgICovXG4gICAgY29tcG9uZW50cz86IHtcbiAgICAgIC8qKlxuICAgICAgICogUmVwbGFjZSB0aGUgbmF2aWdhdGlvbiB3aXRoIGEgY3VzdG9tIGNvbXBvbmVudFxuICAgICAgICovXG4gICAgICBOYXY/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBjb2xsZWN0aW9uIG92ZXJ2aWV3XG4gICAgICAgKi9cbiAgICAgIGFmdGVyRGFzaGJvYXJkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBhZnRlckxvZ2luPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBuYXZpZ2F0aW9uIGxpbmtzXG4gICAgICAgKi9cbiAgICAgIGFmdGVyTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBjb2xsZWN0aW9uIG92ZXJ2aWV3XG4gICAgICAgKi9cbiAgICAgIGJlZm9yZURhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIGVtYWlsL3Bhc3N3b3JkIGZpZWxkXG4gICAgICAgKi9cbiAgICAgIGJlZm9yZUxvZ2luPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBiZWZvcmVOYXZMaW5rcz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKiogUmVwbGFjZSBncmFwaGljYWwgY29tcG9uZW50cyAqL1xuICAgICAgZ3JhcGhpY3M/OiB7XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBpY29uIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gICAgICAgIEljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ28gb24gdGhlIGxvZ2luIHBhZ2UgKi9cbiAgICAgICAgTG9nbz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqIFJlcGxhY2UgbG9nb3V0IHJlbGF0ZWQgY29tcG9uZW50cyAqL1xuICAgICAgbG9nb3V0Pzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgbG9nb3V0IGJ1dHRvbiAgKi9cbiAgICAgICAgQnV0dG9uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICAqIFdyYXAgdGhlIGFkbWluIGRhc2hib2FyZCBpbiBjdXN0b20gY29udGV4dCBwcm92aWRlcnNcbiAgICAgICAqL1xuICAgICAgcHJvdmlkZXJzPzogUmVhY3QuQ29tcG9uZW50VHlwZTx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIG9yIG1vZGlmeSB0b3AtbGV2ZWwgYWRtaW4gcm91dGVzLCBvciBhZGQgbmV3IG9uZXM6XG4gICAgICAgKiArIGBBY2NvdW50YCAtIGAvYWRtaW4vYWNjb3VudGBcbiAgICAgICAqICsgYERhc2hib2FyZGAgLSBgL2FkbWluYFxuICAgICAgICogKyBgOnBhdGhgIC0gYC9hZG1pbi86cGF0aGBcbiAgICAgICAqL1xuICAgICAgdmlld3M/OiB7XG4gICAgICAgIC8qKiBBZGQgY3VzdG9tIGFkbWluIHZpZXdzICovXG4gICAgICAgIFtrZXk6IHN0cmluZ106IEFkbWluVmlld1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWNjb3VudCBzY3JlZW4gKi9cbiAgICAgICAgQWNjb3VudD86IEFkbWluVmlld1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWRtaW4gaG9tZXBhZ2UgKi9cbiAgICAgICAgRGFzaGJvYXJkPzogQWRtaW5WaWV3XG4gICAgICB9XG4gICAgfVxuICAgIC8qKiBBYnNvbHV0ZSBwYXRoIHRvIGEgc3R5bGVzaGVldCB0aGF0IHlvdSBjYW4gdXNlIHRvIG92ZXJyaWRlIC8gY3VzdG9taXplIHRoZSBBZG1pbiBwYW5lbCBzdHlsaW5nLiAqL1xuICAgIGNzcz86IHN0cmluZ1xuICAgIC8qKiBHbG9iYWwgZGF0ZSBmb3JtYXQgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFsbCBkYXRlcyBpbiB0aGUgQWRtaW4gcGFuZWwuIEFueSB2YWxpZCBkYXRlLWZucyBmb3JtYXQgcGF0dGVybiBjYW4gYmUgdXNlZC4gKi9cbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nXG4gICAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgZW50aXJlIEFkbWluIHBhbmVsIHdpbGwgYmUgZGlzYWJsZWQuICovXG4gICAgZGlzYWJsZT86IGJvb2xlYW5cbiAgICAvKiogVGhlIHJvdXRlIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byBhZnRlciBiZWluZyBpbmFjdGl2ZSBmb3IgdG9vIGxvbmcuICovXG4gICAgaW5hY3Rpdml0eVJvdXRlPzogc3RyaW5nXG4gICAgLyoqIFJlcGxhY2UgdGhlIGVudGlyZXR5IG9mIHRoZSBpbmRleC5odG1sIGZpbGUgdXNlZCBieSB0aGUgQWRtaW4gcGFuZWwuIFJlZmVyZW5jZSB0aGUgYmFzZSBpbmRleC5odG1sIGZpbGUgdG8gZW5zdXJlIHlvdXIgcmVwbGFjZW1lbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBIVE1MIGVsZW1lbnRzLiAqL1xuICAgIGluZGV4SFRNTD86IHN0cmluZ1xuICAgIGxpdmVQcmV2aWV3PzogTGl2ZVByZXZpZXdDb25maWcgJiB7XG4gICAgICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdXG4gICAgICBnbG9iYWxzPzogc3RyaW5nW11cbiAgICB9XG4gICAgLyoqIFRoZSByb3V0ZSBmb3IgdGhlIGxvZ291dCBwYWdlLiAqL1xuICAgIGxvZ291dFJvdXRlPzogc3RyaW5nXG4gICAgLyoqIEJhc2UgbWV0YSBkYXRhIHRvIHVzZSBmb3IgdGhlIEFkbWluIHBhbmVsLiBJbmNsdWRlZCBwcm9wZXJ0aWVzIGFyZSB0aXRsZVN1ZmZpeCwgb2dJbWFnZSwgYW5kIGZhdmljb24uICovXG4gICAgbWV0YT86IHtcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaWNvblxuICAgICAgICpcbiAgICAgICAqIFRoaXMgaW1hZ2UgbWF5IGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlciBuZXh0IHRvIHRoZSB0aXRsZSBvZiB0aGUgcGFnZVxuICAgICAgICovXG4gICAgICBmYXZpY29uPzogc3RyaW5nXG4gICAgICAvKipcbiAgICAgICAqIFB1YmxpYyBwYXRoIHRvIGFuIGltYWdlXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGFzIHByZXZpZXcgd2hlbiB0aGUgbGluayBpcyBzaGFyZWQgb24gc29jaWFsIG1lZGlhXG4gICAgICAgKi9cbiAgICAgIG9nSW1hZ2U/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogU3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgPHRpdGxlPiBvZiBhZG1pbiBwYWdlc1xuICAgICAgICogQGV4YW1wbGUgYFwiIC0gTXkgQnJhbmRcImBcbiAgICAgICAqL1xuICAgICAgdGl0bGVTdWZmaXg/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqIFRoZSBzbHVnIG9mIGEgQ29sbGVjdGlvbiB0aGF0IHlvdSB3YW50IGJlIHVzZWQgdG8gbG9nIGluIHRvIHRoZSBBZG1pbiBkYXNoYm9hcmQuICovXG4gICAgdXNlcj86IHN0cmluZ1xuICAgIC8qKiBDdXN0b21pemUgdGhlIFZpdGUgY29uZmlnIHRoYXQncyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBBZG1pbiBwYW5lbC4gKi9cbiAgICB2aXRlPzogKGNvbmZpZzogSW5saW5lQ29uZmlnKSA9PiBJbmxpbmVDb25maWdcbiAgICAvKiogQ3VzdG9taXplIHRoZSBXZWJwYWNrIGNvbmZpZyB0aGF0J3MgdXNlZCB0byBnZW5lcmF0ZSB0aGUgQWRtaW4gcGFuZWwuICovXG4gICAgd2VicGFjaz86IChjb25maWc6IENvbmZpZ3VyYXRpb24pID0+IENvbmZpZ3VyYXRpb25cbiAgfVxuICAvKipcbiAgICogTWFuYWdlIHRoZSBkYXRhbW9kZWwgb2YgeW91ciBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL2NvbGxlY3Rpb25zI2NvbGxlY3Rpb24tY29uZmlnc1xuICAgKi9cbiAgY29sbGVjdGlvbnM/OiBDb2xsZWN0aW9uQ29uZmlnW11cbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGJ1aWx0LWluIGNvbXBvbmVudHMgd2l0aCBjdXN0b20gb25lc1xuICAgKi9cbiAgY29tcG9uZW50cz86IHsgW2tleTogc3RyaW5nXTogKCgpID0+IEpTWC5FbGVtZW50KSB8IEpTWC5FbGVtZW50IH1cbiAgLyoqXG4gICAqIFByZWZpeCBhIHN0cmluZyB0byBhbGwgY29va2llcyB0aGF0IFBheWxvYWQgc2V0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwYXlsb2FkXCJcbiAgICovXG4gIGNvb2tpZVByZWZpeD86IHN0cmluZ1xuICAvKiogRWl0aGVyIGEgd2hpdGVsaXN0IGFycmF5IG9mIFVSTFMgdG8gYWxsb3cgQ09SUyByZXF1ZXN0cyBmcm9tLCBvciBhIHdpbGRjYXJkIHN0cmluZyAoJyonKSB0byBhY2NlcHQgaW5jb21pbmcgcmVxdWVzdHMgZnJvbSBhbnkgZG9tYWluLiAqL1xuICBjb3JzPzogJyonIHwgc3RyaW5nW11cblxuICAvKiogQSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMcyB0byBhbGxvdyBQYXlsb2FkIGNvb2tpZXMgdG8gYmUgYWNjZXB0ZWQgZnJvbSBhcyBhIGZvcm0gb2YgQ1NSRiBwcm90ZWN0aW9uLiAqL1xuICBjc3JmPzogc3RyaW5nW11cblxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gIC8qKiBQYXNzIGluIGEgZGF0YWJhc2UgYWRhcHRlciBmb3IgdXNlIG9uIHRoaXMgcHJvamVjdC4gKi9cbiAgZGI6IChhcmdzOiB7IHBheWxvYWQ6IFBheWxvYWQgfSkgPT4gQmFzZURhdGFiYXNlQWRhcHRlclxuICAvKiogRW5hYmxlIHRvIGV4cG9zZSBtb3JlIGRldGFpbGVkIGVycm9yIGluZm9ybWF0aW9uLiAqL1xuICBkZWJ1Zz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIGEgdXNlciBkb2VzIG5vdCBzcGVjaWZ5IGBkZXB0aGAgd2hpbGUgcmVxdWVzdGluZyBhIHJlc291cmNlLCB0aGlzIGRlcHRoIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2NvbmNlcHRzI2RlcHRoXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIGRlZmF1bHREZXB0aD86IG51bWJlclxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dlZCBkZXB0aCB0byBiZSBwZXJtaXR0ZWQgYXBwbGljYXRpb24td2lkZS4gVGhpcyBzZXR0aW5nIGhlbHBzIHByZXZlbnQgYWdhaW5zdCBtYWxpY2lvdXMgcXVlcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgNDAwMDBcbiAgICovXG4gIGRlZmF1bHRNYXhUZXh0TGVuZ3RoPzogbnVtYmVyXG4gIC8qKiBEZWZhdWx0IHJpY2h0ZXh0IGVkaXRvciB0byB1c2UgZm9yIHJpY2hUZXh0IGZpZWxkcyAqL1xuICBlZGl0b3I6IFJpY2hUZXh0QWRhcHRlcjxhbnksIGFueSwgYW55PlxuICAvKipcbiAgICogRW1haWwgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGlzIHZhbHVlIGlzIG92ZXJyaWRkZW4gYnkgYGVtYWlsYCBpbiBQYXlsb2FkLmluaXQgaWYgcGFzc2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9lbWFpbC9vdmVydmlld1xuICAgKi9cbiAgZW1haWw/OiBFbWFpbE9wdGlvbnNcbiAgLyoqIEN1c3RvbSBSRVNUIGVuZHBvaW50cyAqL1xuICBlbmRwb2ludHM/OiBFbmRwb2ludFtdXG4gIC8qKlxuICAgKiBFeHByZXNzLXNwZWNpZmljIG1pZGRsZXdhcmUgb3B0aW9ucyBzdWNoIGFzIGNvbXByZXNzaW9uIGFuZCBKU09OIHBhcnNpbmcuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZXhwcmVzc1xuICAgKi9cbiAgZXhwcmVzcz86IHtcbiAgICAvKiogQ29udHJvbCB0aGUgd2F5IHJlc3BvbnNlcyBhcmUgY29tcHJlc3NlZCAqL1xuICAgIGNvbXByZXNzaW9uPzoge1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93blxuICAgIH1cbiAgICAvKiogQ29udHJvbCB0aGUgd2F5IEpTT04gaXMgcGFyc2VkICovXG4gICAganNvbj86IHtcbiAgICAgIC8qKiBEZWZhdWx0cyB0byAyTUIgICovXG4gICAgICBsaW1pdD86IG51bWJlclxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBleHByZXNzLm1pZGRsZXdhcmUgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIFBsZWFzZSBtaWdyYXRlIHRvIGV4cHJlc3MucG9zdE1pZGRsZXdhcmUuXG4gICAgICovXG4gICAgbWlkZGxld2FyZT86IGFueVtdXG4gICAgcG9zdE1pZGRsZXdhcmU/OiBhbnlbXVxuICAgIHByZU1pZGRsZXdhcmU/OiBhbnlbXVxuICB9XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL2dsb2JhbHMjZ2xvYmFsLWNvbmZpZ3NcbiAgICovXG4gIGdsb2JhbHM/OiBHbG9iYWxDb25maWdbXVxuICAvKipcbiAgICogTWFuYWdlIHRoZSBHcmFwaFFMIEFQSVxuICAgKlxuICAgKiBZb3UgY2FuIGFkZCB5b3VyIG93biBHcmFwaFFMIHF1ZXJpZXMgYW5kIG11dGF0aW9ucyB0byBQYXlsb2FkLCBtYWtpbmcgdXNlIG9mIGFsbCB0aGUgdHlwZXMgdGhhdCBQYXlsb2FkIGhhcyBkZWZpbmVkIGZvciB5b3UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FjY2Vzcy1jb250cm9sL292ZXJ2aWV3XG4gICAqL1xuICBncmFwaFFMPzoge1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgZGlzYWJsZVBsYXlncm91bmRJblByb2R1Y3Rpb24/OiBib29sZWFuXG4gICAgbWF4Q29tcGxleGl0eT86IG51bWJlclxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIG11dGF0aW9uc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAgICAgKi9cbiAgICBtdXRhdGlvbnM/OiBHcmFwaFFMRXh0ZW5zaW9uXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIGtleXMgdG8gY3VzdG9tIEdyYXBoUUwgcXVlcmllc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAgICAgKi9cbiAgICBxdWVyaWVzPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIHNjaGVtYU91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogVGFwIGludG8gUGF5bG9hZC13aWRlIGhvb2tzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9ob29rcy9vdmVydmlld1xuICAgKi9cbiAgaG9va3M/OiB7XG4gICAgYWZ0ZXJFcnJvcj86IEFmdGVyRXJyb3JIb29rXG4gIH1cbiAgLyoqXG4gICAqIENvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiB0aGUgYWRtaW4gaW50ZXJuYXRpb25hbGlzYXRpb24uXG4gICAqXG4gICAqIFNlZSBpMThuZXh0IG9wdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqIHtcbiAgICogICBmYWxsYmFja0xuZzogJ2VuJyxcbiAgICogICBkZWJ1ZzogZmFsc2UsXG4gICAqICAgc3VwcG9ydGVkTG5nczogT2JqZWN0LmtleXModHJhbnNsYXRpb25zKSxcbiAgICogICByZXNvdXJjZXM6IHRyYW5zbGF0aW9ucyxcbiAgICogfVxuICAgKi9cbiAgaTE4bj86IGkxOG5Jbml0T3B0aW9uc1xuICAvKiogQXV0b21hdGljYWxseSBpbmRleCBhbGwgc29ydGFibGUgdG9wLWxldmVsIGZpZWxkcyBpbiB0aGUgZGF0YWJhc2UgdG8gaW1wcm92ZSBzb3J0IHBlcmZvcm1hbmNlIGFuZCBhZGQgZGF0YWJhc2UgY29tcGF0aWJpbGl0eSBmb3IgQXp1cmUgQ29zbW9zIGFuZCBzaW1pbGFyLiAqL1xuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICAvKipcbiAgICogVHJhbnNsYXRlIHlvdXIgY29udGVudCB0byBkaWZmZXJlbnQgbGFuZ3VhZ2VzL2xvY2FsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIC8vIGRpc2FibGUgbG9jYWxpemF0aW9uXG4gICAqL1xuICBsb2NhbGl6YXRpb24/OiBMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZVxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dlZCBkZXB0aCB0byBiZSBwZXJtaXR0ZWQgYXBwbGljYXRpb24td2lkZS4gVGhpcyBzZXR0aW5nIGhlbHBzIHByZXZlbnQgYWdhaW5zdCBtYWxpY2lvdXMgcXVlcmllcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2NvbmNlcHRzI2RlcHRoXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICBtYXhEZXB0aD86IG51bWJlclxuICAvKiogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0cyBvbmx5IGFyZ3VtZW50LiAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIFBheWxvYWQgcGx1Z2lucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvcGx1Z2lucy9vdmVydmlld1xuICAgKi9cbiAgcGx1Z2lucz86IFBsdWdpbltdXG4gIC8qKlxuICAgKiBMaW1pdCBoZWF2eSB1c2FnZVxuICAgKlxuICAgKiBAZGVmYXVsdFxuICAgKiB7XG4gICAqICAgd2luZG93OiAxNSAqIDYwICogMTAwMCwgLy8gMTUgbWludXRlcyxcbiAgICogICBtYXg6IDUwMCxcbiAgICogfVxuICAgKi9cbiAgcmF0ZUxpbWl0Pzoge1xuICAgIG1heD86IG51bWJlclxuICAgIHNraXA/OiAocmVxOiBQYXlsb2FkUmVxdWVzdCkgPT4gYm9vbGVhblxuICAgIHRydXN0UHJveHk/OiBib29sZWFuXG4gICAgd2luZG93PzogbnVtYmVyXG4gIH1cbiAgLyoqIENvbnRyb2wgdGhlIHJvdXRpbmcgc3RydWN0dXJlIHRoYXQgUGF5bG9hZCBiaW5kcyBpdHNlbGYgdG8uICovXG4gIHJvdXRlcz86IHtcbiAgICAvKiogQGRlZmF1bHQgXCIvYWRtaW5cIiAqL1xuICAgIGFkbWluPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2FwaVwiICAqL1xuICAgIGFwaT86IHN0cmluZ1xuICAgIC8qKiBAZGVmYXVsdCBcIi9ncmFwaHFsXCIgICovXG4gICAgZ3JhcGhRTD86IHN0cmluZ1xuICAgIC8qKiBAZGVmYXVsdCBcIi9ncmFwaHFsLXBsYXlncm91bmRcIiAqL1xuICAgIGdyYXBoUUxQbGF5Z3JvdW5kPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgYWJzb2x1dGUgVVJMIG9mIHlvdXIgYXBwIGluY2x1ZGluZyB0aGUgcHJvdG9jb2wsIGZvciBleGFtcGxlIGBodHRwczovL2V4YW1wbGUub3JnYC5cbiAgICogTm8gcGF0aHMgYWxsb3dlZCwgb25seSBwcm90b2NvbCwgZG9tYWluIGFuZCAob3B0aW9uYWxseSkgcG9ydC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9vdmVydmlldyNvcHRpb25zXG4gICAqL1xuICBzZXJ2ZXJVUkw/OiBzdHJpbmdcbiAgLyoqIFNlbmQgYW5vbnltb3VzIHRlbGVtZXRyeSBkYXRhIGFib3V0IGdlbmVyYWwgdXNhZ2UuICovXG4gIHRlbGVtZXRyeT86IGJvb2xlYW5cbiAgLyoqIENvbnRyb2wgaG93IHR5cGVzY3JpcHQgaW50ZXJmYWNlcyBhcmUgZ2VuZXJhdGVkIGZyb20geW91ciBjb2xsZWN0aW9ucy4gKi9cbiAgdHlwZXNjcmlwdD86IHtcbiAgICAvKiogRGlzYWJsZSBkZWNsYXJlIGJsb2NrIGluIGdlbmVyYXRlZCB0eXBlcyBmaWxlICovXG4gICAgZGVjbGFyZT86IGZhbHNlXG4gICAgLyoqIEZpbGVuYW1lIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgdHlwZXMgdG8gKi9cbiAgICBvdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSB0aGUgaGFuZGxpbmcgb2YgaW5jb21pbmcgZmlsZSB1cGxvYWRzIGZvciBjb2xsZWN0aW9ucyB0aGF0IGhhdmUgdXBsb2FkcyBlbmFibGVkLlxuICAgKi9cbiAgdXBsb2FkPzogRXhwcmVzc0ZpbGVVcGxvYWRPcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFNhbml0aXplZENvbmZpZyA9IE9taXQ8XG4gIERlZXBSZXF1aXJlZDxDb25maWc+LFxuICAnY29sbGVjdGlvbnMnIHwgJ2VuZHBvaW50JyB8ICdnbG9iYWxzJyB8ICdsb2NhbGl6YXRpb24nXG4+ICYge1xuICBjb2xsZWN0aW9uczogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1tdXG4gIGVuZHBvaW50czogRW5kcG9pbnRbXVxuICBnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXVxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlXG4gIHBhdGhzOiB7XG4gICAgY29uZmlnOiBzdHJpbmdcbiAgICBjb25maWdEaXI6IHN0cmluZ1xuICAgIHJhd0NvbmZpZzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImhhc1RyYW5zcG9ydE9wdGlvbnMiLCJlbWFpbENvbmZpZyIsInRyYW5zcG9ydCIsInVuZGVmaW5lZCIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBK0ZnQkEsWUFBWTtlQUFaQTs7SUFRQUMsbUJBQW1CO2VBQW5CQTs7O0FBUlQsU0FBU0QsYUFBYUUsV0FBeUI7SUFDcEQsT0FBTyxBQUFDQSxZQUErQkMsU0FBUyxLQUFLQztBQUN2RDtBQU1PLFNBQVNILG9CQUNkQyxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDRyxnQkFBZ0IsS0FBS0Q7QUFDckUifQ==
@@ -1,4 +1,5 @@
1
1
  export { useStepNav } from '../../admin/components/elements/StepNav';
2
+ export { useTableColumns } from '../../admin/components/elements/TableColumns';
2
3
  export { default as useDebounce } from '../../admin/hooks/useDebounce';
3
4
  export { useDebouncedCallback } from '../../admin/hooks/useDebouncedCallback';
4
5
  export { useDelay } from '../../admin/hooks/useDelay';
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/exports/components/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/exports/components/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
@@ -12,6 +12,9 @@ _export(exports, {
12
12
  useStepNav: function() {
13
13
  return _StepNav.useStepNav;
14
14
  },
15
+ useTableColumns: function() {
16
+ return _TableColumns.useTableColumns;
17
+ },
15
18
  useDebounce: function() {
16
19
  return _useDebounce.default;
17
20
  },
@@ -50,6 +53,7 @@ _export(exports, {
50
53
  }
51
54
  });
52
55
  const _StepNav = require("../../admin/components/elements/StepNav");
56
+ const _TableColumns = require("../../admin/components/elements/TableColumns");
53
57
  const _useDebounce = /*#__PURE__*/ _interop_require_default(require("../../admin/hooks/useDebounce"));
54
58
  const _useDebouncedCallback = require("../../admin/hooks/useDebouncedCallback");
55
59
  const _useDelay = require("../../admin/hooks/useDelay");
@@ -106,4 +110,4 @@ function _interop_require_wildcard(obj, nodeInterop) {
106
110
  return newObj;
107
111
  }
108
112
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvaG9va3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgdXNlU3RlcE5hdiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlcE5hdidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlRGVib3VuY2UgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VEZWJvdW5jZSdcbmV4cG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snXG5leHBvcnQgeyB1c2VEZWxheSB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZURlbGF5J1xuZXhwb3J0IHsgdXNlRGVsYXllZFJlbmRlciB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZURlbGF5ZWRSZW5kZXInXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZUhvdGtleSB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZUhvdGtleSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlSW50ZXJzZWN0IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlSW50ZXJzZWN0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VNb3VudEVmZmVjdCB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZU1vdW50RWZmZWN0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VQYXlsb2FkQVBJIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlVGhyb3R0bGVkRWZmZWN0IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlVGhyb3R0bGVkRWZmZWN0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUaHVtYm5haWwgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VUaHVtYm5haWwnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZVRpdGxlLCBmb3JtYXRVc2VBc1RpdGxlIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlVGl0bGUnXG4iXSwibmFtZXMiOlsidXNlU3RlcE5hdiIsInVzZURlYm91bmNlIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJ1c2VEZWxheSIsInVzZURlbGF5ZWRSZW5kZXIiLCJ1c2VIb3RrZXkiLCJ1c2VJbnRlcnNlY3QiLCJ1c2VNb3VudEVmZmVjdCIsInVzZVBheWxvYWRBUEkiLCJ1c2VUaHJvdHRsZWRFZmZlY3QiLCJ1c2VUaHVtYm5haWwiLCJ1c2VUaXRsZSIsImZvcm1hdFVzZUFzVGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQVNBLFVBQVU7ZUFBVkEsbUJBQVU7O0lBQ0NDLFdBQVc7ZUFBWEEsb0JBQVc7O0lBQ3RCQyxvQkFBb0I7ZUFBcEJBLDBDQUFvQjs7SUFDcEJDLFFBQVE7ZUFBUkEsa0JBQVE7O0lBQ1JDLGdCQUFnQjtlQUFoQkEsa0NBQWdCOztJQUNMQyxTQUFTO2VBQVRBLGtCQUFTOztJQUNUQyxZQUFZO2VBQVpBLHFCQUFZOztJQUNaQyxjQUFjO2VBQWRBLHVCQUFjOztJQUNkQyxhQUFhO2VBQWJBLHNCQUFhOztJQUNiQyxrQkFBa0I7ZUFBbEJBLDJCQUFrQjs7SUFDbEJDLFlBQVk7ZUFBWkEscUJBQVk7O0lBQ1pDLFFBQVE7ZUFBUkEsaUJBQVE7O0lBQUVDLGdCQUFnQjtlQUFoQkEsMEJBQWdCOzs7eUJBWG5CO29FQUNZO3NDQUNGOzBCQUNaO2tDQUNRO2tFQUNJO3FFQUNHO3VFQUNFO3NFQUNEOzJFQUNLO3FFQUNOO2tFQUNjIn0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvaG9va3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgdXNlU3RlcE5hdiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlcE5hdidcbmV4cG9ydCB7IHVzZVRhYmxlQ29sdW1ucyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvVGFibGVDb2x1bW5zJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VEZWJvdW5jZSB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZURlYm91bmNlJ1xuZXhwb3J0IHsgdXNlRGVib3VuY2VkQ2FsbGJhY2sgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VEZWJvdW5jZWRDYWxsYmFjaydcbmV4cG9ydCB7IHVzZURlbGF5IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlRGVsYXknXG5leHBvcnQgeyB1c2VEZWxheWVkUmVuZGVyIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlRGVsYXllZFJlbmRlcidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlSG90a2V5IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlSG90a2V5J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VJbnRlcnNlY3QgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VJbnRlcnNlY3QnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZU1vdW50RWZmZWN0IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlTW91bnRFZmZlY3QnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZVBheWxvYWRBUEkgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VQYXlsb2FkQVBJJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUaHJvdHRsZWRFZmZlY3QgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZVRodW1ibmFpbCB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZVRodW1ibmFpbCdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlVGl0bGUsIGZvcm1hdFVzZUFzVGl0bGUgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VUaXRsZSdcbiJdLCJuYW1lcyI6WyJ1c2VTdGVwTmF2IiwidXNlVGFibGVDb2x1bW5zIiwidXNlRGVib3VuY2UiLCJ1c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZURlbGF5IiwidXNlRGVsYXllZFJlbmRlciIsInVzZUhvdGtleSIsInVzZUludGVyc2VjdCIsInVzZU1vdW50RWZmZWN0IiwidXNlUGF5bG9hZEFQSSIsInVzZVRocm90dGxlZEVmZmVjdCIsInVzZVRodW1ibmFpbCIsInVzZVRpdGxlIiwiZm9ybWF0VXNlQXNUaXRsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBU0EsVUFBVTtlQUFWQSxtQkFBVTs7SUFDVkMsZUFBZTtlQUFmQSw2QkFBZTs7SUFDSkMsV0FBVztlQUFYQSxvQkFBVzs7SUFDdEJDLG9CQUFvQjtlQUFwQkEsMENBQW9COztJQUNwQkMsUUFBUTtlQUFSQSxrQkFBUTs7SUFDUkMsZ0JBQWdCO2VBQWhCQSxrQ0FBZ0I7O0lBQ0xDLFNBQVM7ZUFBVEEsa0JBQVM7O0lBQ1RDLFlBQVk7ZUFBWkEscUJBQVk7O0lBQ1pDLGNBQWM7ZUFBZEEsdUJBQWM7O0lBQ2RDLGFBQWE7ZUFBYkEsc0JBQWE7O0lBQ2JDLGtCQUFrQjtlQUFsQkEsMkJBQWtCOztJQUNsQkMsWUFBWTtlQUFaQSxxQkFBWTs7SUFDWkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFBRUMsZ0JBQWdCO2VBQWhCQSwwQkFBZ0I7Ozt5QkFabkI7OEJBQ0s7b0VBQ087c0NBQ0Y7MEJBQ1o7a0NBQ1E7a0VBQ0k7cUVBQ0c7dUVBQ0U7c0VBQ0Q7MkVBQ0s7cUVBQ047a0VBQ2MifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/fields/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,eAAO,MAAM,wBAAwB,uBAOvB,CAAA;AAEd,eAAO,MAAM,eAAe,uBAe1B,CAAA;AAEF,eAAO,MAAM,SAAS,uBA8BV,CAAA;AAEZ,eAAO,MAAM,OAAO,uBAKlB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAaf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAcjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAWnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAUhB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,IAAI,uBAIf,CAAA;AAEF,eAAO,MAAM,MAAM,uBA0BjB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAuBhB,CAAA;AAEF,eAAO,MAAM,GAAG,uBAId,CAAA;AAEF,eAAO,MAAM,WAAW,uBAKtB,CAAA;AAeF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,KAAK,uBAShB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAyBhB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAOjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAInB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAIhB,CAAA;AAEF,eAAO,MAAM,YAAY,uBAsBvB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAqCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAenB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAkBf,CAAA;AAEF,eAAO,MAAM,EAAE,uBAoBb,CAAA;AAEF,QAAA,MAAM,WAAW,6BAyBH,CAAA;AAEd,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/fields/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,eAAO,MAAM,wBAAwB,uBAOvB,CAAA;AAEd,eAAO,MAAM,eAAe,uBAe1B,CAAA;AAEF,eAAO,MAAM,SAAS,uBA8BV,CAAA;AAEZ,eAAO,MAAM,OAAO,uBAKlB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAmBf,CAAA;AAEF,eAAO,MAAM,MAAM,uBA0BjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAiBnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAgBhB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,IAAI,uBAUf,CAAA;AAEF,eAAO,MAAM,MAAM,uBA8BjB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA2BhB,CAAA;AAEF,eAAO,MAAM,GAAG,uBAId,CAAA;AAEF,eAAO,MAAM,WAAW,uBAKtB,CAAA;AAeF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,KAAK,uBAShB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAyBhB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAajB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAYnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAYhB,CAAA;AAEF,eAAO,MAAM,YAAY,uBA0BvB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAqCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAenB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAwBf,CAAA;AAEF,eAAO,MAAM,EAAE,uBAoBb,CAAA;AAEF,QAAA,MAAM,WAAW,6BAyBH,CAAA;AAEd,eAAe,WAAW,CAAA"}
@@ -154,7 +154,13 @@ const text = baseField.keys({
154
154
  placeholder: _joi.default.alternatives().try(_joi.default.object().pattern(_joi.default.string(), [
155
155
  _joi.default.string()
156
156
  ]), _joi.default.string()),
157
- rtl: _joi.default.boolean()
157
+ rtl: _joi.default.boolean(),
158
+ components: baseAdminComponentFields.keys({
159
+ Label: _componentSchema.componentSchema,
160
+ Error: _componentSchema.componentSchema,
161
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
162
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
163
+ })
158
164
  }),
159
165
  defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
160
166
  maxLength: _joi.default.number(),
@@ -166,7 +172,19 @@ const number = baseField.keys({
166
172
  admin: baseAdminFields.keys({
167
173
  autoComplete: _joi.default.string(),
168
174
  placeholder: _joi.default.string(),
169
- step: _joi.default.number()
175
+ step: _joi.default.number(),
176
+ components: baseAdminComponentFields.keys({
177
+ Label: _componentSchema.componentSchema,
178
+ Error: _componentSchema.componentSchema,
179
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema).when('hasMany', {
180
+ not: true,
181
+ otherwise: _joi.default.forbidden()
182
+ }),
183
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema).when('hasMany', {
184
+ not: true,
185
+ otherwise: _joi.default.forbidden()
186
+ })
187
+ })
170
188
  }),
171
189
  defaultValue: _joi.default.alternatives().try(_joi.default.number(), _joi.default.func()),
172
190
  hasMany: _joi.default.boolean().default(false),
@@ -187,7 +205,13 @@ const textarea = baseField.keys({
187
205
  admin: baseAdminFields.keys({
188
206
  placeholder: _joi.default.string(),
189
207
  rows: _joi.default.number(),
190
- rtl: _joi.default.boolean()
208
+ rtl: _joi.default.boolean(),
209
+ components: baseAdminComponentFields.keys({
210
+ Label: _componentSchema.componentSchema,
211
+ Error: _componentSchema.componentSchema,
212
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
213
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
214
+ })
191
215
  }),
192
216
  defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
193
217
  maxLength: _joi.default.number(),
@@ -198,7 +222,13 @@ const email = baseField.keys({
198
222
  name: _joi.default.string().required(),
199
223
  admin: baseAdminFields.keys({
200
224
  autoComplete: _joi.default.string(),
201
- placeholder: _joi.default.string()
225
+ placeholder: _joi.default.string(),
226
+ components: baseAdminComponentFields.keys({
227
+ Label: _componentSchema.componentSchema,
228
+ Error: _componentSchema.componentSchema,
229
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
230
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
231
+ })
202
232
  }),
203
233
  defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
204
234
  maxLength: _joi.default.number(),
@@ -209,13 +239,23 @@ const code = baseField.keys({
209
239
  name: _joi.default.string().required(),
210
240
  admin: baseAdminFields.keys({
211
241
  editorOptions: _joi.default.object().unknown(),
212
- language: _joi.default.string()
242
+ language: _joi.default.string(),
243
+ components: baseAdminComponentFields.keys({
244
+ Label: _componentSchema.componentSchema,
245
+ Error: _componentSchema.componentSchema
246
+ })
213
247
  }),
214
248
  defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
215
249
  type: _joi.default.string().valid('code').required()
216
250
  });
217
251
  const json = baseField.keys({
218
252
  name: _joi.default.string().required(),
253
+ admin: baseAdminFields.keys({
254
+ components: baseAdminComponentFields.keys({
255
+ Label: _componentSchema.componentSchema,
256
+ Error: _componentSchema.componentSchema
257
+ })
258
+ }),
219
259
  defaultValue: _joi.default.alternatives().try(_joi.default.array(), _joi.default.object()),
220
260
  type: _joi.default.string().valid('json').required()
221
261
  });
@@ -223,7 +263,11 @@ const select = baseField.keys({
223
263
  name: _joi.default.string().required(),
224
264
  admin: baseAdminFields.keys({
225
265
  isClearable: _joi.default.boolean().default(false),
226
- isSortable: _joi.default.boolean().default(false)
266
+ isSortable: _joi.default.boolean().default(false),
267
+ components: baseAdminComponentFields.keys({
268
+ Label: _componentSchema.componentSchema,
269
+ Error: _componentSchema.componentSchema
270
+ })
227
271
  }),
228
272
  defaultValue: _joi.default.alternatives().try(_joi.default.string().allow(''), _joi.default.array().items(_joi.default.string().allow('')), _joi.default.func()),
229
273
  hasMany: _joi.default.boolean().default(false),
@@ -238,7 +282,11 @@ const select = baseField.keys({
238
282
  const radio = baseField.keys({
239
283
  name: _joi.default.string().required(),
240
284
  admin: baseAdminFields.keys({
241
- layout: _joi.default.string().valid('vertical', 'horizontal')
285
+ layout: _joi.default.string().valid('vertical', 'horizontal'),
286
+ components: baseAdminComponentFields.keys({
287
+ Label: _componentSchema.componentSchema,
288
+ Error: _componentSchema.componentSchema
289
+ })
242
290
  }),
243
291
  defaultValue: _joi.default.alternatives().try(_joi.default.string().allow(''), _joi.default.func()),
244
292
  options: _joi.default.array().min(1).items(_joi.default.alternatives().try(_joi.default.string(), _joi.default.object({
@@ -323,6 +371,12 @@ const array = baseField.keys({
323
371
  });
324
372
  const upload = baseField.keys({
325
373
  name: _joi.default.string().required(),
374
+ admin: baseAdminFields.keys({
375
+ components: baseAdminComponentFields.keys({
376
+ Label: _componentSchema.componentSchema,
377
+ Error: _componentSchema.componentSchema
378
+ })
379
+ }),
326
380
  defaultValue: _joi.default.alternatives().try(_joi.default.object(), _joi.default.func()),
327
381
  filterOptions: _joi.default.alternatives().try(_joi.default.object(), _joi.default.func()),
328
382
  maxDepth: _joi.default.number(),
@@ -331,11 +385,27 @@ const upload = baseField.keys({
331
385
  });
332
386
  const checkbox = baseField.keys({
333
387
  name: _joi.default.string().required(),
388
+ admin: baseAdminFields.keys({
389
+ components: baseAdminComponentFields.keys({
390
+ Label: _componentSchema.componentSchema,
391
+ Error: _componentSchema.componentSchema,
392
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
393
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
394
+ })
395
+ }),
334
396
  defaultValue: _joi.default.alternatives().try(_joi.default.boolean(), _joi.default.func()),
335
397
  type: _joi.default.string().valid('checkbox').required()
336
398
  });
337
399
  const point = baseField.keys({
338
400
  name: _joi.default.string().required(),
401
+ admin: baseAdminFields.keys({
402
+ components: baseAdminComponentFields.keys({
403
+ Label: _componentSchema.componentSchema,
404
+ Error: _componentSchema.componentSchema,
405
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
406
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
407
+ })
408
+ }),
339
409
  defaultValue: _joi.default.alternatives().try(_joi.default.array().items(_joi.default.number()).max(2).min(2), _joi.default.func()),
340
410
  type: _joi.default.string().valid('point').required()
341
411
  });
@@ -343,7 +413,11 @@ const relationship = baseField.keys({
343
413
  name: _joi.default.string().required(),
344
414
  admin: baseAdminFields.keys({
345
415
  allowCreate: _joi.default.boolean().default(true),
346
- isSortable: _joi.default.boolean().default(false)
416
+ isSortable: _joi.default.boolean().default(false),
417
+ components: baseAdminComponentFields.keys({
418
+ Label: _componentSchema.componentSchema,
419
+ Error: _componentSchema.componentSchema
420
+ })
347
421
  }),
348
422
  defaultValue: _joi.default.alternatives().try(_joi.default.func()),
349
423
  filterOptions: _joi.default.alternatives().try(_joi.default.object(), _joi.default.func()),
@@ -432,7 +506,13 @@ const date = baseField.keys({
432
506
  timeFormat: _joi.default.string(),
433
507
  timeIntervals: _joi.default.number()
434
508
  }),
435
- placeholder: _joi.default.string()
509
+ placeholder: _joi.default.string(),
510
+ components: baseAdminComponentFields.keys({
511
+ Label: _componentSchema.componentSchema,
512
+ Error: _componentSchema.componentSchema,
513
+ BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
514
+ AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
515
+ })
436
516
  }),
437
517
  defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
438
518
  type: _joi.default.string().valid('date').required()
@@ -457,4 +537,4 @@ const ui = _joi.default.object().keys({
457
537
  const fieldSchema = _joi.default.alternatives().try(text, number, textarea, email, code, json, select, group, array, row, collapsible, tabs, radio, relationship, checkbox, upload, richText, blocks, date, point, ui).id('field');
458
538
  const _default = fieldSchema;
459
539
 
460
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3NjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgam9pIGZyb20gJ2pvaSdcblxuaW1wb3J0IHsgY29tcG9uZW50U2NoZW1hIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NoYXJlZC9jb21wb25lbnRTY2hlbWEnXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICBGaWx0ZXI6IGNvbXBvbmVudFNjaGVtYSxcbiAgfSlcbiAgLmRlZmF1bHQoe30pXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5GaWVsZHMgPSBqb2kub2JqZWN0KCkua2V5cyh7XG4gIGNsYXNzTmFtZTogam9pLnN0cmluZygpLFxuICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMsXG4gIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgZGVzY3JpcHRpb246IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZGlzYWJsZUJ1bGtFZGl0OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBkaXNhYmxlZDogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBpbml0Q29sbGFwc2VkOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBwb3NpdGlvbjogam9pLnN0cmluZygpLnZhbGlkKCdzaWRlYmFyJyksXG4gIHJlYWRPbmx5OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBzdHlsZTogam9pLm9iamVjdCgpLnVua25vd24oKSxcbiAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBiYXNlRmllbGQgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBhY2Nlc3M6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGNyZWF0ZTogam9pLmZ1bmMoKSxcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGhvb2tzOiBqb2lcbiAgICAgIC5vYmplY3QoKVxuICAgICAgLmtleXMoe1xuICAgICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGFmdGVyUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZUNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZVZhbGlkYXRlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKS5kZWZhdWx0KFtdKSxcbiAgICAgIH0pXG4gICAgICAuZGVmYXVsdCgpLFxuICAgIGluZGV4OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGxhYmVsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgam9pLnN0cmluZygpLCBqb2kudmFsaWQoZmFsc2UpKSxcbiAgICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgcmVxdWlyZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSkuZGVmYXVsdChmYWxzZSksXG4gICAgdW5pcXVlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLFxuICB9KVxuICAuZGVmYXVsdCgpXG5cbmV4cG9ydCBjb25zdCBpZEZpZWxkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2lkJyksXG4gIGxvY2FsaXplZDogam9pLmludmFsaWQodHJ1ZSksXG4gIHJlcXVpcmVkOiBqb2kubm90KGZhbHNlLCAwKS5kZWZhdWx0KHRydWUpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3RleHQnLCAnbnVtYmVyJyksXG59KVxuXG5leHBvcnQgY29uc3QgdGV4dCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgcGxhY2Vob2xkZXI6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pLCBqb2kuc3RyaW5nKCkpLFxuICAgIHJ0bDogam9pLmJvb2xlYW4oKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICBtYXhMZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgbWluTGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGV4dCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgbnVtYmVyID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBhdXRvQ29tcGxldGU6IGpvaS5zdHJpbmcoKSxcbiAgICBwbGFjZWhvbGRlcjogam9pLnN0cmluZygpLFxuICAgIHN0ZXA6IGpvaS5udW1iZXIoKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kubnVtYmVyKCksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBtYXg6IGpvaS5udW1iZXIoKSxcbiAgbWF4Um93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIG1pbjogam9pLm51bWJlcigpLFxuICBtaW5Sb3dzOiBqb2kubnVtYmVyKCkud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdudW1iZXInKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHRleHRhcmVhID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBwbGFjZWhvbGRlcjogam9pLnN0cmluZygpLFxuICAgIHJvd3M6IGpvaS5udW1iZXIoKSxcbiAgICBydGw6IGpvaS5ib29sZWFuKCksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgbWF4TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIG1pbkxlbmd0aDogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3RleHRhcmVhJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBlbWFpbCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICBtYXhMZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgbWluTGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnZW1haWwnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGNvZGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGVkaXRvck9wdGlvbnM6IGpvaS5vYmplY3QoKS51bmtub3duKCksIC8vIEVkaXRvclsnb3B0aW9ucyddIEBtb25hY28tZWRpdG9yL3JlYWN0XG4gICAgbGFuZ3VhZ2U6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2NvZGUnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGpzb24gPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmFycmF5KCksIGpvaS5vYmplY3QoKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnanNvbicpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBpc0NsZWFyYWJsZTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgICBpc1NvcnRhYmxlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2lcbiAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAudHJ5KGpvaS5zdHJpbmcoKS5hbGxvdygnJyksIGpvaS5hcnJheSgpLml0ZW1zKGpvaS5zdHJpbmcoKS5hbGxvdygnJykpLCBqb2kuZnVuYygpKSxcbiAgaGFzTWFueTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgb3B0aW9uczogam9pXG4gICAgLmFycmF5KClcbiAgICAubWluKDEpXG4gICAgLml0ZW1zKFxuICAgICAgam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgam9pLnN0cmluZygpLFxuICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICBsYWJlbDogam9pXG4gICAgICAgICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgICAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgICAgICAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmFsbG93KCcnKSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdzZWxlY3QnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHJhZGlvID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBsYXlvdXQ6IGpvaS5zdHJpbmcoKS52YWxpZCgndmVydGljYWwnLCAnaG9yaXpvbnRhbCcpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKS5hbGxvdygnJyksIGpvaS5mdW5jKCkpLFxuICBvcHRpb25zOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5taW4oMSlcbiAgICAuaXRlbXMoXG4gICAgICBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKVxuICAgICAgICAgICAgLnJlcXVpcmVkKCksXG4gICAgICAgICAgdmFsdWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmFsbG93KCcnKSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIClcbiAgICAucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyYWRpbycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3Qgcm93ID0gYmFzZUZpZWxkLmtleXMoe1xuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmRlZmF1bHQoKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3JvdycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgY29sbGFwc2libGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMuZGVmYXVsdCgpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIGxhYmVsOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdjb2xsYXBzaWJsZScpLnJlcXVpcmVkKCksXG59KVxuXG5jb25zdCB0YWIgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS53aGVuKCdsb2NhbGl6ZWQnLCB7IGlzOiBqb2kuZXhpc3QoKSwgdGhlbjogam9pLnJlcXVpcmVkKCkgfSksXG4gIGRlc2NyaXB0aW9uOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLnJlcXVpcmVkKCksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKS53aGVuKCduYW1lJywgeyBub3Q6IGpvaS5leGlzdCgpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIGxhYmVsOiBqb2lcbiAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpXG4gICAgLndoZW4oJ25hbWUnLCB7IGlzOiBqb2kubm90KCksIHRoZW46IGpvaS5yZXF1aXJlZCgpIH0pLFxuICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCksXG4gIHNhdmVUb0pXVDogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYm9vbGVhbigpLCBqb2kuc3RyaW5nKCkpLFxufSlcblxuZXhwb3J0IGNvbnN0IHRhYnMgPSBiYXNlRmllbGQua2V5cyh7XG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgZGVzY3JpcHRpb246IGpvaS5mb3JiaWRkZW4oKSxcbiAgfSksXG4gIGZpZWxkczogam9pLmZvcmJpZGRlbigpLFxuICBsb2NhbGl6ZWQ6IGpvaS5mb3JiaWRkZW4oKSxcbiAgdGFiczogam9pLmFycmF5KCkuaXRlbXModGFiKS5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3RhYnMnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGdyb3VwID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBoaWRlR3V0dGVyOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLFxuICBpbnRlcmZhY2VOYW1lOiBqb2kuc3RyaW5nKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnZ3JvdXAnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGFycmF5ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkc1xuICAgIC5rZXlzKHtcbiAgICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkc1xuICAgICAgICAua2V5cyh7XG4gICAgICAgICAgUm93TGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSlcbiAgICAgICAgLmRlZmF1bHQoe30pLFxuICAgIH0pXG4gICAgLmRlZmF1bHQoe30pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmFycmF5KCkuaXRlbXMoam9pLm9iamVjdCgpKSwgam9pLmZ1bmMoKSksXG4gIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKS5yZXF1aXJlZCgpLFxuICBpbnRlcmZhY2VOYW1lOiBqb2kuc3RyaW5nKCksXG4gIGxhYmVsczogam9pLm9iamVjdCh7XG4gICAgcGx1cmFsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICBzaW5ndWxhcjogam9pXG4gICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gIH0pLFxuICBtYXhSb3dzOiBqb2kubnVtYmVyKCksXG4gIG1pblJvd3M6IGpvaS5udW1iZXIoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdhcnJheScpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgdXBsb2FkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGZpbHRlck9wdGlvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKSxcbiAgcmVsYXRpb25Ubzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndXBsb2FkJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjaGVja2JveCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYm9vbGVhbigpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdjaGVja2JveCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcG9pbnQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmFycmF5KCkuaXRlbXMoam9pLm51bWJlcigpKS5tYXgoMikubWluKDIpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdwb2ludCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBhbGxvd0NyZWF0ZTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICAgIGlzU29ydGFibGU6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmZ1bmMoKSksXG4gIGZpbHRlck9wdGlvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgaGFzTWFueTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgbWF4OiBqb2lcbiAgICAubnVtYmVyKClcbiAgICAud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KVxuICAgIC53YXJuaW5nKCdkZXByZWNhdGVkJywgeyBtZXNzYWdlOiAnVXNlIG1heFJvd3MgaW5zdGVhZC4nIH0pLFxuICBtYXhEZXB0aDogam9pLm51bWJlcigpLFxuICBtYXhSb3dzOiBqb2kubnVtYmVyKCkud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgbWluOiBqb2lcbiAgICAubnVtYmVyKClcbiAgICAud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KVxuICAgIC53YXJuaW5nKCdkZXByZWNhdGVkJywgeyBtZXNzYWdlOiAnVXNlIG1pblJvd3MgaW5zdGVhZC4nIH0pLFxuICBtaW5Sb3dzOiBqb2kubnVtYmVyKCkud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgcmVsYXRpb25Ubzogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSwgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncmVsYXRpb25zaGlwJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBibG9ja3MgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBibG9ja3M6IGpvaVxuICAgIC5hcnJheSgpXG4gICAgLml0ZW1zKFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKSxcbiAgICAgICAgZ3JhcGhRTDogam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICAgIHNpbmd1bGFyTmFtZTogam9pLnN0cmluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgaW1hZ2VBbHRUZXh0OiBqb2kuc3RyaW5nKCksXG4gICAgICAgIGltYWdlVVJMOiBqb2kuc3RyaW5nKCksXG4gICAgICAgIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBwbHVyYWw6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICAgICAgfSksXG4gICAgICAgIHNsdWc6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgfSksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmFycmF5KCkuaXRlbXMoam9pLm9iamVjdCgpKSwgam9pLmZ1bmMoKSksXG4gIGxhYmVsczogam9pLm9iamVjdCh7XG4gICAgcGx1cmFsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICBzaW5ndWxhcjogam9pXG4gICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gIH0pLFxuICBtYXhSb3dzOiBqb2kubnVtYmVyKCksXG4gIG1pblJvd3M6IGpvaS5udW1iZXIoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdibG9ja3MnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHJpY2hUZXh0ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpLCBqb2kub2JqZWN0KCkpLFxuICBlZGl0b3I6IGpvaVxuICAgIC5vYmplY3QoKVxuICAgIC5rZXlzKHtcbiAgICAgIENlbGxDb21wb25lbnQ6IGNvbXBvbmVudFNjaGVtYS5yZXF1aXJlZCgpLFxuICAgICAgRmllbGRDb21wb25lbnQ6IGNvbXBvbmVudFNjaGVtYS5yZXF1aXJlZCgpLFxuICAgICAgYWZ0ZXJSZWFkUHJvbWlzZTogam9pLmZ1bmMoKS5vcHRpb25hbCgpLFxuICAgICAgcG9wdWxhdGlvblByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLnJlcXVpcmVkKCksXG4gICAgfSlcbiAgICAudW5rbm93bigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3JpY2hUZXh0JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBkYXRlID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBkYXRlOiBqb2kub2JqZWN0KHtcbiAgICAgIGRpc3BsYXlGb3JtYXQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgIG1heERhdGU6IGpvaS5kYXRlKCksXG4gICAgICBtYXhUaW1lOiBqb2kuZGF0ZSgpLFxuICAgICAgbWluRGF0ZTogam9pLmRhdGUoKSxcbiAgICAgIG1pblRpbWU6IGpvaS5kYXRlKCksXG4gICAgICBtb250aHNUb1Nob3c6IGpvaS5udW1iZXIoKSxcbiAgICAgIHBpY2tlckFwcGVhcmFuY2U6IGpvaS5zdHJpbmcoKSxcbiAgICAgIHRpbWVGb3JtYXQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgIHRpbWVJbnRlcnZhbHM6IGpvaS5udW1iZXIoKSxcbiAgICB9KSxcbiAgICBwbGFjZWhvbGRlcjogam9pLnN0cmluZygpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnZGF0ZScpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgdWkgPSBqb2kub2JqZWN0KCkua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLmtleXMoe1xuICAgICAgY29tcG9uZW50czogam9pXG4gICAgICAgIC5vYmplY3QoKVxuICAgICAgICAua2V5cyh7XG4gICAgICAgICAgQ2VsbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgIEZpZWxkOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgIH0pXG4gICAgICAgIC5kZWZhdWx0KHt9KSxcbiAgICAgIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgICAgIHBvc2l0aW9uOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3NpZGViYXInKSxcbiAgICAgIHdpZHRoOiBqb2kuc3RyaW5nKCksXG4gICAgfSlcbiAgICAuZGVmYXVsdCgpLFxuICBjdXN0b206IGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgam9pLmFueSgpKSxcbiAgbGFiZWw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndWknKS5yZXF1aXJlZCgpLFxufSlcblxuY29uc3QgZmllbGRTY2hlbWEgPSBqb2lcbiAgLmFsdGVybmF0aXZlcygpXG4gIC50cnkoXG4gICAgdGV4dCxcbiAgICBudW1iZXIsXG4gICAgdGV4dGFyZWEsXG4gICAgZW1haWwsXG4gICAgY29kZSxcbiAgICBqc29uLFxuICAgIHNlbGVjdCxcbiAgICBncm91cCxcbiAgICBhcnJheSxcbiAgICByb3csXG4gICAgY29sbGFwc2libGUsXG4gICAgdGFicyxcbiAgICByYWRpbyxcbiAgICByZWxhdGlvbnNoaXAsXG4gICAgY2hlY2tib3gsXG4gICAgdXBsb2FkLFxuICAgIHJpY2hUZXh0LFxuICAgIGJsb2NrcyxcbiAgICBkYXRlLFxuICAgIHBvaW50LFxuICAgIHVpLFxuICApXG4gIC5pZCgnZmllbGQnKVxuXG5leHBvcnQgZGVmYXVsdCBmaWVsZFNjaGVtYVxuIl0sIm5hbWVzIjpbImJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcyIsImJhc2VBZG1pbkZpZWxkcyIsImJhc2VGaWVsZCIsImlkRmllbGQiLCJ0ZXh0IiwibnVtYmVyIiwidGV4dGFyZWEiLCJlbWFpbCIsImNvZGUiLCJqc29uIiwic2VsZWN0IiwicmFkaW8iLCJyb3ciLCJjb2xsYXBzaWJsZSIsInRhYnMiLCJncm91cCIsImFycmF5IiwidXBsb2FkIiwiY2hlY2tib3giLCJwb2ludCIsInJlbGF0aW9uc2hpcCIsImJsb2NrcyIsInJpY2hUZXh0IiwiZGF0ZSIsInVpIiwiam9pIiwib2JqZWN0Iiwia2V5cyIsIkNlbGwiLCJjb21wb25lbnRTY2hlbWEiLCJGaWVsZCIsIkZpbHRlciIsImRlZmF1bHQiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJjb21wb25lbnRzIiwiY29uZGl0aW9uIiwiZnVuYyIsImRlc2NyaXB0aW9uIiwiYWx0ZXJuYXRpdmVzIiwidHJ5IiwicGF0dGVybiIsImRpc2FibGVCdWxrRWRpdCIsImJvb2xlYW4iLCJkaXNhYmxlZCIsImhpZGRlbiIsImluaXRDb2xsYXBzZWQiLCJwb3NpdGlvbiIsInZhbGlkIiwicmVhZE9ubHkiLCJzdHlsZSIsInVua25vd24iLCJ3aWR0aCIsImFjY2VzcyIsImNyZWF0ZSIsInJlYWQiLCJ1cGRhdGUiLCJhZG1pbiIsImN1c3RvbSIsImFueSIsImhvb2tzIiwiYWZ0ZXJDaGFuZ2UiLCJpdGVtcyIsImFmdGVyUmVhZCIsImJlZm9yZUNoYW5nZSIsImJlZm9yZVZhbGlkYXRlIiwiaW5kZXgiLCJsYWJlbCIsImxvY2FsaXplZCIsInJlcXVpcmVkIiwic2F2ZVRvSldUIiwidW5pcXVlIiwidmFsaWRhdGUiLCJuYW1lIiwiaW52YWxpZCIsIm5vdCIsInR5cGUiLCJhdXRvQ29tcGxldGUiLCJwbGFjZWhvbGRlciIsInJ0bCIsImRlZmF1bHRWYWx1ZSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInN0ZXAiLCJoYXNNYW55IiwibWF4IiwibWF4Um93cyIsIndoZW4iLCJpcyIsInRoZW4iLCJmb3JiaWRkZW4iLCJtaW4iLCJtaW5Sb3dzIiwicm93cyIsImVkaXRvck9wdGlvbnMiLCJsYW5ndWFnZSIsImlzQ2xlYXJhYmxlIiwiaXNTb3J0YWJsZSIsImFsbG93Iiwib3B0aW9ucyIsInZhbHVlIiwibGF5b3V0IiwiZmllbGRzIiwibGluayIsInRhYiIsImV4aXN0IiwiaW50ZXJmYWNlTmFtZSIsImhpZGVHdXR0ZXIiLCJSb3dMYWJlbCIsImxhYmVscyIsInBsdXJhbCIsInNpbmd1bGFyIiwiZmlsdGVyT3B0aW9ucyIsIm1heERlcHRoIiwicmVsYXRpb25UbyIsImFsbG93Q3JlYXRlIiwid2FybmluZyIsIm1lc3NhZ2UiLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiaW1hZ2VBbHRUZXh0IiwiaW1hZ2VVUkwiLCJzbHVnIiwiZWRpdG9yIiwiQ2VsbENvbXBvbmVudCIsIkZpZWxkQ29tcG9uZW50IiwiYWZ0ZXJSZWFkUHJvbWlzZSIsIm9wdGlvbmFsIiwicG9wdWxhdGlvblByb21pc2UiLCJkaXNwbGF5Rm9ybWF0IiwibWF4RGF0ZSIsIm1heFRpbWUiLCJtaW5EYXRlIiwibWluVGltZSIsIm1vbnRoc1RvU2hvdyIsInBp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
540
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3NjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgam9pIGZyb20gJ2pvaSdcblxuaW1wb3J0IHsgY29tcG9uZW50U2NoZW1hIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NoYXJlZC9jb21wb25lbnRTY2hlbWEnXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICBGaWx0ZXI6IGNvbXBvbmVudFNjaGVtYSxcbiAgfSlcbiAgLmRlZmF1bHQoe30pXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5GaWVsZHMgPSBqb2kub2JqZWN0KCkua2V5cyh7XG4gIGNsYXNzTmFtZTogam9pLnN0cmluZygpLFxuICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMsXG4gIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgZGVzY3JpcHRpb246IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZGlzYWJsZUJ1bGtFZGl0OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBkaXNhYmxlZDogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBpbml0Q29sbGFwc2VkOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBwb3NpdGlvbjogam9pLnN0cmluZygpLnZhbGlkKCdzaWRlYmFyJyksXG4gIHJlYWRPbmx5OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBzdHlsZTogam9pLm9iamVjdCgpLnVua25vd24oKSxcbiAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBiYXNlRmllbGQgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBhY2Nlc3M6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGNyZWF0ZTogam9pLmZ1bmMoKSxcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGhvb2tzOiBqb2lcbiAgICAgIC5vYmplY3QoKVxuICAgICAgLmtleXMoe1xuICAgICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGFmdGVyUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZUNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZVZhbGlkYXRlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKS5kZWZhdWx0KFtdKSxcbiAgICAgIH0pXG4gICAgICAuZGVmYXVsdCgpLFxuICAgIGluZGV4OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGxhYmVsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgam9pLnN0cmluZygpLCBqb2kudmFsaWQoZmFsc2UpKSxcbiAgICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgcmVxdWlyZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSkuZGVmYXVsdChmYWxzZSksXG4gICAgdW5pcXVlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLFxuICB9KVxuICAuZGVmYXVsdCgpXG5cbmV4cG9ydCBjb25zdCBpZEZpZWxkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2lkJyksXG4gIGxvY2FsaXplZDogam9pLmludmFsaWQodHJ1ZSksXG4gIHJlcXVpcmVkOiBqb2kubm90KGZhbHNlLCAwKS5kZWZhdWx0KHRydWUpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3RleHQnLCAnbnVtYmVyJyksXG59KVxuXG5leHBvcnQgY29uc3QgdGV4dCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgcGxhY2Vob2xkZXI6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pLCBqb2kuc3RyaW5nKCkpLFxuICAgIHJ0bDogam9pLmJvb2xlYW4oKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgQWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICBtYXhMZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgbWluTGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGV4dCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgbnVtYmVyID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBhdXRvQ29tcGxldGU6IGpvaS5zdHJpbmcoKSxcbiAgICBwbGFjZWhvbGRlcjogam9pLnN0cmluZygpLFxuICAgIHN0ZXA6IGpvaS5udW1iZXIoKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEJlZm9yZUlucHV0OiBqb2lcbiAgICAgICAgLmFycmF5KClcbiAgICAgICAgLml0ZW1zKGNvbXBvbmVudFNjaGVtYSlcbiAgICAgICAgLndoZW4oJ2hhc01hbnknLCB7IG5vdDogdHJ1ZSwgb3RoZXJ3aXNlOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gICAgICBBZnRlcklucHV0OiBqb2lcbiAgICAgICAgLmFycmF5KClcbiAgICAgICAgLml0ZW1zKGNvbXBvbmVudFNjaGVtYSlcbiAgICAgICAgLndoZW4oJ2hhc01hbnknLCB7IG5vdDogdHJ1ZSwgb3RoZXJ3aXNlOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm51bWJlcigpLCBqb2kuZnVuYygpKSxcbiAgaGFzTWFueTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgbWF4OiBqb2kubnVtYmVyKCksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICBtaW46IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnbnVtYmVyJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB0ZXh0YXJlYSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgICByb3dzOiBqb2kubnVtYmVyKCksXG4gICAgcnRsOiBqb2kuYm9vbGVhbigpLFxuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgQmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBBZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gIG1heExlbmd0aDogam9pLm51bWJlcigpLFxuICBtaW5MZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd0ZXh0YXJlYScpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZW1haWwgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGF1dG9Db21wbGV0ZTogam9pLnN0cmluZygpLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBCZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIEFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgbWF4TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIG1pbkxlbmd0aDogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2VtYWlsJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjb2RlID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBlZGl0b3JPcHRpb25zOiBqb2kub2JqZWN0KCkudW5rbm93bigpLCAvLyBFZGl0b3JbJ29wdGlvbnMnXSBAbW9uYWNvLWVkaXRvci9yZWFjdFxuICAgIGxhbmd1YWdlOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdjb2RlJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBqc29uID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKSwgam9pLm9iamVjdCgpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdqc29uJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3QgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGlzQ2xlYXJhYmxlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGlzU29ydGFibGU6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpLmFsbG93KCcnKSksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBvcHRpb25zOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5taW4oMSlcbiAgICAuaXRlbXMoXG4gICAgICBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3NlbGVjdCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmFkaW8gPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGxheW91dDogam9pLnN0cmluZygpLnZhbGlkKCd2ZXJ0aWNhbCcsICdob3Jpem9udGFsJyksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmZ1bmMoKSksXG4gIG9wdGlvbnM6IGpvaVxuICAgIC5hcnJheSgpXG4gICAgLm1pbigxKVxuICAgIC5pdGVtcyhcbiAgICAgIGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoXG4gICAgICAgIGpvaS5zdHJpbmcoKSxcbiAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgbGFiZWw6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpXG4gICAgICAgICAgICAucmVxdWlyZWQoKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3JhZGlvJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCByb3cgPSBiYXNlRmllbGQua2V5cyh7XG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMuZGVmYXVsdCgpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncm93JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjb2xsYXBzaWJsZSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKSxcbiAgbGFiZWw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnRTY2hlbWEpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2NvbGxhcHNpYmxlJykucmVxdWlyZWQoKSxcbn0pXG5cbmNvbnN0IHRhYiA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLndoZW4oJ2xvY2FsaXplZCcsIHsgaXM6IGpvaS5leGlzdCgpLCB0aGVuOiBqb2kucmVxdWlyZWQoKSB9KSxcbiAgZGVzY3JpcHRpb246IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnRTY2hlbWEpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSkucmVxdWlyZWQoKSxcbiAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLndoZW4oJ25hbWUnLCB7IG5vdDogam9pLmV4aXN0KCksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgbGFiZWw6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSlcbiAgICAud2hlbignbmFtZScsIHsgaXM6IGpvaS5ub3QoKSwgdGhlbjogam9pLnJlcXVpcmVkKCkgfSksXG4gIGxvY2FsaXplZDogam9pLmJvb2xlYW4oKSxcbiAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSksXG59KVxuXG5leHBvcnQgY29uc3QgdGFicyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBkZXNjcmlwdGlvbjogam9pLmZvcmJpZGRlbigpLFxuICB9KSxcbiAgZmllbGRzOiBqb2kuZm9yYmlkZGVuKCksXG4gIGxvY2FsaXplZDogam9pLmZvcmJpZGRlbigpLFxuICB0YWJzOiBqb2kuYXJyYXkoKS5pdGVtcyh0YWIpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGFicycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZ3JvdXAgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGhpZGVHdXR0ZXI6IGpvaS5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kub2JqZWN0KCksIGpvaS5mdW5jKCkpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdncm91cCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgYXJyYXkgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzXG4gICAgLmtleXMoe1xuICAgICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzXG4gICAgICAgIC5rZXlzKHtcbiAgICAgICAgICBSb3dMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICB9KVxuICAgICAgICAuZGVmYXVsdCh7fSksXG4gICAgfSlcbiAgICAuZGVmYXVsdCh7fSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLnJlcXVpcmVkKCksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2FycmF5JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1cGxvYWQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGZpbHRlck9wdGlvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKSxcbiAgcmVsYXRpb25Ubzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndXBsb2FkJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjaGVja2JveCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBCZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIEFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmJvb2xlYW4oKSwgam9pLmZ1bmMoKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnY2hlY2tib3gnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHBvaW50ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgQWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kubnVtYmVyKCkpLm1heCgyKS5taW4oMiksIGpvaS5mdW5jKCkpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3BvaW50JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXAgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGFsbG93Q3JlYXRlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgaXNTb3J0YWJsZTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuZnVuYygpKSxcbiAgZmlsdGVyT3B0aW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kub2JqZWN0KCksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBtYXg6IGpvaVxuICAgIC5udW1iZXIoKVxuICAgIC53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pXG4gICAgLndhcm5pbmcoJ2RlcHJlY2F0ZWQnLCB7IG1lc3NhZ2U6ICdVc2UgbWF4Um93cyBpbnN0ZWFkLicgfSksXG4gIG1heERlcHRoOiBqb2kubnVtYmVyKCksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICBtaW46IGpvaVxuICAgIC5udW1iZXIoKVxuICAgIC53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pXG4gICAgLndhcm5pbmcoJ2RlcHJlY2F0ZWQnLCB7IG1lc3NhZ2U6ICdVc2UgbWluUm93cyBpbnN0ZWFkLicgfSksXG4gIG1pblJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICByZWxhdGlvblRvOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyZWxhdGlvbnNoaXAnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGJsb2NrcyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGJsb2Nrczogam9pXG4gICAgLmFycmF5KClcbiAgICAuaXRlbXMoXG4gICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLFxuICAgICAgICBncmFwaFFMOiBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICAgICAgc2luZ3VsYXJOYW1lOiBqb2kuc3RyaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBpbWFnZUFsdFRleHQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgaW1hZ2VVUkw6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLFxuICAgICAgICBsYWJlbHM6IGpvaS5vYmplY3Qoe1xuICAgICAgICAgIHBsdXJhbDogam9pXG4gICAgICAgICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgICAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgICAgICAgc2luZ3VsYXI6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgICB9KSxcbiAgICAgICAgc2x1Zzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICB9KSxcbiAgICApXG4gICAgLnJlcXVpcmVkKCksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2Jsb2NrcycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmRlZmF1bHQoKSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5hcnJheSgpLml0ZW1zKGpvaS5vYmplY3QoKSksIGpvaS5mdW5jKCksIGpvaS5vYmplY3QoKSksXG4gIGVkaXRvcjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLmtleXMoe1xuICAgICAgQ2VsbENvbXBvbmVudDogY29tcG9uZW50U2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBGaWVsZENvbXBvbmVudDogY29tcG9uZW50U2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBhZnRlclJlYWRQcm9taXNlOiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICBwb3B1bGF0aW9uUHJvbWlzZTogam9pLmZ1bmMoKS5vcHRpb25hbCgpLFxuICAgICAgdmFsaWRhdGU6IGpvaS5mdW5jKCkucmVxdWlyZWQoKSxcbiAgICB9KVxuICAgIC51bmtub3duKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncmljaFRleHQnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGRhdGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGRhdGU6IGpvaS5vYmplY3Qoe1xuICAgICAgZGlzcGxheUZvcm1hdDogam9pLnN0cmluZygpLFxuICAgICAgbWF4RGF0ZTogam9pLmRhdGUoKSxcbiAgICAgIG1heFRpbWU6IGpvaS5kYXRlKCksXG4gICAgICBtaW5EYXRlOiBqb2kuZGF0ZSgpLFxuICAgICAgbWluVGltZTogam9pLmRhdGUoKSxcbiAgICAgIG1vbnRoc1RvU2hvdzogam9pLm51bWJlcigpLFxuICAgICAgcGlja2VyQXBwZWFyYW5jZTogam9pLnN0cmluZygpLFxuICAgICAgdGltZUZvcm1hdDogam9pLnN0cmluZygpLFxuICAgICAgdGltZUludGVydmFsczogam9pLm51bWJlcigpLFxuICAgIH0pLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBCZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIEFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdkYXRlJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1aSA9IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBqb2lcbiAgICAub2JqZWN0KClcbiAgICAua2V5cyh7XG4gICAgICBjb21wb25lbnRzOiBqb2lcbiAgICAgICAgLm9iamVjdCgpXG4gICAgICAgIC5rZXlzKHtcbiAgICAgICAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSlcbiAgICAgICAgLmRlZmF1bHQoe30pLFxuICAgICAgY29uZGl0aW9uOiBqb2kuZnVuYygpLFxuICAgICAgcG9zaXRpb246IGpvaS5zdHJpbmcoKS52YWxpZCgnc2lkZWJhcicpLFxuICAgICAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbiAgICB9KVxuICAgIC5kZWZhdWx0KCksXG4gIGN1c3RvbTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuYW55KCkpLFxuICBsYWJlbDogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd1aScpLnJlcXVpcmVkKCksXG59KVxuXG5jb25zdCBmaWVsZFNjaGVtYSA9IGpvaVxuICAuYWx0ZXJuYXRpdmVzKClcbiAgLnRyeShcbiAgICB0ZXh0LFxuICAgIG51bWJlcixcbiAgICB0ZXh0YXJlYSxcbiAgICBlbWFpbCxcbiAgICBjb2RlLFxuICAgIGpzb24sXG4gICAgc2VsZWN0LFxuICAgIGdyb3VwLFxuICAgIGFycmF5LFxuICAgIHJvdyxcbiAgICBjb2xsYXBzaWJsZSxcbiAgICB0YWJzLFxuICAgIHJhZGlvLFxuICAgIHJlbGF0aW9uc2hpcCxcbiAgICBjaGVja2JveCxcbiAgICB1cGxvYWQsXG4gICAgcmljaFRleHQsXG4gICAgYmxvY2tzLFxuICAgIGRhdGUsXG4gICAgcG9pbnQsXG4gICAgdWksXG4gIClcbiAgLmlkKCdmaWVsZCcpXG5cbmV4cG9ydCBkZWZhdWx0IGZpZWxkU2NoZW1hXG4iXSwibmFtZXMiOlsiYmFzZUFkbWluQ29tcG9uZW50RmllbGRzIiwiYmFzZUFkbWluRmllbGRzIiwiYmFzZUZpZWxkIiwiaWRGaWVsZCIsInRleHQiLCJudW1iZXIiLCJ0ZXh0YXJlYSIsImVtYWlsIiwiY29kZSIsImpzb24iLCJzZWxlY3QiLCJyYWRpbyIsInJvdyIsImNvbGxhcHNpYmxlIiwidGFicyIsImdyb3VwIiwiYXJyYXkiLCJ1cGxvYWQiLCJjaGVja2JveCIsInBvaW50IiwicmVsYXRpb25zaGlwIiwiYmxvY2tzIiwicmljaFRleHQiLCJkYXRlIiwidWkiLCJqb2kiLCJvYmplY3QiLCJrZXlzIiwiQ2VsbCIsImNvbXBvbmVudFNjaGVtYSIsIkZpZWxkIiwiRmlsdGVyIiwiZGVmYXVsdCIsImNsYXNzTmFtZSIsInN0cmluZyIsImNvbXBvbmVudHMiLCJjb25kaXRpb24iLCJmdW5jIiwiZGVzY3JpcHRpb24iLCJhbHRlcm5hdGl2ZXMiLCJ0cnkiLCJwYXR0ZXJuIiwiZGlzYWJsZUJ1bGtFZGl0IiwiYm9vbGVhbiIsImRpc2FibGVkIiwiaGlkZGVuIiwiaW5pdENvbGxhcHNlZCIsInBvc2l0aW9uIiwidmFsaWQiLCJyZWFkT25seSIsInN0eWxlIiwidW5rbm93biIsIndpZHRoIiwiYWNjZXNzIiwiY3JlYXRlIiwicmVhZCIsInVwZGF0ZSIsImFkbWluIiwiY3VzdG9tIiwiYW55IiwiaG9va3MiLCJhZnRlckNoYW5nZSIsIml0ZW1zIiwiYWZ0ZXJSZWFkIiwiYmVmb3JlQ2hhbmdlIiwiYmVmb3JlVmFsaWRhdGUiLCJpbmRleCIsImxhYmVsIiwibG9jYWxpemVkIiwicmVxdWlyZWQiLCJzYXZlVG9KV1QiLCJ1bmlxdWUiLCJ2YWxpZGF0ZSIsIm5hbWUiLCJpbnZhbGlkIiwibm90IiwidHlwZSIsImF1dG9Db21wbGV0ZSIsInBsYWNlaG9sZGVyIiwicnRsIiwiTGFiZWwiLCJFcnJvciIsIkJlZm9yZUlucHV0IiwiQWZ0ZXJJbnB1dCIsImRlZmF1bHRWYWx1ZSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInN0ZXAiLCJ3aGVuIiwib3RoZXJ3aXNlIiwiZm9yYmlkZGVuIiwiaGFzTWFueSIsIm1heCIsIm1heFJvd3MiLCJpcyIsInRoZW4iLCJtaW4iLCJtaW5Sb3dzIiwicm93cyIsImVkaXRvck9wdGlvbnMiLCJsYW5ndWFnZSIsImlzQ2xlYXJhYmxlIiwiaXNTb3J0YWJsZSIsImFsbG93Iiwib3B0aW9ucyIsInZhbHVlIiwibGF5b3V0IiwiZmllbGRzIiwibGluayIsInRhYiIsImV4aXN0IiwiaW50ZXJmYWNlTmFtZSIsImhpZGVHdXR0ZXIiLCJSb3dMYWJlbCIsImxhYmVscyIsInBsdXJhbCIsInNpbmd1bGFyIiwiZmlsdGVyT3B0aW9ucyIsIm1heERlcHRoIiwicmVsYXRpb25UbyIsImFsbG93Q3JlYXRlIiwid2FybmluZyIsIm1lc3NhZ2UiLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiaW1hZ2VBbHRUZXh0IiwiaW1hZ2VVUkwiLCJzbHVnIiwiZWRpdG9yIiwiQ2VsbENvbXBvbmVudCIsIkZpZWxkQ29tcG9uZW50IiwiYWZ0ZXJSZWFkUHJvbWlzZSIsIm9wdGlvbmFsIiwicG9wdWxhdGlvblByb21pc2UiLCJkaXNwbGF5Rm9ybWF0IiwibWF4RGF0ZSIsIm1heFRpbWUiLCJtaW5EYXRlIiwibWluVGltZSIsIm1vbnRoc1RvU2hvdyIsInBpY2tlckFwcGVhcmFuY2UiLCJ0aW1lRm9ybWF0IiwidGltZUludGVydmFscyIsImZpZWxkU2NoZW1hIiwiaWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBSWFBLHdCQUF3QjtlQUF4QkE7O0lBU0FDLGVBQWU7ZUFBZkE7O0lBaUJBQyxTQUFTO2VBQVRBOztJQWdDQUMsT0FBTztlQUFQQTs7SUFPQUMsSUFBSTtlQUFKQTs7SUFxQkFDLE1BQU07ZUFBTkE7O0lBNEJBQyxRQUFRO2VBQVJBOztJQW1CQUMsS0FBSztlQUFMQTs7SUFrQkFDLElBQUk7ZUFBSkE7O0lBY0FDLElBQUk7ZUFBSkE7O0lBWUFDLE1BQU07ZUFBTkE7O0lBZ0NBQyxLQUFLO2VBQUxBOztJQTZCQUMsR0FBRztlQUFIQTs7SUFNQUMsV0FBVztlQUFYQTs7SUFvQkFDLElBQUk7ZUFBSkE7O0lBVUFDLEtBQUs7ZUFBTEE7O0lBV0FDLEtBQUs7ZUFBTEE7O0lBMkJBQyxNQUFNO2VBQU5BOztJQWVBQyxRQUFRO2VBQVJBOztJQWNBQyxLQUFLO2VBQUxBOztJQWNBQyxZQUFZO2VBQVpBOztJQTRCQUMsTUFBTTtlQUFOQTs7SUF1Q0FDLFFBQVE7ZUFBUkE7O0lBaUJBQyxJQUFJO2VBQUpBOztJQTBCQUMsRUFBRTtlQUFGQTs7SUFpRGIsT0FBMEI7ZUFBMUI7Ozs0REF0Z0JnQjtpQ0FFZ0I7Ozs7OztBQUV6QixNQUFNeEIsMkJBQTJCeUIsWUFBRyxDQUN4Q0MsTUFBTSxHQUNOQyxJQUFJLENBQUM7SUFDSkMsTUFBTUMsZ0NBQWU7SUFDckJDLE9BQU9ELGdDQUFlO0lBQ3RCRSxRQUFRRixnQ0FBZTtBQUN6QixHQUNDRyxPQUFPLENBQUMsQ0FBQztBQUVMLE1BQU0vQixrQkFBa0J3QixZQUFHLENBQUNDLE1BQU0sR0FBR0MsSUFBSSxDQUFDO0lBQy9DTSxXQUFXUixZQUFHLENBQUNTLE1BQU07SUFDckJDLFlBQVluQztJQUNab0MsV0FBV1gsWUFBRyxDQUFDWSxJQUFJO0lBQ25CQyxhQUFh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