angular-odata 0.78.1 → 0.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +133 -62
  2. package/{esm2015/angular-odata.js → esm2020/angular-odata.mjs} +0 -0
  3. package/esm2020/lib/api.mjs +303 -0
  4. package/{esm2015/lib/cache/cache.js → esm2020/lib/cache/cache.mjs} +12 -5
  5. package/{esm2015/lib/cache/index.js → esm2020/lib/cache/index.mjs} +0 -0
  6. package/{esm2015/lib/cache/memory.js → esm2020/lib/cache/memory.mjs} +0 -0
  7. package/{esm2015/lib/cache/storage.js → esm2020/lib/cache/storage.mjs} +1 -1
  8. package/esm2020/lib/client.mjs +271 -0
  9. package/{esm2015/lib/constants.js → esm2020/lib/constants.mjs} +9 -3
  10. package/esm2020/lib/helper.mjs +268 -0
  11. package/esm2020/lib/index.mjs +19 -0
  12. package/esm2020/lib/models/collection.mjs +741 -0
  13. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  14. package/esm2020/lib/models/model.mjs +453 -0
  15. package/esm2020/lib/models/options.mjs +945 -0
  16. package/{esm2015/lib/module.js → esm2020/lib/module.mjs} +6 -6
  17. package/esm2020/lib/options.mjs +32 -0
  18. package/esm2020/lib/resources/index.mjs +7 -0
  19. package/esm2020/lib/resources/path/handlers.mjs +69 -0
  20. package/esm2020/lib/resources/path/index.mjs +3 -0
  21. package/esm2020/lib/resources/path/segments.mjs +124 -0
  22. package/esm2020/lib/resources/query/builder.mjs +590 -0
  23. package/esm2020/lib/resources/query/expressions.mjs +207 -0
  24. package/esm2020/lib/resources/query/handlers.mjs +186 -0
  25. package/esm2020/lib/resources/query/index.mjs +4 -0
  26. package/esm2020/lib/resources/query/options.mjs +103 -0
  27. package/esm2020/lib/resources/query/syntax.mjs +406 -0
  28. package/esm2020/lib/resources/request.mjs +167 -0
  29. package/esm2020/lib/resources/resource.mjs +326 -0
  30. package/esm2020/lib/resources/responses/annotations.mjs +119 -0
  31. package/{esm2015/lib/resources/responses/csdl/csdl-annotation.js → esm2020/lib/resources/responses/csdl/csdl-annotation.mjs} +0 -0
  32. package/{esm2015/lib/resources/responses/csdl/csdl-entity-container.js → esm2020/lib/resources/responses/csdl/csdl-entity-container.mjs} +0 -0
  33. package/{esm2015/lib/resources/responses/csdl/csdl-entity-set.js → esm2020/lib/resources/responses/csdl/csdl-entity-set.mjs} +0 -0
  34. package/{esm2015/lib/resources/responses/csdl/csdl-enum-type.js → esm2020/lib/resources/responses/csdl/csdl-enum-type.mjs} +0 -0
  35. package/{esm2015/lib/resources/responses/csdl/csdl-function-action.js → esm2020/lib/resources/responses/csdl/csdl-function-action.mjs} +0 -0
  36. package/{esm2015/lib/resources/responses/csdl/csdl-navigation-property-binding.js → esm2020/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs} +0 -0
  37. package/{esm2015/lib/resources/responses/csdl/csdl-reference.js → esm2020/lib/resources/responses/csdl/csdl-reference.mjs} +0 -0
  38. package/{esm2015/lib/resources/responses/csdl/csdl-schema.js → esm2020/lib/resources/responses/csdl/csdl-schema.mjs} +0 -0
  39. package/{esm2015/lib/resources/responses/csdl/csdl-singleton.js → esm2020/lib/resources/responses/csdl/csdl-singleton.mjs} +0 -0
  40. package/{esm2015/lib/resources/responses/csdl/csdl-structural-property.js → esm2020/lib/resources/responses/csdl/csdl-structural-property.mjs} +0 -0
  41. package/{esm2015/lib/resources/responses/csdl/csdl-structured-type.js → esm2020/lib/resources/responses/csdl/csdl-structured-type.mjs} +0 -0
  42. package/{esm2015/lib/resources/responses/csdl/csdl-type-definition.js → esm2020/lib/resources/responses/csdl/csdl-type-definition.mjs} +0 -0
  43. package/{esm2015/lib/resources/responses/index.js → esm2020/lib/resources/responses/index.mjs} +0 -0
  44. package/esm2020/lib/resources/responses/metadata.mjs +547 -0
  45. package/{esm2015/lib/resources/responses/options.js → esm2020/lib/resources/responses/options.mjs} +1 -1
  46. package/esm2020/lib/resources/responses/response.mjs +170 -0
  47. package/{esm2015/lib/resources/responses/types.js → esm2020/lib/resources/responses/types.mjs} +1 -1
  48. package/esm2020/lib/resources/types/action.mjs +101 -0
  49. package/esm2020/lib/resources/types/batch.mjs +288 -0
  50. package/esm2020/lib/resources/types/count.mjs +27 -0
  51. package/esm2020/lib/resources/types/entity-set.mjs +94 -0
  52. package/esm2020/lib/resources/types/entity.mjs +106 -0
  53. package/esm2020/lib/resources/types/function.mjs +137 -0
  54. package/{esm2015/lib/resources/types/index.js → esm2020/lib/resources/types/index.mjs} +0 -0
  55. package/esm2020/lib/resources/types/media.mjs +41 -0
  56. package/esm2020/lib/resources/types/metadata.mjs +30 -0
  57. package/esm2020/lib/resources/types/navigation-property.mjs +226 -0
  58. package/esm2020/lib/resources/types/options.mjs +2 -0
  59. package/esm2020/lib/resources/types/property.mjs +183 -0
  60. package/esm2020/lib/resources/types/reference.mjs +85 -0
  61. package/esm2020/lib/resources/types/singleton.mjs +126 -0
  62. package/esm2020/lib/resources/types/value.mjs +41 -0
  63. package/esm2020/lib/schema/annotation.mjs +37 -0
  64. package/esm2020/lib/schema/callable.mjs +62 -0
  65. package/esm2020/lib/schema/element.mjs +51 -0
  66. package/esm2020/lib/schema/entity-container.mjs +9 -0
  67. package/esm2020/lib/schema/entity-set.mjs +9 -0
  68. package/esm2020/lib/schema/enum-type.mjs +71 -0
  69. package/{esm2015/lib/schema/index.js → esm2020/lib/schema/index.mjs} +2 -1
  70. package/esm2020/lib/schema/parsers/callable.mjs +113 -0
  71. package/esm2020/lib/schema/parsers/edm.mjs +95 -0
  72. package/esm2020/lib/schema/parsers/enum-type.mjs +107 -0
  73. package/esm2020/lib/schema/parsers/index.mjs +5 -0
  74. package/esm2020/lib/schema/parsers/structured-type.mjs +412 -0
  75. package/esm2020/lib/schema/schema.mjs +61 -0
  76. package/esm2020/lib/schema/structured-type.mjs +198 -0
  77. package/esm2020/lib/services/base.mjs +29 -0
  78. package/esm2020/lib/services/entity-set.mjs +143 -0
  79. package/esm2020/lib/services/entity.mjs +12 -0
  80. package/{esm2015/lib/services/factory.js → esm2020/lib/services/factory.mjs} +3 -3
  81. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
  82. package/esm2020/lib/services/singleton.mjs +48 -0
  83. package/{esm2015/lib/settings.js → esm2020/lib/settings.mjs} +1 -1
  84. package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
  85. package/esm2020/lib/types.mjs +37 -0
  86. package/esm2020/lib/utils/arraybuffers.mjs +46 -0
  87. package/{esm2015/lib/utils/dates.js → esm2020/lib/utils/dates.mjs} +0 -0
  88. package/esm2020/lib/utils/durations.mjs +40 -0
  89. package/{esm2015/lib/utils/enums.js → esm2020/lib/utils/enums.mjs} +0 -0
  90. package/esm2020/lib/utils/http.mjs +93 -0
  91. package/esm2020/lib/utils/index.mjs +10 -0
  92. package/esm2020/lib/utils/objects.mjs +195 -0
  93. package/esm2020/lib/utils/odata.mjs +22 -0
  94. package/esm2020/lib/utils/strings.mjs +20 -0
  95. package/esm2020/lib/utils/types.mjs +134 -0
  96. package/{esm2015/lib/utils/urls.js → esm2020/lib/utils/urls.mjs} +0 -0
  97. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  98. package/fesm2015/{angular-odata.js → angular-odata.mjs} +5068 -3943
  99. package/fesm2015/angular-odata.mjs.map +1 -0
  100. package/fesm2020/angular-odata.mjs +10274 -0
  101. package/fesm2020/angular-odata.mjs.map +1 -0
  102. package/lib/api.d.ts +17 -16
  103. package/lib/cache/cache.d.ts +2 -2
  104. package/lib/client.d.ts +93 -18
  105. package/lib/constants.d.ts +6 -2
  106. package/lib/helper.d.ts +3 -3
  107. package/lib/index.d.ts +0 -1
  108. package/lib/models/collection.d.ts +36 -47
  109. package/lib/models/model.d.ts +47 -40
  110. package/lib/models/options.d.ts +53 -52
  111. package/lib/options.d.ts +50 -2
  112. package/lib/resources/index.d.ts +2 -3
  113. package/lib/resources/path/handlers.d.ts +27 -0
  114. package/lib/resources/path/index.d.ts +2 -0
  115. package/lib/resources/{path-segments.d.ts → path/segments.d.ts} +4 -16
  116. package/lib/resources/{builder.d.ts → query/builder.d.ts} +12 -7
  117. package/lib/resources/query/expressions.d.ts +63 -0
  118. package/lib/resources/query/handlers.d.ts +89 -0
  119. package/lib/resources/query/index.d.ts +3 -0
  120. package/lib/resources/query/options.d.ts +38 -0
  121. package/lib/resources/query/syntax.d.ts +175 -0
  122. package/lib/resources/request.d.ts +8 -6
  123. package/lib/resources/resource.d.ts +49 -55
  124. package/lib/resources/responses/metadata.d.ts +1 -1
  125. package/lib/resources/responses/types.d.ts +1 -1
  126. package/lib/resources/types/action.d.ts +55 -69
  127. package/lib/resources/types/batch.d.ts +13 -8
  128. package/lib/resources/types/count.d.ts +16 -19
  129. package/lib/resources/types/entity-set.d.ts +24 -62
  130. package/lib/resources/types/entity.d.ts +35 -43
  131. package/lib/resources/types/function.d.ts +63 -71
  132. package/lib/resources/types/media.d.ts +20 -22
  133. package/lib/resources/types/metadata.d.ts +5 -7
  134. package/lib/resources/types/navigation-property.d.ts +100 -85
  135. package/lib/resources/types/options.d.ts +8 -8
  136. package/lib/resources/types/property.d.ts +63 -73
  137. package/lib/resources/types/reference.d.ts +72 -16
  138. package/lib/resources/types/singleton.d.ts +75 -43
  139. package/lib/resources/types/value.d.ts +18 -9
  140. package/lib/schema/annotation.d.ts +18 -0
  141. package/lib/schema/callable.d.ts +27 -11
  142. package/lib/schema/element.d.ts +39 -0
  143. package/lib/schema/entity-container.d.ts +3 -8
  144. package/lib/schema/entity-set.d.ts +3 -9
  145. package/lib/schema/enum-type.d.ts +41 -14
  146. package/lib/schema/index.d.ts +1 -0
  147. package/lib/{parsers → schema/parsers}/callable.d.ts +2 -2
  148. package/lib/schema/parsers/edm.d.ts +4 -0
  149. package/lib/{parsers → schema/parsers}/enum-type.d.ts +13 -7
  150. package/lib/{parsers → schema/parsers}/index.d.ts +0 -0
  151. package/lib/{parsers → schema/parsers}/structured-type.d.ts +14 -9
  152. package/lib/schema/schema.d.ts +6 -8
  153. package/lib/schema/structured-type.d.ts +97 -18
  154. package/lib/services/base.d.ts +12 -12
  155. package/lib/services/entity-set.d.ts +15 -12
  156. package/lib/services/entity.d.ts +4 -1
  157. package/lib/services/singleton.d.ts +6 -3
  158. package/lib/settings.d.ts +4 -4
  159. package/lib/types.d.ts +7 -3
  160. package/lib/utils/arraybuffers.d.ts +4 -0
  161. package/lib/{parsers/edm.d.ts → utils/durations.d.ts} +3 -3
  162. package/lib/utils/http.d.ts +9 -0
  163. package/lib/utils/index.d.ts +5 -2
  164. package/lib/utils/objects.d.ts +1 -1
  165. package/lib/utils/strings.d.ts +4 -0
  166. package/lib/utils/types.d.ts +2 -0
  167. package/package.json +21 -8
  168. package/bundles/angular-odata.umd.js +0 -10756
  169. package/bundles/angular-odata.umd.js.map +0 -1
  170. package/esm2015/lib/api.js +0 -251
  171. package/esm2015/lib/client.js +0 -197
  172. package/esm2015/lib/helper.js +0 -269
  173. package/esm2015/lib/index.js +0 -21
  174. package/esm2015/lib/models/collection.js +0 -660
  175. package/esm2015/lib/models/model.js +0 -421
  176. package/esm2015/lib/models/options.js +0 -889
  177. package/esm2015/lib/options.js +0 -31
  178. package/esm2015/lib/parsers/callable.js +0 -110
  179. package/esm2015/lib/parsers/edm.js +0 -310
  180. package/esm2015/lib/parsers/enum-type.js +0 -97
  181. package/esm2015/lib/parsers/index.js +0 -5
  182. package/esm2015/lib/parsers/structured-type.js +0 -394
  183. package/esm2015/lib/resources/builder.js +0 -537
  184. package/esm2015/lib/resources/index.js +0 -8
  185. package/esm2015/lib/resources/path-segments.js +0 -156
  186. package/esm2015/lib/resources/query-options.js +0 -157
  187. package/esm2015/lib/resources/request.js +0 -141
  188. package/esm2015/lib/resources/resource.js +0 -328
  189. package/esm2015/lib/resources/responses/annotations.js +0 -121
  190. package/esm2015/lib/resources/responses/metadata.js +0 -548
  191. package/esm2015/lib/resources/responses/response.js +0 -170
  192. package/esm2015/lib/resources/types/action.js +0 -146
  193. package/esm2015/lib/resources/types/batch.js +0 -330
  194. package/esm2015/lib/resources/types/count.js +0 -50
  195. package/esm2015/lib/resources/types/entity-set.js +0 -164
  196. package/esm2015/lib/resources/types/entity.js +0 -158
  197. package/esm2015/lib/resources/types/function.js +0 -166
  198. package/esm2015/lib/resources/types/media.js +0 -46
  199. package/esm2015/lib/resources/types/metadata.js +0 -36
  200. package/esm2015/lib/resources/types/navigation-property.js +0 -214
  201. package/esm2015/lib/resources/types/options.js +0 -2
  202. package/esm2015/lib/resources/types/property.js +0 -190
  203. package/esm2015/lib/resources/types/reference.js +0 -50
  204. package/esm2015/lib/resources/types/singleton.js +0 -147
  205. package/esm2015/lib/resources/types/value.js +0 -30
  206. package/esm2015/lib/schema/annotation.js +0 -7
  207. package/esm2015/lib/schema/callable.js +0 -50
  208. package/esm2015/lib/schema/entity-container.js +0 -17
  209. package/esm2015/lib/schema/entity-set.js +0 -23
  210. package/esm2015/lib/schema/enum-type.js +0 -68
  211. package/esm2015/lib/schema/schema.js +0 -55
  212. package/esm2015/lib/schema/structured-type.js +0 -107
  213. package/esm2015/lib/services/base.js +0 -23
  214. package/esm2015/lib/services/entity-set.js +0 -143
  215. package/esm2015/lib/services/entity.js +0 -10
  216. package/esm2015/lib/services/singleton.js +0 -46
  217. package/esm2015/lib/types.js +0 -37
  218. package/esm2015/lib/utils/http.js +0 -59
  219. package/esm2015/lib/utils/index.js +0 -7
  220. package/esm2015/lib/utils/objects.js +0 -140
  221. package/esm2015/lib/utils/odata.js +0 -21
  222. package/esm2015/lib/utils/types.js +0 -103
  223. package/fesm2015/angular-odata.js.map +0 -1
  224. package/lib/resources/query-options.d.ts +0 -57
@@ -1,158 +0,0 @@
1
- import { throwError } from 'rxjs';
2
- import { map } from 'rxjs/operators';
3
- import { ODataActionResource } from './action';
4
- import { ODataFunctionResource } from './function';
5
- import { ODataNavigationPropertyResource } from './navigation-property';
6
- import { ODataPropertyResource } from './property';
7
- import { ODataResource } from '../resource';
8
- import { ODataMediaResource } from './media';
9
- import { ODataStructuredTypeParser } from '../../parsers/structured-type';
10
- import { PathSegmentNames, QueryOptionNames } from '../../types';
11
- export class ODataEntityResource extends ODataResource {
12
- //#region Factory
13
- static factory(api, segments, options) {
14
- options.keep(QueryOptionNames.expand, QueryOptionNames.select, QueryOptionNames.format);
15
- return new ODataEntityResource(api, segments, options);
16
- }
17
- //#endregion
18
- clone() {
19
- return new ODataEntityResource(this.api, this.cloneSegments(), this.cloneQuery());
20
- }
21
- schema() {
22
- let type = this.type();
23
- return type !== undefined
24
- ? this.api.findStructuredTypeForType(type)
25
- : undefined;
26
- }
27
- asModel(entity, { annots, reset } = {}) {
28
- const type = (annots === null || annots === void 0 ? void 0 : annots.type) || this.type();
29
- const Model = this.api.modelForType(type);
30
- return new Model(entity, { resource: this, annots, reset });
31
- }
32
- //#region Inmutable Resource
33
- key(value) {
34
- const entity = this.clone();
35
- var key = this.resolveKey(value);
36
- if (key !== undefined)
37
- entity.segment.entitySet().key(key);
38
- return entity;
39
- }
40
- keys(values) {
41
- const entity = this.clone();
42
- const types = this.pathSegments.types({ key: true });
43
- const keys = values.map((value, index) => ODataResource.resolveKey(value, this.api.findStructuredTypeForType(types[index])));
44
- entity.segment.keys(keys);
45
- return entity;
46
- }
47
- media() {
48
- return ODataMediaResource.factory(this.api, this.cloneSegments(), this.cloneQuery());
49
- }
50
- navigationProperty(path) {
51
- let type = this.type();
52
- if (type !== undefined) {
53
- let parser = this.api.parserForType(type);
54
- type =
55
- parser instanceof ODataStructuredTypeParser
56
- ? parser.typeFor(path)
57
- : undefined;
58
- }
59
- return ODataNavigationPropertyResource.factory(this.api, path, type, this.cloneSegments(), this.cloneQuery());
60
- }
61
- property(path) {
62
- let type = this.type();
63
- if (type !== undefined) {
64
- let parser = this.api.parserForType(type);
65
- type =
66
- parser instanceof ODataStructuredTypeParser
67
- ? parser.typeFor(path)
68
- : undefined;
69
- }
70
- return ODataPropertyResource.factory(this.api, path, type, this.cloneSegments(), this.cloneQuery());
71
- }
72
- action(path) {
73
- let type;
74
- const callable = this.api.findCallableForType(path, this.type());
75
- if (callable !== undefined) {
76
- path = callable.path();
77
- type = callable.type();
78
- }
79
- return ODataActionResource.factory(this.api, path, type, this.cloneSegments(), this.cloneQuery());
80
- }
81
- function(path) {
82
- let type;
83
- const callable = this.api.findCallableForType(path, this.type());
84
- if (callable !== undefined) {
85
- path = callable.path();
86
- type = callable.type();
87
- }
88
- return ODataFunctionResource.factory(this.api, path, type, this.cloneSegments(), this.cloneQuery());
89
- }
90
- //TODO: Check
91
- cast(type) {
92
- let segments = this.cloneSegments();
93
- segments.add(PathSegmentNames.type, type).type(type);
94
- return new ODataEntityResource(this.api, segments, this.cloneQuery());
95
- }
96
- select(opts) {
97
- const clone = this.clone();
98
- clone.query.select(opts);
99
- return clone;
100
- }
101
- expand(opts) {
102
- const clone = this.clone();
103
- clone.query.expand(opts);
104
- return clone;
105
- }
106
- format(opts) {
107
- const clone = this.clone();
108
- clone.query.format(opts);
109
- return clone;
110
- }
111
- //#endregion
112
- //#region Mutable Resource
113
- get segment() {
114
- const segments = this.pathSegments;
115
- return {
116
- entitySet() {
117
- return segments.get(PathSegmentNames.entitySet);
118
- },
119
- keys(values) {
120
- return segments.keys(values);
121
- },
122
- };
123
- }
124
- get query() {
125
- return this.entityQueryHandler();
126
- }
127
- //#endregion
128
- //#region Requests
129
- get(options = {}) {
130
- return super.get(Object.assign({ responseType: 'entity' }, options));
131
- }
132
- post(attrs, options = {}) {
133
- return super.post(attrs, Object.assign({ responseType: 'entity' }, options));
134
- }
135
- put(attrs, options = {}) {
136
- return super.put(attrs, Object.assign({ responseType: 'entity' }, options));
137
- }
138
- patch(attrs, options = {}) {
139
- return super.patch(attrs, Object.assign({ responseType: 'entity' }, options));
140
- }
141
- delete(options = {}) {
142
- return super.delete(Object.assign({ responseType: 'entity' }, options));
143
- }
144
- //#endregion
145
- //#region Shortcuts
146
- fetch(options) {
147
- if (!this.hasKey())
148
- return throwError('Entity resource without key');
149
- return this.get(options);
150
- }
151
- fetchEntity(options) {
152
- return this.fetch(options).pipe(map(({ entity }) => entity));
153
- }
154
- fetchModel(options) {
155
- return this.fetch(options).pipe(map(({ entity, annots }) => entity ? this.asModel(entity, { annots, reset: true }) : null));
156
- }
157
- }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3Jlc291cmNlcy90eXBlcy9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJbkQsT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE1BQU0sT0FBTyxtQkFBdUIsU0FBUSxhQUFnQjtJQUMxRCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsUUFBMkIsRUFDM0IsT0FBMEI7UUFFMUIsT0FBTyxDQUFDLElBQUksQ0FDVixnQkFBZ0IsQ0FBQyxNQUFNLEVBQ3ZCLGdCQUFnQixDQUFDLE1BQU0sRUFDdkIsZ0JBQWdCLENBQUMsTUFBTSxDQUN4QixDQUFDO1FBQ0YsT0FBTyxJQUFJLG1CQUFtQixDQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELFlBQVk7SUFFWixLQUFLO1FBQ0gsT0FBTyxJQUFJLG1CQUFtQixDQUM1QixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLEtBQUssU0FBUztZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBSSxJQUFJLENBQUM7WUFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxDQUNMLE1BQTRDLEVBQzVDLEVBQUUsTUFBTSxFQUFFLEtBQUssS0FBMkQsRUFBRTtRQUU1RSxNQUFNLElBQUksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLEtBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQU0sQ0FBQztJQUNuRSxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLEdBQUcsQ0FBQyxLQUFVO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxHQUFHLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBYTtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ3ZDLGFBQWEsQ0FBQyxVQUFVLENBQ3RCLEtBQUssRUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwRCxDQUNGLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUMvQixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFJLElBQVk7UUFDaEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBSSxJQUFJLENBQUMsQ0FBQztZQUM3QyxJQUFJO2dCQUNGLE1BQU0sWUFBWSx5QkFBeUI7b0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDdEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNqQjtRQUNELE9BQU8sK0JBQStCLENBQUMsT0FBTyxDQUM1QyxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFJLElBQVk7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBSSxJQUFJLENBQUMsQ0FBQztZQUM3QyxJQUFJO2dCQUNGLE1BQU0sWUFBWSx5QkFBeUI7b0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDdEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNqQjtRQUNELE9BQU8scUJBQXFCLENBQUMsT0FBTyxDQUNsQyxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFPLElBQVk7UUFDdkIsSUFBSSxJQUFJLENBQUM7UUFDVCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLENBQ2hDLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQU8sSUFBWTtRQUN6QixJQUFJLElBQUksQ0FBQztRQUNULE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDeEI7UUFDRCxPQUFPLHFCQUFxQixDQUFDLE9BQU8sQ0FDbEMsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7SUFDYixJQUFJLENBQUksSUFBWTtRQUNsQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxtQkFBbUIsQ0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWU7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFlO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsWUFBWTtJQUVaLDBCQUEwQjtJQUMxQixJQUFJLE9BQU87UUFDVCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ25DLE9BQU87WUFDTCxTQUFTO2dCQUNQLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQXFDO2dCQUN4QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtJQUVaLGtCQUFrQjtJQUNsQixHQUFHLENBQ0QsVUFHSSxFQUFFO1FBRU4sT0FBTyxLQUFLLENBQUMsR0FBRyxpQkFBRyxZQUFZLEVBQUUsUUFBUSxJQUFLLE9BQU8sRUFBRyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLENBQ0YsS0FBaUIsRUFDakIsVUFBdUIsRUFBRTtRQUV6QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxrQkFBSSxZQUFZLEVBQUUsUUFBUSxJQUFLLE9BQU8sRUFBRyxDQUFDO0lBQ25FLENBQUM7SUFFRCxHQUFHLENBQ0QsS0FBaUIsRUFDakIsVUFBMkMsRUFBRTtRQUU3QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxrQkFBSSxZQUFZLEVBQUUsUUFBUSxJQUFLLE9BQU8sRUFBRyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxLQUFLLENBQ0gsS0FBaUIsRUFDakIsVUFBMkMsRUFBRTtRQUU3QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxrQkFBSSxZQUFZLEVBQUUsUUFBUSxJQUFLLE9BQU8sRUFBRyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBMkMsRUFBRTtRQUNsRCxPQUFPLEtBQUssQ0FBQyxNQUFNLGlCQUFHLFlBQVksRUFBRSxRQUFRLElBQUssT0FBTyxFQUFHLENBQUM7SUFDOUQsQ0FBQztJQUNELFlBQVk7SUFFWixtQkFBbUI7SUFDbkIsS0FBSyxDQUNILE9BR0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sVUFBVSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQ1QsT0FHQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsVUFBVSxDQUNSLE9BR0M7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUQsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBPRGF0YUFjdGlvblJlc291cmNlIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgT0RhdGFGdW5jdGlvblJlc291cmNlIH0gZnJvbSAnLi9mdW5jdGlvbic7XG5pbXBvcnQgeyBPRGF0YU5hdmlnYXRpb25Qcm9wZXJ0eVJlc291cmNlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXByb3BlcnR5JztcbmltcG9ydCB7IE9EYXRhUHJvcGVydHlSZXNvdXJjZSB9IGZyb20gJy4vcHJvcGVydHknO1xuaW1wb3J0IHsgRXhwYW5kLCBTZWxlY3QgfSBmcm9tICcuLi9idWlsZGVyJztcbmltcG9ydCB7IE9EYXRhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vcXVlcnktb3B0aW9ucyc7XG5pbXBvcnQgeyBPRGF0YVBhdGhTZWdtZW50cyB9IGZyb20gJy4uL3BhdGgtc2VnbWVudHMnO1xuaW1wb3J0IHsgRW50aXR5S2V5LCBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgSHR0cE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgT0RhdGFNZWRpYVJlc291cmNlIH0gZnJvbSAnLi9tZWRpYSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eSwgT0RhdGFFbnRpdHlBbm5vdGF0aW9ucyB9IGZyb20gJy4uL3Jlc3BvbnNlcyc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyIH0gZnJvbSAnLi4vLi4vcGFyc2Vycy9zdHJ1Y3R1cmVkLXR5cGUnO1xuaW1wb3J0IHsgT0RhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBQYXRoU2VnbWVudE5hbWVzLCBRdWVyeU9wdGlvbk5hbWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5UmVzb3VyY2U8VD4gZXh0ZW5kcyBPRGF0YVJlc291cmNlPFQ+IHtcbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3Rvcnk8RT4oXG4gICAgYXBpOiBPRGF0YUFwaSxcbiAgICBzZWdtZW50czogT0RhdGFQYXRoU2VnbWVudHMsXG4gICAgb3B0aW9uczogT0RhdGFRdWVyeU9wdGlvbnNcbiAgKSB7XG4gICAgb3B0aW9ucy5rZWVwKFxuICAgICAgUXVlcnlPcHRpb25OYW1lcy5leHBhbmQsXG4gICAgICBRdWVyeU9wdGlvbk5hbWVzLnNlbGVjdCxcbiAgICAgIFF1ZXJ5T3B0aW9uTmFtZXMuZm9ybWF0XG4gICAgKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRW50aXR5UmVzb3VyY2U8RT4oYXBpLCBzZWdtZW50cywgb3B0aW9ucyk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUVudGl0eVJlc291cmNlPFQ+KFxuICAgICAgdGhpcy5hcGksXG4gICAgICB0aGlzLmNsb25lU2VnbWVudHMoKSxcbiAgICAgIHRoaXMuY2xvbmVRdWVyeSgpXG4gICAgKTtcbiAgfVxuXG4gIHNjaGVtYSgpIHtcbiAgICBsZXQgdHlwZSA9IHRoaXMudHlwZSgpO1xuICAgIHJldHVybiB0eXBlICE9PSB1bmRlZmluZWRcbiAgICAgID8gdGhpcy5hcGkuZmluZFN0cnVjdHVyZWRUeXBlRm9yVHlwZTxUPih0eXBlKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbiAgYXNNb2RlbDxNIGV4dGVuZHMgT0RhdGFNb2RlbDxUPj4oXG4gICAgZW50aXR5OiBQYXJ0aWFsPFQ+IHwgeyBbbmFtZTogc3RyaW5nXTogYW55IH0sXG4gICAgeyBhbm5vdHMsIHJlc2V0IH06IHsgYW5ub3RzPzogT0RhdGFFbnRpdHlBbm5vdGF0aW9uczsgcmVzZXQ/OiBib29sZWFuIH0gPSB7fVxuICApOiBNIHtcbiAgICBjb25zdCB0eXBlID0gYW5ub3RzPy50eXBlIHx8IHRoaXMudHlwZSgpO1xuICAgIGNvbnN0IE1vZGVsID0gdGhpcy5hcGkubW9kZWxGb3JUeXBlKHR5cGUpO1xuICAgIHJldHVybiBuZXcgTW9kZWwoZW50aXR5LCB7IHJlc291cmNlOiB0aGlzLCBhbm5vdHMsIHJlc2V0IH0pIGFzIE07XG4gIH1cblxuICAvLyNyZWdpb24gSW5tdXRhYmxlIFJlc291cmNlXG4gIGtleSh2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5jbG9uZSgpO1xuICAgIHZhciBrZXkgPSB0aGlzLnJlc29sdmVLZXkodmFsdWUpO1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkgZW50aXR5LnNlZ21lbnQuZW50aXR5U2V0KCkua2V5KGtleSk7XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIGtleXModmFsdWVzOiBhbnlbXSkge1xuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuY2xvbmUoKTtcbiAgICBjb25zdCB0eXBlcyA9IHRoaXMucGF0aFNlZ21lbnRzLnR5cGVzKHsga2V5OiB0cnVlIH0pO1xuICAgIGNvbnN0IGtleXMgPSB2YWx1ZXMubWFwKCh2YWx1ZSwgaW5kZXgpID0+XG4gICAgICBPRGF0YVJlc291cmNlLnJlc29sdmVLZXkoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICB0aGlzLmFwaS5maW5kU3RydWN0dXJlZFR5cGVGb3JUeXBlPFQ+KHR5cGVzW2luZGV4XSlcbiAgICAgIClcbiAgICApO1xuICAgIGVudGl0eS5zZWdtZW50LmtleXMoa2V5cyk7XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIG1lZGlhKCkge1xuICAgIHJldHVybiBPRGF0YU1lZGlhUmVzb3VyY2UuZmFjdG9yeTxUPihcbiAgICAgIHRoaXMuYXBpLFxuICAgICAgdGhpcy5jbG9uZVNlZ21lbnRzKCksXG4gICAgICB0aGlzLmNsb25lUXVlcnkoKVxuICAgICk7XG4gIH1cblxuICBuYXZpZ2F0aW9uUHJvcGVydHk8Tj4ocGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHR5cGUgPSB0aGlzLnR5cGUoKTtcbiAgICBpZiAodHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgcGFyc2VyID0gdGhpcy5hcGkucGFyc2VyRm9yVHlwZTxOPih0eXBlKTtcbiAgICAgIHR5cGUgPVxuICAgICAgICBwYXJzZXIgaW5zdGFuY2VvZiBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyXG4gICAgICAgICAgPyBwYXJzZXIudHlwZUZvcihwYXRoKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gT0RhdGFOYXZpZ2F0aW9uUHJvcGVydHlSZXNvdXJjZS5mYWN0b3J5PE4+KFxuICAgICAgdGhpcy5hcGksXG4gICAgICBwYXRoLFxuICAgICAgdHlwZSxcbiAgICAgIHRoaXMuY2xvbmVTZWdtZW50cygpLFxuICAgICAgdGhpcy5jbG9uZVF1ZXJ5KClcbiAgICApO1xuICB9XG5cbiAgcHJvcGVydHk8UD4ocGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHR5cGUgPSB0aGlzLnR5cGUoKTtcbiAgICBpZiAodHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgcGFyc2VyID0gdGhpcy5hcGkucGFyc2VyRm9yVHlwZTxQPih0eXBlKTtcbiAgICAgIHR5cGUgPVxuICAgICAgICBwYXJzZXIgaW5zdGFuY2VvZiBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyXG4gICAgICAgICAgPyBwYXJzZXIudHlwZUZvcihwYXRoKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gT0RhdGFQcm9wZXJ0eVJlc291cmNlLmZhY3Rvcnk8UD4oXG4gICAgICB0aGlzLmFwaSxcbiAgICAgIHBhdGgsXG4gICAgICB0eXBlLFxuICAgICAgdGhpcy5jbG9uZVNlZ21lbnRzKCksXG4gICAgICB0aGlzLmNsb25lUXVlcnkoKVxuICAgICk7XG4gIH1cblxuICBhY3Rpb248UCwgUj4ocGF0aDogc3RyaW5nKSB7XG4gICAgbGV0IHR5cGU7XG4gICAgY29uc3QgY2FsbGFibGUgPSB0aGlzLmFwaS5maW5kQ2FsbGFibGVGb3JUeXBlKHBhdGgsIHRoaXMudHlwZSgpKTtcbiAgICBpZiAoY2FsbGFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGF0aCA9IGNhbGxhYmxlLnBhdGgoKTtcbiAgICAgIHR5cGUgPSBjYWxsYWJsZS50eXBlKCk7XG4gICAgfVxuICAgIHJldHVybiBPRGF0YUFjdGlvblJlc291cmNlLmZhY3Rvcnk8UCwgUj4oXG4gICAgICB0aGlzLmFwaSxcbiAgICAgIHBhdGgsXG4gICAgICB0eXBlLFxuICAgICAgdGhpcy5jbG9uZVNlZ21lbnRzKCksXG4gICAgICB0aGlzLmNsb25lUXVlcnkoKVxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbjxQLCBSPihwYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgdHlwZTtcbiAgICBjb25zdCBjYWxsYWJsZSA9IHRoaXMuYXBpLmZpbmRDYWxsYWJsZUZvclR5cGUocGF0aCwgdGhpcy50eXBlKCkpO1xuICAgIGlmIChjYWxsYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXRoID0gY2FsbGFibGUucGF0aCgpO1xuICAgICAgdHlwZSA9IGNhbGxhYmxlLnR5cGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIE9EYXRhRnVuY3Rpb25SZXNvdXJjZS5mYWN0b3J5PFAsIFI+KFxuICAgICAgdGhpcy5hcGksXG4gICAgICBwYXRoLFxuICAgICAgdHlwZSxcbiAgICAgIHRoaXMuY2xvbmVTZWdtZW50cygpLFxuICAgICAgdGhpcy5jbG9uZVF1ZXJ5KClcbiAgICApO1xuICB9XG5cbiAgLy9UT0RPOiBDaGVja1xuICBjYXN0PEM+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCBzZWdtZW50cyA9IHRoaXMuY2xvbmVTZWdtZW50cygpO1xuICAgIHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudE5hbWVzLnR5cGUsIHR5cGUpLnR5cGUodHlwZSk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUVudGl0eVJlc291cmNlPEM+KHRoaXMuYXBpLCBzZWdtZW50cywgdGhpcy5jbG9uZVF1ZXJ5KCkpO1xuICB9XG5cbiAgc2VsZWN0KG9wdHM6IFNlbGVjdDxUPikge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpO1xuICAgIGNsb25lLnF1ZXJ5LnNlbGVjdChvcHRzKTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBleHBhbmQob3B0czogRXhwYW5kPFQ+KSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgY2xvbmUucXVlcnkuZXhwYW5kKG9wdHMpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIGZvcm1hdChvcHRzOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjbG9uZSA9IHRoaXMuY2xvbmUoKTtcbiAgICBjbG9uZS5xdWVyeS5mb3JtYXQob3B0cyk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBNdXRhYmxlIFJlc291cmNlXG4gIGdldCBzZWdtZW50KCkge1xuICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5wYXRoU2VnbWVudHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudGl0eVNldCgpIHtcbiAgICAgICAgcmV0dXJuIHNlZ21lbnRzLmdldChQYXRoU2VnbWVudE5hbWVzLmVudGl0eVNldCk7XG4gICAgICB9LFxuICAgICAga2V5cyh2YWx1ZXM/OiAoRW50aXR5S2V5PFQ+IHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgICAgIHJldHVybiBzZWdtZW50cy5rZXlzKHZhbHVlcyk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5UXVlcnlIYW5kbGVyKCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFJlcXVlc3RzXG4gIGdldChcbiAgICBvcHRpb25zOiBIdHRwT3B0aW9ucyAmIHtcbiAgICAgIGV0YWc/OiBzdHJpbmc7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25OYW1lc1tdO1xuICAgIH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPE9EYXRhRW50aXR5PFQ+PiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCh7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwb3N0KFxuICAgIGF0dHJzOiBQYXJ0aWFsPFQ+LFxuICAgIG9wdGlvbnM6IEh0dHBPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwdXQoXG4gICAgYXR0cnM6IFBhcnRpYWw8VD4sXG4gICAgb3B0aW9uczogSHR0cE9wdGlvbnMgJiB7IGV0YWc/OiBzdHJpbmcgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KGF0dHJzLCB7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwYXRjaChcbiAgICBhdHRyczogUGFydGlhbDxUPixcbiAgICBvcHRpb25zOiBIdHRwT3B0aW9ucyAmIHsgZXRhZz86IHN0cmluZyB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxUPj4ge1xuICAgIHJldHVybiBzdXBlci5wYXRjaChhdHRycywgeyByZXNwb25zZVR5cGU6ICdlbnRpdHknLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgZGVsZXRlKG9wdGlvbnM6IEh0dHBPcHRpb25zICYgeyBldGFnPzogc3RyaW5nIH0gPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZSh7IHJlc3BvbnNlVHlwZTogJ2VudGl0eScsIC4uLm9wdGlvbnMgfSk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuICBmZXRjaChcbiAgICBvcHRpb25zPzogSHR0cE9wdGlvbnMgJiB7XG4gICAgICBldGFnPzogc3RyaW5nO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8VD4+IHtcbiAgICBpZiAoIXRoaXMuaGFzS2V5KCkpIHJldHVybiB0aHJvd0Vycm9yKCdFbnRpdHkgcmVzb3VyY2Ugd2l0aG91dCBrZXknKTtcbiAgICByZXR1cm4gdGhpcy5nZXQob3B0aW9ucyk7XG4gIH1cblxuICBmZXRjaEVudGl0eShcbiAgICBvcHRpb25zPzogSHR0cE9wdGlvbnMgJiB7XG4gICAgICBldGFnPzogc3RyaW5nO1xuICAgICAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgICB9XG4gICk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaChvcHRpb25zKS5waXBlKG1hcCgoeyBlbnRpdHkgfSkgPT4gZW50aXR5KSk7XG4gIH1cblxuICBmZXRjaE1vZGVsKFxuICAgIG9wdGlvbnM/OiBIdHRwT3B0aW9ucyAmIHtcbiAgICAgIGV0YWc/OiBzdHJpbmc7XG4gICAgICBib2R5UXVlcnlPcHRpb25zPzogUXVlcnlPcHRpb25OYW1lc1tdO1xuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTxPRGF0YU1vZGVsPFQ+IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHsgZW50aXR5LCBhbm5vdHMgfSkgPT5cbiAgICAgICAgZW50aXR5ID8gdGhpcy5hc01vZGVsKGVudGl0eSwgeyBhbm5vdHMsIHJlc2V0OiB0cnVlIH0pIDogbnVsbFxuICAgICAgKVxuICAgICk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
@@ -1,166 +0,0 @@
1
- import { __rest } from "tslib";
2
- import { map } from 'rxjs/operators';
3
- import { ODataResource } from '../resource';
4
- import { alias as functionAlias } from '../builder';
5
- import { PathSegmentNames } from '../../types';
6
- export class ODataFunctionResource extends ODataResource {
7
- //#region Factory
8
- static factory(api, path, type, segments, options) {
9
- const segment = segments.add(PathSegmentNames.function, path);
10
- if (type)
11
- segment.type(type);
12
- options.clear();
13
- return new ODataFunctionResource(api, segments, options);
14
- }
15
- //#endregion
16
- returnType() {
17
- var _a, _b;
18
- return (_b = (_a = this.schema()) === null || _a === void 0 ? void 0 : _a.parser.return) === null || _b === void 0 ? void 0 : _b.type;
19
- }
20
- clone() {
21
- return new ODataFunctionResource(this.api, this.cloneSegments(), this.cloneQuery());
22
- }
23
- schema() {
24
- //TODO: Binding Type
25
- let type = this.type();
26
- return type !== undefined
27
- ? this.api.findCallableForType(type)
28
- : undefined;
29
- }
30
- asModel(entity, { annots, reset } = {}) {
31
- let resource;
32
- const type = (annots === null || annots === void 0 ? void 0 : annots.type) || this.returnType();
33
- const Model = this.api.modelForType(type);
34
- let path = annots === null || annots === void 0 ? void 0 : annots.entitySet;
35
- if (path !== undefined) {
36
- resource = this.api.entitySet(path).entity(entity);
37
- resource.query.apply(this.queryOptions.toQueryArguments());
38
- }
39
- return new Model(entity, { resource, annots, reset });
40
- }
41
- asCollection(entities, { annots, reset, } = {}) {
42
- let resource;
43
- const type = (annots === null || annots === void 0 ? void 0 : annots.type) || this.returnType();
44
- const Collection = this.api.collectionForType(type);
45
- let path = annots === null || annots === void 0 ? void 0 : annots.entitySet;
46
- if (path !== undefined) {
47
- resource = this.api.entitySet(path);
48
- resource.query.apply(this.queryOptions.toQueryArguments());
49
- }
50
- return new Collection(entities, { resource, annots, reset });
51
- }
52
- //#region Inmutable Resource
53
- parameters(params, { alias } = {}) {
54
- const segments = this.cloneSegments();
55
- const segment = segments.get(PathSegmentNames.function);
56
- let parameters = params !== null ? this.encode(params) : null;
57
- if (alias && parameters !== null) {
58
- parameters = Object.entries(parameters).reduce((acc, [name, param]) => {
59
- return Object.assign(acc, { [name]: functionAlias(param, name) });
60
- }, {});
61
- }
62
- segment.parameters(parameters);
63
- return new ODataFunctionResource(this.api, segments, this.cloneQuery());
64
- }
65
- select(opts) {
66
- const clone = this.clone();
67
- clone.query.select(opts);
68
- return clone;
69
- }
70
- expand(opts) {
71
- const clone = this.clone();
72
- clone.query.expand(opts);
73
- return clone;
74
- }
75
- transform(opts) {
76
- const clone = this.clone();
77
- clone.query.transform(opts);
78
- return clone;
79
- }
80
- search(opts) {
81
- const clone = this.clone();
82
- clone.query.search(opts);
83
- return clone;
84
- }
85
- filter(opts) {
86
- const clone = this.clone();
87
- clone.query.filter(opts);
88
- return clone;
89
- }
90
- orderBy(opts) {
91
- const clone = this.clone();
92
- clone.query.orderBy(opts);
93
- return clone;
94
- }
95
- format(opts) {
96
- const clone = this.clone();
97
- clone.query.format(opts);
98
- return clone;
99
- }
100
- top(opts) {
101
- const clone = this.clone();
102
- clone.query.top(opts);
103
- return clone;
104
- }
105
- skip(opts) {
106
- const clone = this.clone();
107
- clone.query.skip(opts);
108
- return clone;
109
- }
110
- skiptoken(opts) {
111
- const clone = this.clone();
112
- clone.query.skiptoken(opts);
113
- return clone;
114
- }
115
- //#endregion
116
- //#region Mutable Resource
117
- get segment() {
118
- const segments = this.pathSegments;
119
- return {
120
- entitySet() {
121
- return segments.get(PathSegmentNames.entitySet);
122
- },
123
- singleton() {
124
- return segments.get(PathSegmentNames.singleton);
125
- },
126
- function() {
127
- return segments.get(PathSegmentNames.function);
128
- },
129
- };
130
- }
131
- /**
132
- * Handle query options of the function
133
- * @returns Handler for mutate the query of the function
134
- */
135
- get query() {
136
- return this.entitiesQueryHandler();
137
- }
138
- get(options) {
139
- return super.get(options);
140
- }
141
- call(params, _a = {}) {
142
- var { alias } = _a, options = __rest(_a, ["alias"]);
143
- return this.parameters(params, { alias }).get(options);
144
- }
145
- callProperty(params, _a = {}) {
146
- var { alias } = _a, options = __rest(_a, ["alias"]);
147
- return this.call(params, Object.assign({ responseType: 'property', alias }, options)).pipe(map(({ property }) => property));
148
- }
149
- callEntity(params, _a = {}) {
150
- var { alias } = _a, options = __rest(_a, ["alias"]);
151
- return this.call(params, Object.assign({ responseType: 'entity', alias }, options)).pipe(map(({ entity }) => entity));
152
- }
153
- callModel(params, _a = {}) {
154
- var { alias } = _a, options = __rest(_a, ["alias"]);
155
- return this.call(params, Object.assign({ responseType: 'entity', alias }, options)).pipe(map(({ entity, annots }) => entity ? this.asModel(entity, { annots, reset: true }) : null));
156
- }
157
- callEntities(params, _a = {}) {
158
- var { alias } = _a, options = __rest(_a, ["alias"]);
159
- return this.call(params, Object.assign({ responseType: 'entities', alias }, options)).pipe(map(({ entities }) => entities));
160
- }
161
- callCollection(params, _a = {}) {
162
- var { alias } = _a, options = __rest(_a, ["alias"]);
163
- return this.call(params, Object.assign({ responseType: 'entities', alias }, options)).pipe(map(({ entities, annots }) => entities ? this.asCollection(entities, { annots, reset: true }) : null));
164
- }
165
- }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUEwQnJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssSUFBSSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLE1BQU0sT0FBTyxxQkFBNEIsU0FBUSxhQUFnQjtJQUMvRCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsSUFBWSxFQUNaLElBQXdCLEVBQ3hCLFFBQTJCLEVBQzNCLE9BQTBCO1FBRTFCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksSUFBSTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBTyxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxZQUFZO0lBRVosVUFBVTs7UUFDUixPQUFPLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSxFQUFFLDBDQUFFLE1BQU0sQ0FBQyxNQUFNLDBDQUFFLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBQ0QsS0FBSztRQUNILE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQ3BCLElB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QUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGNBQWMsQ0FDWixNQUFnQixFQUNoQixLQUEyRCxFQUFFO1lBQTdELEVBQUUsS0FBSyxPQUFzRCxFQUFqRCxPQUFPLGNBQW5CLFNBQXFCLENBQUY7UUFFbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sa0JBQ3JCLFlBQVksRUFBRSxVQUFVLEVBQ3hCLEtBQUssSUFDRixPQUFPLEVBQ1YsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUMzQixRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoLXNlZ21lbnRzJztcbmltcG9ydCB7IE9EYXRhUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vcXVlcnktb3B0aW9ucyc7XG5pbXBvcnQge1xuICBIdHRwRW50aXR5T3B0aW9ucyxcbiAgSHR0cEVudGl0aWVzT3B0aW9ucyxcbiAgSHR0cFByb3BlcnR5T3B0aW9ucyxcbiAgSHR0cE9wdGlvbnMsXG4gIEh0dHBOb25lT3B0aW9ucyxcbn0gZnJvbSAnLi9vcHRpb25zJztcblxuaW1wb3J0IHtcbiAgT0RhdGFFbnRpdHksXG4gIE9EYXRhRW50aXRpZXMsXG4gIE9EYXRhUHJvcGVydHksXG4gIE9EYXRhRW50aXR5QW5ub3RhdGlvbnMsXG4gIE9EYXRhRW50aXRpZXNBbm5vdGF0aW9ucyxcbn0gZnJvbSAnLi4vcmVzcG9uc2VzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb2xsZWN0aW9uJztcbmltcG9ydCB7IE9EYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbW9kZWwnO1xuaW1wb3J0IHsgRXhwYW5kLCBGaWx0ZXIsIE9yZGVyQnksIFNlbGVjdCwgVHJhbnNmb3JtIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNldFJlc291cmNlIH0gZnJvbSAnLi9lbnRpdHktc2V0JztcbmltcG9ydCB7IE9EYXRhRW50aXR5UmVzb3VyY2UgfSBmcm9tICcuL2VudGl0eSc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlIH0gZnJvbSAnLi4vLi4vc2NoZW1hJztcbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBhbGlhcyBhcyBmdW5jdGlvbkFsaWFzIH0gZnJvbSAnLi4vYnVpbGRlcic7XG5pbXBvcnQgeyBQYXRoU2VnbWVudE5hbWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFGdW5jdGlvblJlc291cmNlPFAsIFI+IGV4dGVuZHMgT0RhdGFSZXNvdXJjZTxSPiB7XG4gIC8vI3JlZ2lvbiBGYWN0b3J5XG4gIHN0YXRpYyBmYWN0b3J5PFAsIFI+KFxuICAgIGFwaTogT0RhdGFBcGksXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBzZWdtZW50czogT0RhdGFQYXRoU2VnbWVudHMsXG4gICAgb3B0aW9uczogT0RhdGFRdWVyeU9wdGlvbnNcbiAgKSB7XG4gICAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudE5hbWVzLmZ1bmN0aW9uLCBwYXRoKTtcbiAgICBpZiAodHlwZSkgc2VnbWVudC50eXBlKHR5cGUpO1xuICAgIG9wdGlvbnMuY2xlYXIoKTtcbiAgICByZXR1cm4gbmV3IE9EYXRhRnVuY3Rpb25SZXNvdXJjZTxQLCBSPihhcGksIHNlZ21lbnRzLCBvcHRpb25zKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICByZXR1cm5UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYSgpPy5wYXJzZXIucmV0dXJuPy50eXBlO1xuICB9XG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgT0RhdGFGdW5jdGlvblJlc291cmNlPFAsIFI+KFxuICAgICAgdGhpcy5hcGksXG4gICAgICB0aGlzLmNsb25lU2VnbWVudHMoKSxcbiAgICAgIHRoaXMuY2xvbmVRdWVyeSgpXG4gICAgKTtcbiAgfVxuXG4gIHNjaGVtYSgpIHtcbiAgICAvL1RPRE86IEJpbmRpbmcgVHlwZVxuICAgIGxldCB0eXBlID0gdGhpcy50eXBlKCk7XG4gICAgcmV0dXJuIHR5cGUgIT09IHVuZGVmaW5lZFxuICAgICAgPyB0aGlzLmFwaS5maW5kQ2FsbGFibGVGb3JUeXBlPFI+KHR5cGUpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuICBhc01vZGVsPE0gZXh0ZW5kcyBPRGF0YU1vZGVsPFI+PihcbiAgICBlbnRpdHk6IFBhcnRpYWw8Uj4gfCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSxcbiAgICB7IGFubm90cywgcmVzZXQgfTogeyBhbm5vdHM/OiBPRGF0YUVudGl0eUFubm90YXRpb25zOyByZXNldD86IGJvb2xlYW4gfSA9IHt9XG4gICk6IE0ge1xuICAgIGxldCByZXNvdXJjZTogT0RhdGFFbnRpdHlSZXNvdXJjZTxSPiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0eXBlID0gYW5ub3RzPy50eXBlIHx8IHRoaXMucmV0dXJuVHlwZSgpO1xuICAgIGNvbnN0IE1vZGVsID0gdGhpcy5hcGkubW9kZWxGb3JUeXBlKHR5cGUpO1xuICAgIGxldCBwYXRoID0gYW5ub3RzPy5lbnRpdHlTZXQ7XG4gICAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzb3VyY2UgPSB0aGlzLmFwaS5lbnRpdHlTZXQ8Uj4ocGF0aCkuZW50aXR5KGVudGl0eSBhcyBQYXJ0aWFsPFI+KTtcbiAgICAgIHJlc291cmNlLnF1ZXJ5LmFwcGx5KHRoaXMucXVlcnlPcHRpb25zLnRvUXVlcnlBcmd1bWVudHMoKSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgTW9kZWwoZW50aXR5LCB7IHJlc291cmNlLCBhbm5vdHMsIHJlc2V0IH0pIGFzIE07XG4gIH1cblxuICBhc0NvbGxlY3Rpb248TSBleHRlbmRzIE9EYXRhTW9kZWw8Uj4sIEMgZXh0ZW5kcyBPRGF0YUNvbGxlY3Rpb248UiwgTT4+KFxuICAgIGVudGl0aWVzOiBQYXJ0aWFsPFI+W10gfCB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVtdLFxuICAgIHtcbiAgICAgIGFubm90cyxcbiAgICAgIHJlc2V0LFxuICAgIH06IHsgYW5ub3RzPzogT0RhdGFFbnRpdGllc0Fubm90YXRpb25zOyByZXNldD86IGJvb2xlYW4gfSA9IHt9XG4gICk6IEMge1xuICAgIGxldCByZXNvdXJjZTogT0RhdGFFbnRpdHlTZXRSZXNvdXJjZTxSPiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0eXBlID0gYW5ub3RzPy50eXBlIHx8IHRoaXMucmV0dXJuVHlwZSgpO1xuICAgIGNvbnN0IENvbGxlY3Rpb24gPSB0aGlzLmFwaS5jb2xsZWN0aW9uRm9yVHlwZSh0eXBlKTtcbiAgICBsZXQgcGF0aCA9IGFubm90cz8uZW50aXR5U2V0O1xuICAgIGlmIChwYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc291cmNlID0gdGhpcy5hcGkuZW50aXR5U2V0PFI+KHBhdGgpO1xuICAgICAgcmVzb3VyY2UucXVlcnkuYXBwbHkodGhpcy5xdWVyeU9wdGlvbnMudG9RdWVyeUFyZ3VtZW50cygpKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKGVudGl0aWVzLCB7IHJlc291cmNlLCBhbm5vdHMsIHJlc2V0IH0pIGFzIEM7XG4gIH1cblxuICAvLyNyZWdpb24gSW5tdXRhYmxlIFJlc291cmNlXG4gIHBhcmFtZXRlcnMocGFyYW1zOiBQIHwgbnVsbCwgeyBhbGlhcyB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMuY2xvbmVTZWdtZW50cygpO1xuICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50cy5nZXQoUGF0aFNlZ21lbnROYW1lcy5mdW5jdGlvbik7XG4gICAgbGV0IHBhcmFtZXRlcnMgPSBwYXJhbXMgIT09IG51bGwgPyB0aGlzLmVuY29kZShwYXJhbXMpIDogbnVsbDtcbiAgICBpZiAoYWxpYXMgJiYgcGFyYW1ldGVycyAhPT0gbnVsbCkge1xuICAgICAgcGFyYW1ldGVycyA9IE9iamVjdC5lbnRyaWVzKHBhcmFtZXRlcnMpLnJlZHVjZSgoYWNjLCBbbmFtZSwgcGFyYW1dKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGFjYywgeyBbbmFtZV06IGZ1bmN0aW9uQWxpYXMocGFyYW0sIG5hbWUpIH0pO1xuICAgICAgfSwge30pO1xuICAgIH1cbiAgICBzZWdtZW50LnBhcmFtZXRlcnMocGFyYW1ldGVycyk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YUZ1bmN0aW9uUmVzb3VyY2U8UCwgUj4oXG4gICAgICB0aGlzLmFwaSxcbiAgICAgIHNlZ21lbnRzLFxuICAgICAgdGhpcy5jbG9uZVF1ZXJ5KClcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0KG9wdHM6IFNlbGVjdDxSPikge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpO1xuICAgIGNsb25lLnF1ZXJ5LnNlbGVjdChvcHRzKTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBleHBhbmQob3B0czogRXhwYW5kPFI+KSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgY2xvbmUucXVlcnkuZXhwYW5kKG9wdHMpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIHRyYW5zZm9ybShvcHRzOiBUcmFuc2Zvcm08Uj4pIHtcbiAgICBjb25zdCBjbG9uZSA9IHRoaXMuY2xvbmUoKTtcbiAgICBjbG9uZS5xdWVyeS50cmFuc2Zvcm0ob3B0cyk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgc2VhcmNoKG9wdHM6IHN0cmluZykge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpO1xuICAgIGNsb25lLnF1ZXJ5LnNlYXJjaChvcHRzKTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBmaWx0ZXIob3B0czogRmlsdGVyKSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgY2xvbmUucXVlcnkuZmlsdGVyKG9wdHMpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIG9yZGVyQnkob3B0czogT3JkZXJCeTxSPikge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpO1xuICAgIGNsb25lLnF1ZXJ5Lm9yZGVyQnkob3B0cyk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgZm9ybWF0KG9wdHM6IHN0cmluZykge1xuICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpO1xuICAgIGNsb25lLnF1ZXJ5LmZvcm1hdChvcHRzKTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICB0b3Aob3B0czogbnVtYmVyKSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgY2xvbmUucXVlcnkudG9wKG9wdHMpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIHNraXAob3B0czogbnVtYmVyKSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgY2xvbmUucXVlcnkuc2tpcChvcHRzKTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH1cblxuICBza2lwdG9rZW4ob3B0czogc3RyaW5nKSB7XG4gICAgY29uc3QgY2xvbmUgPSB0aGlzLmNsb25lKCk7XG4gICAgY2xvbmUucXVlcnkuc2tpcHRva2VuKG9wdHMpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTXV0YWJsZSBSZXNvdXJjZVxuICBnZXQgc2VnbWVudCgpIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IHRoaXMucGF0aFNlZ21lbnRzO1xuICAgIHJldHVybiB7XG4gICAgICBlbnRpdHlTZXQoKSB7XG4gICAgICAgIHJldHVybiBzZWdtZW50cy5nZXQoUGF0aFNlZ21lbnROYW1lcy5lbnRpdHlTZXQpO1xuICAgICAgfSxcbiAgICAgIHNpbmdsZXRvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlZ21lbnRzLmdldChQYXRoU2VnbWVudE5hbWVzLnNpbmdsZXRvbik7XG4gICAgICB9LFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZWdtZW50cy5nZXQoUGF0aFNlZ21lbnROYW1lcy5mdW5jdGlvbik7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHF1ZXJ5IG9wdGlvbnMgb2YgdGhlIGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIEhhbmRsZXIgZm9yIG11dGF0ZSB0aGUgcXVlcnkgb2YgdGhlIGZ1bmN0aW9uXG4gICAqL1xuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXNRdWVyeUhhbmRsZXIoKTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gUmVxdWVzdHNcbiAgZ2V0KG9wdGlvbnM/OiBIdHRwRW50aXR5T3B0aW9ucyk6IE9ic2VydmFibGU8T0RhdGFFbnRpdHk8Uj4+O1xuICBnZXQob3B0aW9ucz86IEh0dHBFbnRpdGllc09wdGlvbnMpOiBPYnNlcnZhYmxlPE9EYXRhRW50aXRpZXM8Uj4+O1xuICBnZXQob3B0aW9ucz86IEh0dHBQcm9wZXJ0eU9wdGlvbnMpOiBPYnNlcnZhYmxlPE9EYXRhUHJvcGVydHk8Uj4+O1xuICBnZXQoXG4gICAgb3B0aW9ucz86IEh0dHBFbnRpdHlPcHRpb25zICYgSHR0cEVudGl0aWVzT3B0aW9ucyAmIEh0dHBQcm9wZXJ0eU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KG9wdGlvbnMpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG9ydGN1dHNcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiB7IGFsaWFzPzogYm9vbGVhbiB9ICYgSHR0cEVudGl0eU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0eTxSPj47XG4gIGNhbGwoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICBvcHRpb25zPzogeyBhbGlhcz86IGJvb2xlYW4gfSAmIEh0dHBFbnRpdGllc09wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPRGF0YUVudGl0aWVzPFI+PjtcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIG9wdGlvbnM/OiB7IGFsaWFzPzogYm9vbGVhbiB9ICYgSHR0cFByb3BlcnR5T3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPE9EYXRhUHJvcGVydHk8Uj4+O1xuICBjYWxsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgb3B0aW9ucz86IHsgYWxpYXM/OiBib29sZWFuIH0gJiBIdHRwTm9uZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxudWxsPjtcbiAgY2FsbChcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIHtcbiAgICAgIGFsaWFzLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH06IHsgYWxpYXM/OiBib29sZWFuIH0gJiBIdHRwRW50aXR5T3B0aW9ucyAmXG4gICAgICBIdHRwRW50aXRpZXNPcHRpb25zICZcbiAgICAgIEh0dHBQcm9wZXJ0eU9wdGlvbnMgJlxuICAgICAgSHR0cE5vbmVPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzKHBhcmFtcywgeyBhbGlhcyB9KS5nZXQob3B0aW9ucyk7XG4gIH1cblxuICBjYWxsUHJvcGVydHkoXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICB7IGFsaWFzLCAuLi5vcHRpb25zIH06IHsgYWxpYXM/OiBib29sZWFuIH0gJiBIdHRwT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8UiB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsKHBhcmFtcywge1xuICAgICAgcmVzcG9uc2VUeXBlOiAncHJvcGVydHknLFxuICAgICAgYWxpYXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pLnBpcGUobWFwKCh7IHByb3BlcnR5IH0pID0+IHByb3BlcnR5KSk7XG4gIH1cblxuICBjYWxsRW50aXR5KFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgeyBhbGlhcywgLi4ub3B0aW9ucyB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ICYgSHR0cE9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPFIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2VudGl0eScsXG4gICAgICBhbGlhcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSkucGlwZShtYXAoKHsgZW50aXR5IH0pID0+IGVudGl0eSkpO1xuICB9XG5cbiAgY2FsbE1vZGVsKFxuICAgIHBhcmFtczogUCB8IG51bGwsXG4gICAgeyBhbGlhcywgLi4ub3B0aW9ucyB9OiB7IGFsaWFzPzogYm9vbGVhbiB9ICYgSHR0cE9wdGlvbnMgPSB7fVxuICApOiBPYnNlcnZhYmxlPE9EYXRhTW9kZWw8Uj4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2VudGl0eScsXG4gICAgICBhbGlhcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdHksIGFubm90cyB9KSA9PlxuICAgICAgICBlbnRpdHkgPyB0aGlzLmFzTW9kZWwoZW50aXR5LCB7IGFubm90cywgcmVzZXQ6IHRydWUgfSkgOiBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNhbGxFbnRpdGllcyhcbiAgICBwYXJhbXM6IFAgfCBudWxsLFxuICAgIHsgYWxpYXMsIC4uLm9wdGlvbnMgfTogeyBhbGlhcz86IGJvb2xlYW4gfSAmIEh0dHBPcHRpb25zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxSW10gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbChwYXJhbXMsIHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2VudGl0aWVzJyxcbiAgICAgIGFsaWFzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KS5waXBlKG1hcCgoeyBlbnRpdGllcyB9KSA9PiBlbnRpdGllcykpO1xuICB9XG5cbiAgY2FsbENvbGxlY3Rpb24oXG4gICAgcGFyYW1zOiBQIHwgbnVsbCxcbiAgICB7IGFsaWFzLCAuLi5vcHRpb25zIH06IHsgYWxpYXM/OiBib29sZWFuIH0gJiBIdHRwT3B0aW9ucyA9IHt9XG4gICk6IE9ic2VydmFibGU8T0RhdGFDb2xsZWN0aW9uPFIsIE9EYXRhTW9kZWw8Uj4+IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNhbGwocGFyYW1zLCB7XG4gICAgICByZXNwb25zZVR5cGU6ICdlbnRpdGllcycsXG4gICAgICBhbGlhcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyBlbnRpdGllcywgYW5ub3RzIH0pID0+XG4gICAgICAgIGVudGl0aWVzID8gdGhpcy5hc0NvbGxlY3Rpb24oZW50aXRpZXMsIHsgYW5ub3RzLCByZXNldDogdHJ1ZSB9KSA6IG51bGxcbiAgICAgIClcbiAgICApO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
@@ -1,46 +0,0 @@
1
- import { ODataResource } from '../resource';
2
- import { $VALUE } from '../../constants';
3
- import { Http } from '../../utils';
4
- import { PathSegmentNames } from '../../types';
5
- export class ODataMediaResource extends ODataResource {
6
- //#region Factory
7
- static factory(api, segments, options) {
8
- const segment = segments.add(PathSegmentNames.value, $VALUE);
9
- return new ODataMediaResource(api, segments, options);
10
- }
11
- //#endregion
12
- clone() {
13
- return new ODataMediaResource(this.api, this.cloneSegments(), this.cloneQuery());
14
- }
15
- schema() {
16
- return undefined;
17
- }
18
- get(options) {
19
- return super.get(options);
20
- }
21
- put(data, options = {}) {
22
- return super.put(data, options);
23
- }
24
- fetch(options) {
25
- return this.get(options);
26
- }
27
- fetchArraybuffer(options = {}) {
28
- return this.fetch(Object.assign({ responseType: 'arraybuffer' }, options));
29
- }
30
- fetchBlob(options = {}) {
31
- return this.fetch(Object.assign({ responseType: 'blob' }, options));
32
- }
33
- upload(data, options = {}) {
34
- return this.put(data, options);
35
- }
36
- uploadArrayBuffer(data, contentType, options = {}) {
37
- options.headers = Http.mergeHttpHeaders(options.headers || {}, {
38
- 'Content-Type': contentType,
39
- });
40
- return this.upload(data, options);
41
- }
42
- uploadBlob(data, options = {}) {
43
- return this.upload(data, options);
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL21lZGlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLE1BQU0sT0FBTyxrQkFBc0IsU0FBUSxhQUFnQjtJQUN6RCxpQkFBaUI7SUFDakIsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFhLEVBQ2IsUUFBMkIsRUFDM0IsT0FBMEI7UUFFMUIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLGtCQUFrQixDQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELFlBQVk7SUFFWixLQUFLO1FBQ0gsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBT0QsR0FBRyxDQUFDLE9BQTRDO1FBQzlDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsR0FBRyxDQUNELElBQXdCLEVBQ3hCLFVBQTJDLEVBQUU7UUFFN0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBUUQsS0FBSyxDQUFDLE9BQTRDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBdUIsRUFBRTtRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLGlCQUFHLFlBQVksRUFBRSxhQUFhLElBQUssT0FBTyxFQUFHLENBQUM7SUFDakUsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUF1QixFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssaUJBQUcsWUFBWSxFQUFFLE1BQU0sSUFBSyxPQUFPLEVBQUcsQ0FBQztJQUMxRCxDQUFDO0lBRUQsTUFBTSxDQUNKLElBQXdCLEVBQ3hCLFVBQTJDLEVBQUU7UUFFN0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsaUJBQWlCLENBQ2YsSUFBaUIsRUFDakIsV0FBbUIsRUFDbkIsVUFBMkMsRUFBRTtRQUU3QyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtZQUM3RCxjQUFjLEVBQUUsV0FBVztTQUM1QixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxVQUFVLENBQ1IsSUFBVSxFQUNWLFVBQTJDLEVBQUU7UUFFN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE9EYXRhUmVzb3VyY2UgfSBmcm9tICcuLi9yZXNvdXJjZSc7XG5pbXBvcnQgeyBPRGF0YVBhdGhTZWdtZW50cyB9IGZyb20gJy4uL3BhdGgtc2VnbWVudHMnO1xuaW1wb3J0IHsgT0RhdGFRdWVyeU9wdGlvbnMgfSBmcm9tICcuLi9xdWVyeS1vcHRpb25zJztcbmltcG9ydCB7IEh0dHBPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7ICRWQUxVRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBIdHRwIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUGF0aFNlZ21lbnROYW1lcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhTWVkaWFSZXNvdXJjZTxUPiBleHRlbmRzIE9EYXRhUmVzb3VyY2U8VD4ge1xuICAvLyNyZWdpb24gRmFjdG9yeVxuICBzdGF0aWMgZmFjdG9yeTxWPihcbiAgICBhcGk6IE9EYXRhQXBpLFxuICAgIHNlZ21lbnRzOiBPRGF0YVBhdGhTZWdtZW50cyxcbiAgICBvcHRpb25zOiBPRGF0YVF1ZXJ5T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHMuYWRkKFBhdGhTZWdtZW50TmFtZXMudmFsdWUsICRWQUxVRSk7XG4gICAgcmV0dXJuIG5ldyBPRGF0YU1lZGlhUmVzb3VyY2U8Vj4oYXBpLCBzZWdtZW50cywgb3B0aW9ucyk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBPRGF0YU1lZGlhUmVzb3VyY2U8VD4oXG4gICAgICB0aGlzLmFwaSxcbiAgICAgIHRoaXMuY2xvbmVTZWdtZW50cygpLFxuICAgICAgdGhpcy5jbG9uZVF1ZXJ5KClcbiAgICApO1xuICB9XG5cbiAgc2NoZW1hKCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyNyZWdpb24gUmVxdWVzdHNcbiAgZ2V0KFxuICAgIG9wdGlvbnM/OiB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyB9ICYgSHR0cE9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcj47XG4gIGdldChvcHRpb25zPzogeyByZXNwb25zZVR5cGU6ICdibG9iJyB9ICYgSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPEJsb2I+O1xuICBnZXQob3B0aW9uczogeyByZXNwb25zZVR5cGU6IGFueSB9ICYgSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5nZXQob3B0aW9ucyk7XG4gIH1cblxuICBwdXQoXG4gICAgZGF0YTogQXJyYXlCdWZmZXIgfCBCbG9iLFxuICAgIG9wdGlvbnM6IEh0dHBPcHRpb25zICYgeyBldGFnPzogc3RyaW5nIH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQoZGF0YSwgb3B0aW9ucyk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFNob3J0Y3V0c1xuICBmZXRjaChcbiAgICBvcHRpb25zPzogeyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfSAmIEh0dHBPcHRpb25zXG4gICk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+O1xuICBmZXRjaChvcHRpb25zPzogeyByZXNwb25zZVR5cGU6ICdibG9iJyB9ICYgSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPEJsb2I+O1xuICBmZXRjaChvcHRpb25zOiB7IHJlc3BvbnNlVHlwZTogYW55IH0gJiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KG9wdGlvbnMpO1xuICB9XG5cbiAgZmV0Y2hBcnJheWJ1ZmZlcihvcHRpb25zOiBIdHRwT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcj4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKHsgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgZmV0Y2hCbG9iKG9wdGlvbnM6IEh0dHBPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaCh7IHJlc3BvbnNlVHlwZTogJ2Jsb2InLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgdXBsb2FkKFxuICAgIGRhdGE6IEFycmF5QnVmZmVyIHwgQmxvYixcbiAgICBvcHRpb25zOiBIdHRwT3B0aW9ucyAmIHsgZXRhZz86IHN0cmluZyB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wdXQoZGF0YSwgb3B0aW9ucyk7XG4gIH1cblxuICB1cGxvYWRBcnJheUJ1ZmZlcihcbiAgICBkYXRhOiBBcnJheUJ1ZmZlcixcbiAgICBjb250ZW50VHlwZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEh0dHBPcHRpb25zICYgeyBldGFnPzogc3RyaW5nIH0gPSB7fVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIG9wdGlvbnMuaGVhZGVycyA9IEh0dHAubWVyZ2VIdHRwSGVhZGVycyhvcHRpb25zLmhlYWRlcnMgfHwge30sIHtcbiAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy51cGxvYWQoZGF0YSwgb3B0aW9ucyk7XG4gIH1cblxuICB1cGxvYWRCbG9iKFxuICAgIGRhdGE6IEJsb2IsXG4gICAgb3B0aW9uczogSHR0cE9wdGlvbnMgJiB7IGV0YWc/OiBzdHJpbmcgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkKGRhdGEsIG9wdGlvbnMpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
@@ -1,36 +0,0 @@
1
- import { map } from 'rxjs/operators';
2
- import { ODataResource } from '../resource';
3
- import { ODataPathSegments } from '../path-segments';
4
- import { ODataMetadata } from '../responses';
5
- import { $METADATA } from '../../constants';
6
- import { PathSegmentNames } from '../../types';
7
- export class ODataMetadataResource extends ODataResource {
8
- constructor(api, segments) {
9
- super(api, segments);
10
- }
11
- clone() {
12
- return new ODataMetadataResource(this.api, this.cloneSegments());
13
- }
14
- schema() {
15
- return undefined;
16
- }
17
- //#region Factory
18
- static factory(api) {
19
- let segments = new ODataPathSegments();
20
- segments.add(PathSegmentNames.metadata, $METADATA);
21
- return new ODataMetadataResource(api, segments);
22
- }
23
- //#endregion
24
- //#region Requests
25
- get(options) {
26
- return super
27
- .get(Object.assign({ responseType: 'text' }, options))
28
- .pipe(map((body) => new ODataMetadata(body)));
29
- }
30
- //#endregion
31
- //#region Shortcuts
32
- fetch(options) {
33
- return this.get(options);
34
- }
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvcmVzb3VyY2VzL3R5cGVzL21ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBa0I7SUFDM0QsWUFBWSxHQUFhLEVBQUUsUUFBNEI7UUFDckQsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELGlCQUFpQjtJQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQWE7UUFDMUIsSUFBSSxRQUFRLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFlBQVk7SUFFWixrQkFBa0I7SUFDbEIsR0FBRyxDQUFDLE9BQXFCO1FBQ3ZCLE9BQU8sS0FBSzthQUNULEdBQUcsaUJBQUcsWUFBWSxFQUFFLE1BQU0sSUFBSyxPQUFPLEVBQUc7YUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxZQUFZO0lBRVosbUJBQW1CO0lBQ25CLEtBQUssQ0FBQyxPQUFxQjtRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBPRGF0YVJlc291cmNlIH0gZnJvbSAnLi4vcmVzb3VyY2UnO1xuaW1wb3J0IHsgT0RhdGFQYXRoU2VnbWVudHMgfSBmcm9tICcuLi9wYXRoLXNlZ21lbnRzJztcbmltcG9ydCB7IEh0dHBPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IE9EYXRhTWV0YWRhdGEgfSBmcm9tICcuLi9yZXNwb25zZXMnO1xuaW1wb3J0IHsgJE1FVEFEQVRBIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9EYXRhQXBpIH0gZnJvbSAnLi4vLi4vYXBpJztcbmltcG9ydCB7IFBhdGhTZWdtZW50TmFtZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YU1ldGFkYXRhUmVzb3VyY2UgZXh0ZW5kcyBPRGF0YVJlc291cmNlPGFueT4ge1xuICBjb25zdHJ1Y3RvcihhcGk6IE9EYXRhQXBpLCBzZWdtZW50cz86IE9EYXRhUGF0aFNlZ21lbnRzKSB7XG4gICAgc3VwZXIoYXBpLCBzZWdtZW50cyk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IE9EYXRhTWV0YWRhdGFSZXNvdXJjZSh0aGlzLmFwaSwgdGhpcy5jbG9uZVNlZ21lbnRzKCkpO1xuICB9XG5cbiAgc2NoZW1hKCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgLy8jcmVnaW9uIEZhY3RvcnlcbiAgc3RhdGljIGZhY3RvcnkoYXBpOiBPRGF0YUFwaSkge1xuICAgIGxldCBzZWdtZW50cyA9IG5ldyBPRGF0YVBhdGhTZWdtZW50cygpO1xuICAgIHNlZ21lbnRzLmFkZChQYXRoU2VnbWVudE5hbWVzLm1ldGFkYXRhLCAkTUVUQURBVEEpO1xuICAgIHJldHVybiBuZXcgT0RhdGFNZXRhZGF0YVJlc291cmNlKGFwaSwgc2VnbWVudHMpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBSZXF1ZXN0c1xuICBnZXQob3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxPRGF0YU1ldGFkYXRhPiB7XG4gICAgcmV0dXJuIHN1cGVyXG4gICAgICAuZ2V0KHsgcmVzcG9uc2VUeXBlOiAndGV4dCcsIC4uLm9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcCgoYm9keTogYW55KSA9PiBuZXcgT0RhdGFNZXRhZGF0YShib2R5KSkpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBTaG9ydGN1dHNcbiAgZmV0Y2gob3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxPRGF0YU1ldGFkYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KG9wdGlvbnMpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19