haya-select 1.0.80 → 1.0.81
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.
- package/build/config.d.ts +3 -1
- package/build/config.d.ts.map +1 -1
- package/build/config.js +20 -4
- package/build/select/index.js +1 -1
- package/build/select/option-group.js +1 -1
- package/build/select/option.js +1 -1
- package/package.json +10 -6
- package/build/config.js.map +0 -1
- package/build/select/index.js.map +0 -1
- package/build/select/option-group.js.map +0 -1
- package/build/select/option.js.map +0 -1
package/build/config.d.ts
CHANGED
package/build/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.js"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.js"],"names":[],"mappings":"oCAGa,MAAY;IAAC,CAAC,EAAE,CAAS,IAAM,EAAN,MAAM,KAAI,MAAM,CAAA;CAAC"}
|
package/build/config.js
CHANGED
|
@@ -1,25 +1,41 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {function(): {t: function(string) : string}} TranslateFunctionType
|
|
4
|
+
*/
|
|
1
5
|
const shared = {};
|
|
2
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @param {string} msgID
|
|
8
|
+
* @returns {string}
|
|
9
|
+
*/
|
|
10
|
+
function t(msgID) {
|
|
3
11
|
if (!shared._translateWarning) {
|
|
4
12
|
shared._translateWarning = true;
|
|
5
13
|
console.log("HayaSelect: Translate method not set");
|
|
6
14
|
}
|
|
7
15
|
return msgID;
|
|
8
|
-
}
|
|
9
|
-
|
|
16
|
+
}
|
|
17
|
+
function useTranslateFallback() {
|
|
18
|
+
return { t };
|
|
19
|
+
}
|
|
10
20
|
class HayaSelectConfiguration {
|
|
21
|
+
/** @type {TranslateFunctionType} */
|
|
11
22
|
_useTranslate = useTranslateFallback;
|
|
12
23
|
getBodyPortal() {
|
|
13
24
|
if (!this._bodyPortal)
|
|
14
25
|
throw new Error("bodyPortal wasn't set");
|
|
15
26
|
return this._bodyPortal;
|
|
16
27
|
}
|
|
28
|
+
/** @returns {TranslateFunctionType} */
|
|
17
29
|
getUseTranslate() {
|
|
18
30
|
return this._useTranslate;
|
|
19
31
|
}
|
|
20
32
|
setBodyPortal(newBodyPortal) {
|
|
21
33
|
this._bodyPortal = newBodyPortal;
|
|
22
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* @param {TranslateFunctionType} callback
|
|
37
|
+
* @returns {void}
|
|
38
|
+
*/
|
|
23
39
|
setUseTranslate(callback) {
|
|
24
40
|
this._useTranslate = callback;
|
|
25
41
|
}
|
|
@@ -28,4 +44,4 @@ if (!globalThis.hayaSelectConfig) {
|
|
|
28
44
|
globalThis.hayaSelectConfig = new HayaSelectConfiguration();
|
|
29
45
|
}
|
|
30
46
|
export default globalThis.hayaSelectConfig;
|
|
31
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7O0dBRUc7QUFFSCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7QUFFakI7OztHQUdHO0FBQ0gsU0FBUyxDQUFDLENBQUMsS0FBSztJQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsU0FBUyxvQkFBb0I7SUFDM0IsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFBO0FBQ1osQ0FBQztBQUVELE1BQU0sdUJBQXVCO0lBQzNCLG9DQUFvQztJQUNwQyxhQUFhLEdBQUcsb0JBQW9CLENBQUE7SUFFcEMsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUUvRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDekIsQ0FBQztJQUVELHVDQUF1QztJQUN2QyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsYUFBYTtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLFFBQVE7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUE7SUFDL0IsQ0FBQztDQUNGO0FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2pDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUE7QUFDN0QsQ0FBQztBQUVELGVBQWUsVUFBVSxDQUFDLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQHR5cGVkZWYge2Z1bmN0aW9uKCk6IHt0OiBmdW5jdGlvbihzdHJpbmcpIDogc3RyaW5nfX0gVHJhbnNsYXRlRnVuY3Rpb25UeXBlXG4gKi9cblxuY29uc3Qgc2hhcmVkID0ge31cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbXNnSURcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHQobXNnSUQpIHtcbiAgaWYgKCFzaGFyZWQuX3RyYW5zbGF0ZVdhcm5pbmcpIHtcbiAgICBzaGFyZWQuX3RyYW5zbGF0ZVdhcm5pbmcgPSB0cnVlXG4gICAgY29uc29sZS5sb2coXCJIYXlhU2VsZWN0OiBUcmFuc2xhdGUgbWV0aG9kIG5vdCBzZXRcIilcbiAgfVxuXG4gIHJldHVybiBtc2dJRFxufVxuXG5mdW5jdGlvbiB1c2VUcmFuc2xhdGVGYWxsYmFjaygpIHtcbiAgcmV0dXJuIHt0fVxufVxuXG5jbGFzcyBIYXlhU2VsZWN0Q29uZmlndXJhdGlvbiB7XG4gIC8qKiBAdHlwZSB7VHJhbnNsYXRlRnVuY3Rpb25UeXBlfSAqL1xuICBfdXNlVHJhbnNsYXRlID0gdXNlVHJhbnNsYXRlRmFsbGJhY2tcblxuICBnZXRCb2R5UG9ydGFsKCkge1xuICAgIGlmICghdGhpcy5fYm9keVBvcnRhbCkgdGhyb3cgbmV3IEVycm9yKFwiYm9keVBvcnRhbCB3YXNuJ3Qgc2V0XCIpXG5cbiAgICByZXR1cm4gdGhpcy5fYm9keVBvcnRhbFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtUcmFuc2xhdGVGdW5jdGlvblR5cGV9ICovXG4gIGdldFVzZVRyYW5zbGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdXNlVHJhbnNsYXRlXG4gIH1cblxuICBzZXRCb2R5UG9ydGFsKG5ld0JvZHlQb3J0YWwpIHtcbiAgICB0aGlzLl9ib2R5UG9ydGFsID0gbmV3Qm9keVBvcnRhbFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7VHJhbnNsYXRlRnVuY3Rpb25UeXBlfSBjYWxsYmFja1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNldFVzZVRyYW5zbGF0ZShjYWxsYmFjaykge1xuICAgIHRoaXMuX3VzZVRyYW5zbGF0ZSA9IGNhbGxiYWNrXG4gIH1cbn1cblxuaWYgKCFnbG9iYWxUaGlzLmhheWFTZWxlY3RDb25maWcpIHtcbiAgZ2xvYmFsVGhpcy5oYXlhU2VsZWN0Q29uZmlnID0gbmV3IEhheWFTZWxlY3RDb25maWd1cmF0aW9uKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2xvYmFsVGhpcy5oYXlhU2VsZWN0Q29uZmlnXG4iXX0=
|
package/build/select/index.js
CHANGED
|
@@ -660,4 +660,4 @@ export default memo(shapeComponent(class HayaSelect extends ShapeComponent {
|
|
|
660
660
|
}
|
|
661
661
|
}
|
|
662
662
|
}));
|
|
663
|
-
//# sourceMappingURL=index.js.map
|
|
663
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VsZWN0L2luZGV4LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNwRSxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ25GLE9BQU8sS0FBSyxFQUFFLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN6RixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDL0IsT0FBTyxlQUFlLE1BQU0sdUNBQXVDLENBQUE7QUFDbkUsT0FBTyxjQUFjLE1BQU0sbURBQW1ELENBQUE7QUFDOUUsT0FBTyxnQkFBZ0IsTUFBTSxxREFBcUQsQ0FBQTtBQUNsRixPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDN0IsT0FBTyxXQUFXLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sVUFBVSxNQUFNLDBCQUEwQixDQUFBO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDbkMsT0FBTyxnQkFBZ0IsTUFBTSw4Q0FBOEMsQ0FBQTtBQUMzRSxPQUFPLGVBQWUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUVqRSx3QkFBd0I7QUFDeEIsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFO0lBQ2pELElBQUksSUFBSSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXRDLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBRXBELElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEUsSUFBSSxJQUFJLElBQUksQ0FBQTtJQUNkLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQUVELGVBQWUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLFVBQVcsU0FBUSxjQUFjO0lBQ3hFLE1BQU0sQ0FBQyxZQUFZLEdBQUc7UUFDcEIsUUFBUSxFQUFFLEtBQUs7UUFDZixhQUFhLEVBQUUsSUFBSTtRQUNuQixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxJQUFJO1FBQ2IsZUFBZSxFQUFFLElBQUk7UUFDckIsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsTUFBTSxFQUFFLEtBQUs7UUFDYixXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFBO0lBRUQsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDaEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQzNCLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTTtRQUMzQixjQUFjLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDaEMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDOUIsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDekMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1FBQ2xCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtRQUN2QixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ25DLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtRQUN0QixhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDN0IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1FBQ3RCLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUN4QixhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDN0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJO1FBQ3ZCLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUMvQixPQUFPLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUMxRSxlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQzFDLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7UUFDeEMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQzlCLFdBQVcsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUMzQixNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ2pDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtRQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDekIsYUFBYSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUMvQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQ2pDLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDbEMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtTQUNuQyxDQUFDLENBQUM7UUFDSCxXQUFXLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ3RDLE1BQU0sRUFBRSxTQUFTLENBQUMsS0FBSztLQUN4QixDQUFDLENBQUE7SUFFRix1Q0FBdUMsR0FBRyxLQUFLLENBQUE7SUFDL0MsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQzVDLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUU5QyxLQUFLO1FBQ0gsTUFBTSxFQUFDLENBQUMsRUFBQyxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFBO1FBRXRDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksT0FBTyxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQTtnQkFDekQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNmLGNBQWMsRUFBRSxNQUFNLEVBQUU7WUFDeEIsbUJBQW1CLEVBQUUsTUFBTSxFQUFFO1lBQzdCLGtCQUFrQixFQUFFLE1BQU0sRUFBRTtZQUM1QixrQkFBa0IsRUFBRSxNQUFNLEVBQUU7WUFDNUIsQ0FBQztTQUNGLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ2xELHFCQUFxQixFQUFFLElBQUk7WUFDM0IsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixNQUFNLEVBQUUsSUFBSTtZQUNaLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDaEQsTUFBTSxFQUFFLEtBQUs7WUFDYixzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsVUFBVSxFQUFFLFNBQVM7WUFDckIsaUJBQWlCLEVBQUUsU0FBUztZQUM1QixZQUFZLEVBQUUsU0FBUztZQUN2QixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzdFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDM0UsVUFBVSxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtTQUNyQyxDQUFDLENBQUE7UUFFRixnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNsRSxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFFM0UsSUFBSSxRQUFRLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1lBQ3RFLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFFRCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLHVDQUF1QyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDckYsSUFBSSxDQUFDLHVDQUF1QyxHQUFHLEtBQUssQ0FBQTtnQkFDcEQsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLENBQUE7WUFDL0MsQ0FBQztRQUNILENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUE7UUFFcEYsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFM0YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzNILElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFBO1lBQ2xDLENBQUM7UUFDSCxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLEVBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBQ3hELE1BQU0sRUFBQyxPQUFPLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXhCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFBO1FBRXRDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUNoQyxDQUFDLFlBQVksSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDO1lBQ3JDLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyQyxDQUFBO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUV4QixJQUFJLE9BQU8sT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFFRCxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFBO0lBQ25HLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtJQUM5RSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUgsaUJBQWlCLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN0RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDN0YsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2pDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQTtvQkFFOUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUNqQixXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFBO3dCQUUzRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7NEJBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQ1gseUJBQXlCLEtBQUssMkNBQTJDLEVBQ3pFLEVBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFDLENBQ3pILENBQUE7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO29CQUVELE9BQU8sV0FBVyxDQUFBO2dCQUNwQixDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUM7aUJBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4RSxtQ0FBbUM7WUFDckMsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2hELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQTtJQUM5QixDQUFDLENBQUE7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDdEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUVyRyxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksYUFBYSxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMxSCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsQ0FBQTtRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFFbkIsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO1lBRWpDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDdEQsUUFBUSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUE7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxFQUFDLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUE7UUFDaEMsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDNUIsTUFBTSxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUMxRCxNQUFNLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN6QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLEVBQUUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFL0IsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFO1lBQ3BFLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUNqRCxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtZQUNsRCxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsU0FBUztZQUNqQixVQUFVLEVBQUUsQ0FBQztZQUNiLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSxDQUFDO1NBQ2YsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFFakIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLDhGQUE4RjtZQUM5RiwwQkFBMEIsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFFakQsSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDaEMsMEJBQTBCLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO2dCQUNsRCwwQkFBMEIsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUE7Z0JBQ25ELDBCQUEwQixDQUFDLHVCQUF1QixHQUFHLDBCQUEwQixDQUFDLFlBQVksQ0FBQTtnQkFDNUYsMEJBQTBCLENBQUMsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsWUFBWSxDQUFBO2dCQUUzRixPQUFPLDBCQUEwQixDQUFDLFlBQVksQ0FBQTtZQUNoRCxDQUFDO2lCQUFNLElBQUksZ0JBQWdCLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3ZDLDBCQUEwQixDQUFDLG1CQUFtQixHQUFHLDBCQUEwQixDQUFDLFlBQVksQ0FBQTtnQkFDeEYsMEJBQTBCLENBQUMsb0JBQW9CLEdBQUcsMEJBQTBCLENBQUMsWUFBWSxDQUFBO2dCQUN6RiwwQkFBMEIsQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUE7Z0JBQ3RELDBCQUEwQixDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQTtnQkFFckQsT0FBTywwQkFBMEIsQ0FBQyxZQUFZLENBQUE7WUFDaEQsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLENBQ0wsb0JBQUMsSUFBSSxJQUNILE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFO2dCQUNyQyxLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFLGFBQWE7Z0JBQ3hCLEVBQUU7Z0JBQ0YsTUFBTTtnQkFDTixnQkFBZ0I7Z0JBQ2hCLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO2FBQ2hDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUNyRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFFOUIsb0JBQUMsU0FBUyxJQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLEtBQUssRUFBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUMsRUFDcEUsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLEVBQ3pDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFDaEMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQy9CLEtBQUssRUFBRSwwQkFBMEI7Z0JBRWpDLG9CQUFDLElBQUksSUFDSCxPQUFPLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixLQUFLLEVBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFDLEVBQ3BFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQztvQkFFMUksTUFBTTt3QkFDTCxvQkFBQyxTQUFTLElBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBQyxFQUNyRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQ0FBaUMsRUFDbkQsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEtBQUs7Z0NBQ3RFLEtBQUssRUFBRSxNQUFNO2dDQUNiLE1BQU0sRUFBRSxDQUFDO2dDQUNULE9BQU8sRUFBRSxNQUFNO2dDQUNmLE9BQU8sRUFBRSxDQUFDOzZCQUNYLENBQUMsRUFDRixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQzVCO29CQUVILENBQUMsTUFBTTt3QkFDTjs0QkFDRyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUM7Z0NBQ3pCLG9CQUFDLElBQUksSUFBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxJQUM3RyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUM5Qzs0QkFFUixjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxJQUFJLEtBQUs7Z0NBQ2pELCtCQUNFLEVBQUUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQ3hCLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFDeEMsSUFBSSxFQUFDLFFBQVEsRUFDYixLQUFLLEVBQUMsRUFBRSxHQUNSOzRCQUVILGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUNwQyxvQkFBQyxJQUFJLElBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBQyxFQUNoRSxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsSUFBSSxpQkFBaUIsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUNoRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsRUFBQyxXQUFXLEVBQUUsQ0FBQyxFQUFDLENBQUM7Z0NBRXhELGFBQWEsQ0FBQyxJQUFJLElBQUksT0FBTztvQ0FDNUIsb0JBQUMsSUFBSSxJQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsQ0FBQzt3Q0FDdkcsb0JBQUMsSUFBSSxJQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLElBQ25ELGFBQWEsQ0FBQyxJQUFJLENBQ2QsQ0FDRjtnQ0FFUixhQUFhLENBQUMsSUFBSSxJQUFJLE9BQU87b0NBQzVCO3dDQUNHLFFBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQzs0Q0FDekQsK0JBQ0UsRUFBRSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDeEIsSUFBSSxFQUFFLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUN4QyxJQUFJLEVBQUMsUUFBUSxFQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxHQUNuQzt3Q0FFSCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FDNUMsQ0FFQSxDQUNSLENBQ0EsQ0FFQTtnQkFDUCxvQkFBQyxJQUFJLElBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBQyxFQUN0RSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMscUJBQXFCLEtBQUs7d0JBQ3hFLFVBQVUsRUFBRSxRQUFRO3dCQUNwQixjQUFjLEVBQUUsUUFBUTt3QkFDeEIsTUFBTSxFQUFFLE1BQU07d0JBQ2QsVUFBVSxFQUFFLE1BQU07d0JBQ2xCLFdBQVcsRUFBRSxDQUFDO3FCQUNmLENBQUM7b0JBRUYsb0JBQUMsZUFBZSxJQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDLEdBQUksQ0FDckksQ0FDRztZQUNaLG9CQUFDLElBQUksSUFDSCxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixLQUFLLEVBQUMsS0FBSyxFQUFFLGVBQWUsRUFBQyxFQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFDckMsR0FBRyxFQUFFLGNBQWMsR0FDbkI7WUFDRCxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhO2dCQUM3QixvQkFBQyxNQUFNLFFBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQ2pCO1lBRVYsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhO2dCQUM5QixvQkFBQyxJQUFJLFFBQ0YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQ25CLENBRUosQ0FDUixDQUFBO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUU1RixJQUFJLHdCQUF3QjtZQUFFLE9BQU8sd0JBQXdCLENBQUE7UUFDN0QsSUFBSSxZQUFZO1lBQUUsT0FBTyxZQUFZLENBQUE7UUFDckMsSUFBSSxhQUFhO1lBQUUsT0FBTyxhQUFhLENBQUE7UUFFdkMsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDLENBQUE7WUFFL0csT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQTtRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxvQ0FBb0M7UUFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBRTFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTTtRQUUxQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDOUIsTUFBTSxFQUFFLGFBQWE7U0FDdEIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFFRCxXQUFXLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsTUFBTSxFQUFDLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUE7UUFFckMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ3hELENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFDLFdBQVcsRUFBQyxDQUFDLENBQUE7UUFFbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7SUFDaEMsQ0FBQyxDQUFBO0lBRUQsZ0JBQWdCLENBQUMsRUFBQyxHQUFHLEVBQUUsWUFBWSxFQUFDO1FBQ2xDLElBQUksWUFBWSxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNqQyxPQUFPLG9CQUFDLFdBQVcsSUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEdBQUksQ0FBQTtRQUN4RCxDQUFDO1FBRUQsT0FBTyxDQUNMLG9CQUFDLE1BQU0sSUFDTCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFDbEQsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQ3RDLEdBQUcsRUFBRSxHQUFHLEVBQ1IsTUFBTSxFQUFFLFlBQVksRUFDcEIsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUN4QyxhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEdBQ3BDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsV0FBVztRQUN2QyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQTtRQUNuRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtRQUV0SCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsa0JBQWtCLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUU7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTtJQUNuQyxDQUFDLENBQUE7SUFFRCx1QkFBdUIsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFBO0lBQzVILG1CQUFtQixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7SUFDcEgsd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQTtJQUU5SCxlQUFlLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN0QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDbEIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBRW5CLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRXZCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEIsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELGlDQUFpQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUV0RSxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osYUFBYSxFQUFFLFNBQVM7WUFDeEIsTUFBTSxFQUFFLEtBQUs7WUFDYixzQkFBc0IsRUFBRSxJQUFJO1NBQzdCLENBQUMsQ0FBQTtRQUVGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDakUsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBRWhFLFdBQVc7UUFDVCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQTtRQUM5QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDbEIsSUFBSSxDQUFDLHVDQUF1QyxHQUFHLElBQUksQ0FBQTtRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUNYO1lBQ0UsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTTtZQUMzQyxNQUFNLEVBQUUsSUFBSTtZQUNaLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDN0UsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUMzRSxVQUFVLEVBQUUsRUFBRTtTQUNmLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3ZCLENBQUMsQ0FDRixDQUFBO1FBRUQsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3RDLENBQUM7SUFFRCxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUE7SUFFM0Usa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFNLENBQUMscUNBQXFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFBO1FBQ25ELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRCxzQ0FBc0M7UUFDcEMsTUFBTSxFQUFDLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUE7UUFDOUIsTUFBTSxFQUFDLHNCQUFzQixFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUN2QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQTtRQUMvQyxNQUFNLDBCQUEwQixHQUFHLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUE7UUFDN0UsTUFBTSxzQkFBc0IsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFOUQsSUFBSSxzQkFBc0IsR0FBRywwQkFBMEIsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUE7UUFDL0MsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxFQUFDLGlCQUFpQixFQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUVsQyxJQUFJLENBQUMsUUFBUSxDQUNYO1lBQ0UsTUFBTSxFQUFFLElBQUk7WUFDWixnQkFBZ0IsRUFBRSxPQUFPO1lBQ3pCLGlCQUFpQixFQUFFLFNBQVM7WUFDNUIsWUFBWSxFQUFFLGlCQUFpQixDQUFDLEtBQUs7U0FDdEMsRUFDRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQzVCLENBQUE7SUFDSCxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQ1g7WUFDRSxNQUFNLEVBQUUsSUFBSTtZQUNaLGdCQUFnQixFQUFFLE9BQU87WUFDekIsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO1NBQzdDLEVBQ0QsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUM1QixDQUFBO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixHQUFHLEdBQUcsRUFBRTtRQUN2QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDM0IsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXBFLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtRQUN4QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDWixVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM3RSxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQzVFLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCwyQkFBMkIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUV0RSxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7UUFDM0IsMkVBQTJFO1FBQzNFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELGdCQUFnQjtRQUNkLE1BQU0sRUFBQyxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3JJLElBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQTtRQUViLElBQUksS0FBSyxHQUFHO1lBQ1YsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsaUJBQWlCO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDakQsZUFBZSxFQUFFLE1BQU07WUFDdkIsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixTQUFTLEVBQUUsR0FBRztZQUNkLFNBQVMsRUFBRSxNQUFNO1NBQ2xCLENBQUE7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtZQUNiLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO1FBQ2hCLENBQUM7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtZQUNkLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLENBQUM7YUFBTSxJQUFJLGdCQUFnQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsK0VBQStFO2dCQUMvRSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtnQkFFbEgsMERBQTBEO2dCQUMxRCxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFBO1lBQ25ILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUE7Z0JBQ3BDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUE7WUFDakMsQ0FBQztZQUVELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUNyQixDQUFDO2FBQU0sSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN2QyxJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLCtFQUErRTtnQkFDL0UsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFBO2dCQUVsSCwwREFBMEQ7Z0JBQzFELElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQTtZQUN2SCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQTtnQkFDN0IsR0FBRyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQTtZQUNqQyxDQUFDO1lBRUQsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7WUFDakIsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUNyRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtRQUNuRSxDQUFDO1FBRUQsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBRTlGLE1BQU0sRUFBRSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvQixPQUFPLENBQ0wsb0JBQUMsSUFBSSxJQUNILE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEVBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN0RyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsRUFDMUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQ2hDLEtBQUssRUFBRSxLQUFLO1lBRVgsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDcEIsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLElBQUksaUJBQWlCLFlBQVksQ0FBQyxLQUFLLEVBQUU7Z0JBQzlELFlBQVk7YUFDYixDQUFDLENBQ0g7WUFDQSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7Z0JBQzFCLG9CQUFDLElBQUksSUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixLQUFLLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO29CQUMvRSxvQkFBQyxJQUFJLFFBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBUSxDQUM3RixDQUVKLENBQ1IsQ0FBQTtJQUNILENBQUM7SUFFRCxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUU7UUFDeEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUV2QixNQUFNLEVBQUMsUUFBUSxFQUFFLGFBQWEsRUFBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7UUFDNUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7UUFDekIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNuQixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN4RyxNQUFNLFVBQVUsR0FBRyxFQUFDLEdBQUcsT0FBTyxFQUFDLENBQUE7UUFDL0IsSUFBSSxpQkFBaUIsQ0FBQTtRQUVyQixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2pELE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLENBQUE7Z0JBRXpGLElBQUksWUFBWSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMvQyw4Q0FBOEM7b0JBQzlDLE9BQU8sVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFFckMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3pHLENBQUM7cUJBQU0sQ0FBQztvQkFDTix1Q0FBdUM7b0JBQ3ZDLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUNqRixDQUFDO2dCQUVELFFBQVEsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFBO1lBQy9CLENBQUM7aUJBQU0sQ0FBQztnQkFDTiw4QkFBOEI7Z0JBQzlCLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3pHLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLHNEQUFzRDtZQUN0RCxJQUFJLFlBQVksQ0FBQyxRQUFRO2dCQUFFLE9BQU07WUFFakMsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsbUJBQW1CO2dCQUNuQixVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7Z0JBQ3ZELFFBQVEsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFBO1lBQy9CLENBQUM7WUFFRCxJQUFJLFFBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDOUIsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGlCQUFpQixHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDcEMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlELDZGQUE2RjtRQUMvRixDQUFDO2FBQU0sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQzdCLFFBQVEsQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUE7UUFDN0MsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLGlCQUFpQixJQUFJLGNBQWMsQ0FBQTtRQUVuRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDO2dCQUNQLEtBQUs7Z0JBQ0wsT0FBTztnQkFDUCxPQUFPLEVBQUUsVUFBVTthQUNwQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdCLElBQUksV0FBVyxDQUFBO1lBRWYsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3JELENBQUM7aUJBQU0sQ0FBQztnQkFDTixXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDeEMsQ0FBQztZQUVELElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3pCLENBQUMsQ0FBQTtJQUVELFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUM3QyxJQUFJLGFBQWEsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFFN0QsSUFBSSxPQUFPLGFBQWEsSUFBSSxVQUFVO1lBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7UUFFakcsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBQzVDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFNO1FBQ2xCLE1BQU0sRUFBQyxhQUFhLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFakMsSUFBSSxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMxQyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFBO1lBRXBGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsWUFBWSxFQUFFLENBQUMsQ0FBQTtZQUM3RSxDQUFDO1lBRUQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO1FBQy9CLE1BQU0sRUFBQyxhQUFhLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN2QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLENBQUE7UUFDL0YsSUFBSSxLQUFLLENBQUE7UUFFVCxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN0QixLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRSxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUE7UUFDM0YsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUE7UUFDcEYsQ0FBQztRQUVELE9BQU8sQ0FDTCxvQkFBQyxJQUFJLElBQ0gsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJO2dCQUM5QixXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUs7Z0JBQ2hDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzthQUNwQixFQUNELEtBQUssRUFBRSxJQUFJLENBQUMsdUJBQXVCLEtBQUssRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFDO1lBRTdELGFBQWEsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUM7Z0JBQzFDLG9CQUFDLElBQUksSUFDSCxPQUFPLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixLQUFLLEVBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFDLEVBQ2pGLEtBQUssRUFBRSxJQUFJLENBQUMsMEJBQTBCLEtBQUssRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLEdBQ3REO1lBRUgsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUM7Z0JBQ3pDLG9CQUFDLElBQUksSUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixLQUFLLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUM7b0JBQ3hHLG9CQUFDLGVBQWUsSUFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixLQUFLLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBQyxFQUMxRCxJQUFJLEVBQUUsSUFBSSxHQUNWLENBQ0c7WUFFUixDQUFDLEdBQUcsRUFBRTtnQkFDTCxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUMvQyxPQUFPLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQTtnQkFDaEMsQ0FBQztxQkFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQ3pCLENBQUM7cUJBQU0sSUFBSSxNQUFNLElBQUksTUFBTSxJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ3BELE9BQU8sb0JBQUMsVUFBVSxJQUFDLE1BQU0sRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFDLEdBQUksQ0FBQTtnQkFDN0QsQ0FBQztxQkFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDcEQsT0FBTyw2QkFBSyx1QkFBdUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFDLEdBQUksQ0FBQTtnQkFDekUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FDTCxvQkFBQyxJQUFJLElBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsS0FBSyxFQUFDLEtBQUssRUFBRSwwQkFBMEIsRUFBQyxFQUNuRixLQUFLLEVBQUUsS0FBSyxJQUVYLE1BQU0sQ0FBQyxJQUFJLENBQ1AsQ0FDUixDQUFBO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUNDLENBQ1IsQ0FBQTtJQUNILENBQUMsQ0FBQTtJQUVELEtBQUssQ0FBQyx5QkFBeUI7UUFDN0IsTUFBTSxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLE1BQU0sT0FBTyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQTtRQUM5QyxNQUFNLGFBQWEsR0FBRyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDakYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFdEYsSUFBSSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQTtRQUNqQyxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthbnl0aGluZ0RpZmZlcmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL2RpZmYtdXRpbHNcIlxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vY29uZmlnLmpzXCJcbmltcG9ydCB7ZGlnLCBkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCB7RGltZW5zaW9ucywgUGxhdGZvcm0sIFByZXNzYWJsZSwgVGV4dCwgVGV4dElucHV0LCBWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCBSZWFjdCwge21lbW8sIHVzZUVmZmVjdCwgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudCwgU2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IGRlYm91bmNlIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQgRm9udEF3ZXNvbWVJY29uIGZyb20gXCJyZWFjdC1uYXRpdmUtdmVjdG9yLWljb25zL0ZvbnRBd2Vzb21lXCJcbmltcG9ydCBpZEZvckNvbXBvbmVudCBmcm9tIFwiQGthc3Blcm5qL2FwaS1tYWtlci9idWlsZC9pbnB1dHMvaWQtZm9yLWNvbXBvbmVudFwiXG5pbXBvcnQgbmFtZUZvckNvbXBvbmVudCBmcm9tIFwiQGthc3Blcm5qL2FwaS1tYWtlci9idWlsZC9pbnB1dHMvbmFtZS1mb3ItY29tcG9uZW50XCJcbmltcG9ydCBPcHRpb24gZnJvbSBcIi4vb3B0aW9uXCJcbmltcG9ydCBPcHRpb25Hcm91cCBmcm9tIFwiLi9vcHRpb24tZ3JvdXBcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlbmRlckh0bWwgZnJvbSBcInJlYWN0LW5hdGl2ZS1yZW5kZXItaHRtbFwiXG5pbXBvcnQge1BvcnRhbH0gZnJvbSBcImNvbmpvaW50bWVudFwiXG5pbXBvcnQgdXNlRXZlbnRMaXN0ZW5lciBmcm9tIFwiQGthc3Blcm5qL2FwaS1tYWtlci9idWlsZC91c2UtZXZlbnQtbGlzdGVuZXJcIlxuaW1wb3J0IHVzZVByZXNzT3V0c2lkZSBmcm9tIFwib3V0c2lkZS1leWUvYnVpbGQvdXNlLXByZXNzLW91dHNpZGVcIlxuXG4vKiogQHJldHVybnMge3N0cmluZ30gKi9cbmNvbnN0IG5hbWVGb3JDb21wb25lbnRXaXRoTXVsdGlwbGUgPSAoY29tcG9uZW50KSA9PiB7XG4gIGxldCBuYW1lID0gbmFtZUZvckNvbXBvbmVudChjb21wb25lbnQpXG5cbiAgY29uc3QgY3VycmVudE9wdGlvbnMgPSBjb21wb25lbnQuZ2V0Q3VycmVudE9wdGlvbnMoKVxuXG4gIGlmIChjb21wb25lbnQucHJvcHMubXVsdGlwbGUgJiYgbmFtZSAmJiBjdXJyZW50T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgbmFtZSArPSBcIltdXCJcbiAgfVxuXG4gIHJldHVybiBuYW1lXG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgSGF5YVNlbGVjdCBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgbm9PcHRpb25zVGV4dDogbnVsbCxcbiAgICBvbkJsdXI6IG51bGwsXG4gICAgb25Gb2N1czogbnVsbCxcbiAgICBvcHRpb25zQWJzb2x1dGU6IHRydWUsXG4gICAgb3B0aW9uc1BvcnRhbDogdHJ1ZSxcbiAgICBvcHRpb25zV2lkdGg6IG51bGwsXG4gICAgc2VhcmNoOiBmYWxzZSxcbiAgICB0cmFuc3BhcmVudDogZmFsc2VcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZWZhdWx0VG9nZ2xlZDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkZWZhdWx0VmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICBkZWZhdWx0VmFsdWVzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgZGVmYXVsdFZhbHVlc0Zyb21PcHRpb25zOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgaWQ6IFByb3BUeXBlcy5ub2RlLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG11bHRpcGxlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbm9PcHRpb25zVGV4dDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25DaGFuZ2VWYWx1ZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25PcHRpb25zQ2xvc2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvcHRpb25zOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5mdW5jXSkuaXNSZXF1aXJlZCxcbiAgICBvcHRpb25zQWJzb2x1dGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb3B0aW9uc1BvcnRhbDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBvcHRpb25zV2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5ub2RlLFxuICAgIHNlYXJjaDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBzdHlsZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgdG9nZ2xlZDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB0b2dnbGVPcHRpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgaWNvbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgICB9KSksXG4gICAgdHJhbnNwYXJlbnQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgdmFsdWVzOiBQcm9wVHlwZXMuYXJyYXlcbiAgfSlcblxuICBjYWxsT3B0aW9uc1Bvc2l0aW9uQWJvdmVJZk91dHNpZGVTY3JlZW4gPSBmYWxzZVxuICB3aW5kb3dXaWR0aCA9IERpbWVuc2lvbnMuZ2V0KFwid2luZG93XCIpLndpZHRoXG4gIHdpbmRvd0hlaWdodCA9IERpbWVuc2lvbnMuZ2V0KFwid2luZG93XCIpLmhlaWdodFxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IGNvbmZpZy5nZXRVc2VUcmFuc2xhdGUoKSgpXG5cbiAgICBpZiAodGhpcy5wcm9wcy52YWx1ZXMpIHtcbiAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdGhpcy5wcm9wcy52YWx1ZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSGF5YVNlbGVjdDogVW5kZWZpbmVkIGdpdmVuIGFzIHZhbHVlXCIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNldEluc3RhbmNlKHtcbiAgICAgIGVuZE9mU2VsZWN0UmVmOiB1c2VSZWYoKSxcbiAgICAgIG9wdGlvbnNDb250YWluZXJSZWY6IHVzZVJlZigpLFxuICAgICAgc2VhcmNoVGV4dElucHV0UmVmOiB1c2VSZWYoKSxcbiAgICAgIHNlbGVjdENvbnRhaW5lclJlZjogdXNlUmVmKCksXG4gICAgICB0XG4gICAgfSlcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBjdXJyZW50T3B0aW9uczogKCkgPT4gdGhpcy5kZWZhdWx0Q3VycmVudE9wdGlvbnMoKSxcbiAgICAgIHNlbGVjdENvbnRhaW5lckxheW91dDogbnVsbCxcbiAgICAgIGVuZE9mU2VsZWN0TGF5b3V0OiBudWxsLFxuICAgICAgaGVpZ2h0OiBudWxsLFxuICAgICAgbG9hZGVkT3B0aW9uczogKCkgPT4gdGhpcy5kZWZhdWx0TG9hZGVkT3B0aW9ucygpLFxuICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgIG9wdGlvbnNDb250YWluZXJMYXlvdXQ6IG51bGwsXG4gICAgICBvcHRpb25zUGxhY2VtZW50OiB1bmRlZmluZWQsXG4gICAgICBvcHRpb25zVG9wOiB1bmRlZmluZWQsXG4gICAgICBvcHRpb25zVmlzaWJpbGl0eTogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uc1dpZHRoOiB1bmRlZmluZWQsXG4gICAgICBzY3JvbGxMZWZ0OiBQbGF0Zm9ybS5PUyA9PSBcIndlYlwiID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgOiBudWxsLFxuICAgICAgc2Nyb2xsVG9wOiBQbGF0Zm9ybS5PUyA9PSBcIndlYlwiID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IG51bGwsXG4gICAgICBzZWFyY2hUZXh0OiBcIlwiLFxuICAgICAgdG9nZ2xlZDogKCkgPT4gdGhpcy5kZWZhdWx0VG9nZ2xlZCgpXG4gICAgfSlcblxuICAgIHVzZUV2ZW50TGlzdGVuZXIoRGltZW5zaW9ucywgXCJjaGFuZ2VcIiwgdGhpcy50dC5vbkRpbWVuc2lvbnNDaGFuZ2UpXG4gICAgdXNlUHJlc3NPdXRzaWRlKHRoaXMudHQub3B0aW9uc0NvbnRhaW5lclJlZiwgdGhpcy50dC5vblByZXNzT3V0c2lkZU9wdGlvbnMpXG5cbiAgICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIikge1xuICAgICAgdXNlRXZlbnRMaXN0ZW5lcih3aW5kb3csIFwicmVzaXplXCIsIHRoaXMudHQub25Bbnl0aGluZ1Jlc2l6ZWREZWJvdW5jZWQpXG4gICAgICB1c2VFdmVudExpc3RlbmVyKHdpbmRvdywgXCJzY3JvbGxcIiwgdGhpcy50dC5vbkFueXRoaW5nU2Nyb2xsZWREZWJvdW5jZWQpXG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnR0LmNhbGxPcHRpb25zUG9zaXRpb25BYm92ZUlmT3V0c2lkZVNjcmVlbiAmJiB0aGlzLnMub3B0aW9uc0NvbnRhaW5lckxheW91dCkge1xuICAgICAgICB0aGlzLmNhbGxPcHRpb25zUG9zaXRpb25BYm92ZUlmT3V0c2lkZVNjcmVlbiA9IGZhbHNlXG4gICAgICAgIHRoaXMuc2V0T3B0aW9uc1Bvc2l0aW9uQWJvdmVJZk91dHNpZGVTY3JlZW4oKVxuICAgICAgfVxuICAgIH0sIFt0aGlzLnR0LmNhbGxPcHRpb25zUG9zaXRpb25BYm92ZUlmT3V0c2lkZVNjcmVlbiwgdGhpcy5zLm9wdGlvbnNDb250YWluZXJMYXlvdXRdKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25JZHMgPSB0aGlzLnMuY3VycmVudE9wdGlvbnM/Lm1hcCgoY3VycmVudE9wdGlvbikgPT4gY3VycmVudE9wdGlvbi52YWx1ZSlcblxuICAgICAgaWYgKHRoaXMucHJvcHMudmFsdWVzICYmIGFueXRoaW5nRGlmZmVyZW50KGN1cnJlbnRPcHRpb25JZHMsIHRoaXMucHJvcHMudmFsdWVzKSAmJiB0eXBlb2YgdGhpcy5wcm9wcy5vcHRpb25zID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRGcm9tR2l2ZW5WYWx1ZXMoKVxuICAgICAgfVxuICAgIH0sIFt0aGlzLnByb3BzLnZhbHVlc10pXG4gIH1cblxuICB0cmFuc2xhdGUobXNnSUQpIHtcbiAgICBpZiAobXNnSUQuc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoYGhheWFfc2VsZWN0JHttc2dJRH1gKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50KG1zZ0lEKVxuICAgIH1cbiAgfVxuXG4gIGRlZmF1bHRDdXJyZW50T3B0aW9ucygpIHtcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlLCBkZWZhdWx0VmFsdWVzLCB2YWx1ZXN9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXMucFxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKSByZXR1cm4gW11cblxuICAgIHJldHVybiBvcHRpb25zLmZpbHRlcigoe3ZhbHVlfSkgPT5cbiAgICAgIChkZWZhdWx0VmFsdWUgJiYgdmFsdWUgPT0gZGVmYXVsdFZhbHVlKSB8fFxuICAgICAgICAoZGVmYXVsdFZhbHVlcyAmJiBkZWZhdWx0VmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkgfHxcbiAgICAgICAgKHZhbHVlcyAmJiB2YWx1ZXMuaW5jbHVkZXModmFsdWUpKVxuICAgIClcbiAgfVxuXG4gIGRlZmF1bHRMb2FkZWRPcHRpb25zKCkge1xuICAgIGNvbnN0IHtvcHRpb25zfSA9IHRoaXMucFxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnNcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZSBvZiBvcHRpb25zOiAke3R5cGVvZiBvcHRpb25zfWApXG4gIH1cblxuICBkZWZhdWx0VG9nZ2xlZCA9ICgpID0+IChcInRvZ2dsZWRcIiBpbiB0aGlzLnByb3BzKSA/IHRoaXMucC50b2dnbGVkIDogdGhpcy5wcm9wcy5kZWZhdWx0VG9nZ2xlZCB8fCB7fVxuICBnZXRUb2dnbGVkID0gKCkgPT4gKFwidG9nZ2xlZFwiIGluIHRoaXMucHJvcHMpID8gdGhpcy5wLnRvZ2dsZWQgOiB0aGlzLnMudG9nZ2xlZFxuICBnZXRWYWx1ZXMgPSAoKSA9PiAoXCJ2YWx1ZXNcIiBpbiB0aGlzLnByb3BzKSA/IHRoaXMucC52YWx1ZXMgOiB0aGlzLnMuY3VycmVudE9wdGlvbnMubWFwKChjdXJyZW50T3B0aW9uKSA9PiBjdXJyZW50T3B0aW9uLnZhbHVlKVxuICBnZXRDdXJyZW50T3B0aW9ucyA9ICgpID0+IHtcbiAgICBpZiAoXCJ2YWx1ZXNcIiBpbiB0aGlzLnByb3BzICYmIHR5cGVvZiB0aGlzLnByb3BzLnZhbHVlcyAhPSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzLm9wdGlvbnMpICYmIHRoaXMucHJvcHMudmFsdWVzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnAudmFsdWVzLm1hcCgodmFsdWUpID0+IHRoaXMucC5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09IHZhbHVlKSlcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zLmxvYWRlZE9wdGlvbnMgJiYgdGhpcy5wcm9wcy52YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucC52YWx1ZXMubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGxldCBmb3VuZE9wdGlvbiA9IHRoaXMucy5sb2FkZWRPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09IHZhbHVlKVxuXG4gICAgICAgICAgaWYgKCFmb3VuZE9wdGlvbikge1xuICAgICAgICAgICAgZm91bmRPcHRpb24gPSB0aGlzLnMuY3VycmVudE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT0gdmFsdWUpXG5cbiAgICAgICAgICAgIGlmICghZm91bmRPcHRpb24pIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBgQ291bGRuJ3QgZmluZCBvcHRpb246ICR7dmFsdWV9IGluIGxvYWRlZE9wdGlvbnMgb3Igc3RhdGUgY3VycmVudE9wdGlvbnNgLFxuICAgICAgICAgICAgICAgIHtzdGF0ZUxvYWRlZE9wdGlvbnM6IHRoaXMucy5sb2FkZWRPcHRpb25zLCBzdGF0ZUN1cnJlbnRPcHRpb25zOiB0aGlzLnMuY3VycmVudE9wdGlvbnMsIHByb3BzT3B0aW9uczogdGhpcy5wcm9wcy5vcHRpb25zfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZvdW5kT3B0aW9uXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9wdGlvbnMgPT0gXCJmdW5jdGlvblwiICYmIHRoaXMucHJvcHMudmFsdWVzKSB7XG4gICAgICAgIC8vIE9wdGlvbnMgaGF2ZW4ndCBiZWVuIGxvYWRlZCB5ZXQuXG4gICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMudmFsdWVzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnAudmFsdWVzLm1hcCgodmFsdWUpID0+ICh7dmFsdWV9KSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zLmN1cnJlbnRPcHRpb25zXG4gIH1cblxuICBnZXRDdXJyZW50T3B0aW9uVmFsdWVzKCkge1xuICAgIGlmIChcInZhbHVlc1wiIGluIHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLnAudmFsdWVzXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudE9wdGlvbnMoKS5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgZGVmYXVsdFZhbHVlLCBkZWZhdWx0VmFsdWVzLCBkZWZhdWx0VmFsdWVzRnJvbU9wdGlvbnMsIG1vZGVsLCBvcHRpb25zfSA9IHRoaXMucHJvcHNcblxuICAgIGlmICgoKGRlZmF1bHRWYWx1ZSB8fCBkZWZhdWx0VmFsdWVzIHx8IGRlZmF1bHRWYWx1ZXNGcm9tT3B0aW9ucykgfHwgKGF0dHJpYnV0ZSAmJiBtb2RlbCkpICYmIHR5cGVvZiBvcHRpb25zID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhpcy5sb2FkRGVmYXVsdFZhbHVlc0Zyb21PcHRpb25zQ2FsbGJhY2soKVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IHt9XG5cbiAgICBpZiAoXCJ0b2dnbGVkXCIgaW4gdGhpcy5wcm9wcykge1xuICAgICAgY29uc3QgbmV3VG9nZ2xlZCA9IHRoaXMucC50b2dnbGVkXG5cbiAgICAgIGlmIChhbnl0aGluZ0RpZmZlcmVudCh0aGlzLnN0YXRlLnRvZ2dsZWQsIG5ld1RvZ2dsZWQpKSB7XG4gICAgICAgIG5ld1N0YXRlLnRvZ2dsZWQgPSBuZXdUb2dnbGVkXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7ZW5kT2ZTZWxlY3RSZWZ9ID0gdGhpcy50dFxuICAgIGNvbnN0IHt0cmFuc3BhcmVudH0gPSB0aGlzLnBcbiAgICBjb25zdCB7Y2xhc3NOYW1lLCBwbGFjZWhvbGRlciwgdG9nZ2xlT3B0aW9uc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge29wZW5lZCwgb3B0aW9uc1BsYWNlbWVudH0gPSB0aGlzLnNcbiAgICBjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMuZ2V0Q3VycmVudE9wdGlvbnMoKVxuICAgIGNvbnN0IGlkID0gaWRGb3JDb21wb25lbnQodGhpcylcblxuICAgIGNvbnN0IHNlbGVjdENvbnRhaW5lclN0eWxlQWN0dWFsID0gdGhpcy5zdHlsaW5nRm9yKFwic2VsZWN0Q29udGFpbmVyXCIsIHtcbiAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0cmFuc3BhcmVudCA/IHVuZGVmaW5lZCA6IFwiI2ZmZlwiLFxuICAgICAgYm9yZGVyOiB0cmFuc3BhcmVudCA/IHVuZGVmaW5lZCA6IFwiMXB4IHNvbGlkICM5OTlcIixcbiAgICAgIGJvcmRlclJhZGl1czogdHJhbnNwYXJlbnQgPyB1bmRlZmluZWQgOiA0LFxuICAgICAgY29sb3I6IFwiIzAwMFwiLFxuICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgIHBhZGRpbmdUb3A6IDUsXG4gICAgICBwYWRkaW5nQm90dG9tOiA1LFxuICAgICAgcGFkZGluZ0xlZnQ6IDVcbiAgICB9LCBbdHJhbnNwYXJlbnRdKVxuXG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgLy8gUHJldmVudCBzZWxlY3QgZnJvbSBjaGFuZ2luZyBzaXplIG9uY2UgdGhlIGNvbnRlbnQgaXMgcmVwbGFjZWQgd2l0aCBzZWFyY2ggdGV4dCBvbmNlIG9wZW5lZFxuICAgICAgc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuaGVpZ2h0ID0gdGhpcy5zLmhlaWdodFxuXG4gICAgICBpZiAob3B0aW9uc1BsYWNlbWVudCA9PSBcImFib3ZlXCIpIHtcbiAgICAgICAgc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuYm9yZGVyVG9wTGVmdFJhZGl1cyA9IDBcbiAgICAgICAgc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuYm9yZGVyVG9wUmlnaHRSYWRpdXMgPSAwXG4gICAgICAgIHNlbGVjdENvbnRhaW5lclN0eWxlQWN0dWFsLmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzID0gc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuYm9yZGVyUmFkaXVzXG4gICAgICAgIHNlbGVjdENvbnRhaW5lclN0eWxlQWN0dWFsLmJvcmRlckJvdHRvbUxlZnRSYWRpdXMgPSBzZWxlY3RDb250YWluZXJTdHlsZUFjdHVhbC5ib3JkZXJSYWRpdXNcblxuICAgICAgICBkZWxldGUgc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuYm9yZGVyUmFkaXVzXG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnNQbGFjZW1lbnQgPT0gXCJiZWxvd1wiKSB7XG4gICAgICAgIHNlbGVjdENvbnRhaW5lclN0eWxlQWN0dWFsLmJvcmRlclRvcExlZnRSYWRpdXMgPSBzZWxlY3RDb250YWluZXJTdHlsZUFjdHVhbC5ib3JkZXJSYWRpdXNcbiAgICAgICAgc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuYm9yZGVyVG9wUmlnaHRSYWRpdXMgPSBzZWxlY3RDb250YWluZXJTdHlsZUFjdHVhbC5ib3JkZXJSYWRpdXNcbiAgICAgICAgc2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWwuYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMgPSAwXG4gICAgICAgIHNlbGVjdENvbnRhaW5lclN0eWxlQWN0dWFsLmJvcmRlckJvdHRvbUxlZnRSYWRpdXMgPSAwXG5cbiAgICAgICAgZGVsZXRlIHNlbGVjdENvbnRhaW5lclN0eWxlQWN0dWFsLmJvcmRlclJhZGl1c1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8Vmlld1xuICAgICAgICBkYXRhU2V0PXt0aGlzLmNhY2hlKFwicm9vdFZpZXdEYXRhU2V0XCIsIHtcbiAgICAgICAgICBjbGFzczogY2xhc3NOYW1lLFxuICAgICAgICAgIGNvbXBvbmVudDogXCJoYXlhLXNlbGVjdFwiLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIG9wZW5lZCxcbiAgICAgICAgICBvcHRpb25zUGxhY2VtZW50LFxuICAgICAgICAgIHRvZ2dsZXM6IEJvb2xlYW4odG9nZ2xlT3B0aW9ucylcbiAgICAgICAgfSwgW2NsYXNzTmFtZSwgaWQsIG9wZW5lZCwgb3B0aW9uc1BsYWNlbWVudCwgQm9vbGVhbih0b2dnbGVPcHRpb25zKV0pfVxuICAgICAgICBzdHlsZT17dGhpcy5zdHlsaW5nRm9yKFwibWFpblwiKX1cbiAgICAgID5cbiAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuc2VsZWN0Q29udGFpbmVyRGF0YVNldCB8fD0ge2NsYXNzOiBcInNlbGVjdC1jb250YWluZXJcIn19XG4gICAgICAgICAgb25MYXlvdXQ9e3RoaXMudHQub25TZWxlY3RDb250YWluZXJMYXlvdXR9XG4gICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblNlbGVjdENsaWNrZWR9XG4gICAgICAgICAgcmVmPXt0aGlzLnR0LnNlbGVjdENvbnRhaW5lclJlZn1cbiAgICAgICAgICBzdHlsZT17c2VsZWN0Q29udGFpbmVyU3R5bGVBY3R1YWx9XG4gICAgICAgID5cbiAgICAgICAgICA8Vmlld1xuICAgICAgICAgICAgZGF0YVNldD17dGhpcy5jdXJyZW50U2VsZWN0ZWREYXRhU2V0IHx8PSB7Y2xhc3M6IFwiY3VycmVudC1zZWxlY3RlZFwifX1cbiAgICAgICAgICAgIHN0eWxlPXt0aGlzLnN0eWxpbmdGb3IoXCJjdXJyZW50U2VsZWN0ZWRcIiwgdGhpcy5jdXJyZW50U2VsZWN0ZWRTdHlsZSB8fD0ge3dpZHRoOiBcImNhbGMoMTAwJSAtIDI1cHgpXCIsIGZsZXhXcmFwOiBcIndyYXBcIiwgb3ZlcmZsb3c6IFwiaGlkZGVuXCJ9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7b3BlbmVkICYmXG4gICAgICAgICAgICAgIDxUZXh0SW5wdXRcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXt0aGlzLnNlYXJjaFRleHRJbnB1dERhdGFTZXQgfHw9IHtjbGFzczogXCJzZWFyY2gtdGV4dC1pbnB1dFwifX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50dC5vblNlYXJjaFRleHRJbnB1dENoYW5nZWREZWJvdW5jZWR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VUZXh0PXt0aGlzLnR0Lm9uQ2hhbmdlU2VhcmNoVGV4dH1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy50cmFuc2xhdGUoXCIuc2VhcmNoX2RvdF9kb3RfZG90XCIpfVxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50dC5zZWFyY2hUZXh0SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3RoaXMuc3R5bGluZ0ZvcihcInNlYXJjaFRleHRJbnB1dFwiLCB0aGlzLnNlYXJjaFRleHRJbnB1dFN0eWxlIHx8PSB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgICAgICAgICAgICBvdXRsaW5lOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWFyY2hUZXh0fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeyFvcGVuZWQgJiZcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7Y3VycmVudE9wdGlvbnMubGVuZ3RoID09IDAgJiZcbiAgICAgICAgICAgICAgICAgIDxUZXh0IG51bWJlck9mTGluZXM9ezF9IHN0eWxlPXt0aGlzLnN0eWxpbmdGb3IoXCJub3RoaW5nU2VsZWN0ZWRcIiwgdGhpcy5ub3RoaW5nU2VsZWN0ZWRTdHlsZSB8fD0ge2NvbG9yOiBcImdyZXlcIn0pfT5cbiAgICAgICAgICAgICAgICAgICAge3BsYWNlaG9sZGVyIHx8IHRoaXMudHJhbnNsYXRlKFwiLm5vdGhpbmdfc2VsZWN0ZWRcIil9XG4gICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHtjdXJyZW50T3B0aW9ucy5sZW5ndGggPT0gMCAmJiBQbGF0Zm9ybS5PUyA9PSBcIndlYlwiICYmXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgaWQ9e2lkRm9yQ29tcG9uZW50KHRoaXMpfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lRm9yQ29tcG9uZW50V2l0aE11bHRpcGxlKHRoaXMpfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAge2N1cnJlbnRPcHRpb25zLm1hcCgoY3VycmVudE9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIDxWaWV3XG4gICAgICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuY3VycmVudE9wdGlvbkRhdGFTZXQgfHw9IHtjbGFzczogXCJjdXJyZW50LW9wdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtjdXJyZW50T3B0aW9uLmtleSB8fCBgY3VycmVudC12YWx1ZS0ke2N1cnJlbnRPcHRpb24udmFsdWV9YH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3RoaXMuc3R5bGluZ0ZvcihcImN1cnJlbnRPcHRpb25cIiwge21hcmdpblJpZ2h0OiA2fSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50T3B0aW9uLnR5cGUgPT0gXCJncm91cFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgPFZpZXcgc3R5bGU9e3RoaXMuc3R5bGluZ0ZvcihcImN1cnJlbnRPcHRpb25Hcm91cFwiLCB0aGlzLmN1cnJlbnRPcHRpb25Hcm91cFN0eWxlIHx8PSB7Zm9udFdlaWdodDogXCJib2xkXCJ9KX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17dGhpcy5zdHlsaW5nRm9yKFwiY3VycmVudE9wdGlvbkdyb3VwVGV4dFwiKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtjdXJyZW50T3B0aW9uLnRleHR9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHtjdXJyZW50T3B0aW9uLnR5cGUgIT0gXCJncm91cFwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtQbGF0Zm9ybS5PUyA9PSBcIndlYlwiICYmIG5hbWVGb3JDb21wb25lbnRXaXRoTXVsdGlwbGUodGhpcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2lkRm9yQ29tcG9uZW50KHRoaXMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWVGb3JDb21wb25lbnRXaXRoTXVsdGlwbGUodGhpcyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RpZ2coY3VycmVudE9wdGlvbiwgXCJ2YWx1ZVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnByZXNlbnRPcHRpb24oY3VycmVudE9wdGlvbiwgXCJjdXJyZW50XCIpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICAgIDxWaWV3XG4gICAgICAgICAgICBkYXRhU2V0PXt0aGlzLmNoZXZyb25Db250YWluZXJEYXRhU2V0IHx8PSB7Y2xhc3M6IFwiY2hldnJvbi1jb250YWluZXJcIn19XG4gICAgICAgICAgICBzdHlsZT17dGhpcy5zdHlsaW5nRm9yKFwiY2hldnJvbkNvbnRhaW5lclwiLCB0aGlzLmNoZXZyb25Db250YWluZXJTdHlsZSB8fD0ge1xuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiA4XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Rm9udEF3ZXNvbWVJY29uIG5hbWU9e29wZW5lZCA/IFwiY2hldnJvbi11cFwiIDogXCJjaGV2cm9uLWRvd25cIn0gc3R5bGU9e3RoaXMuc3R5bGluZ0ZvcihcImNoZXZyb25cIiwgdGhpcy5jaGV2cm9uU3R5bGUgfHw9IHtmb250U2l6ZTogMTJ9KX0gLz5cbiAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8Vmlld1xuICAgICAgICAgIGRhdGFTZXQ9e3RoaXMuZW5kT2ZTZWxlY3REYXRhU2V0IHx8PSB7Y2xhc3M6IFwiZW5kLW9mLXNlbGVjdFwifX1cbiAgICAgICAgICBvbkxheW91dD17dGhpcy50dC5vbkVuZE9mU2VsZWN0TGF5b3V0fVxuICAgICAgICAgIHJlZj17ZW5kT2ZTZWxlY3RSZWZ9XG4gICAgICAgIC8+XG4gICAgICAgIHtvcGVuZWQgJiYgdGhpcy5wLm9wdGlvbnNQb3J0YWwgJiZcbiAgICAgICAgICA8UG9ydGFsPlxuICAgICAgICAgICAge3RoaXMub3B0aW9uc0NvbnRhaW5lcigpfVxuICAgICAgICAgIDwvUG9ydGFsPlxuICAgICAgICB9XG4gICAgICAgIHtvcGVuZWQgJiYgIXRoaXMucC5vcHRpb25zUG9ydGFsICYmXG4gICAgICAgICAgPFZpZXc+XG4gICAgICAgICAgICB7dGhpcy5vcHRpb25zQ29udGFpbmVyKCl9XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICB9XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgZGVmYXVsdFZhbHVlcyAoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgZGVmYXVsdFZhbHVlLCBkZWZhdWx0VmFsdWVzLCBkZWZhdWx0VmFsdWVzRnJvbU9wdGlvbnMsIG1vZGVsfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChkZWZhdWx0VmFsdWVzRnJvbU9wdGlvbnMpIHJldHVybiBkZWZhdWx0VmFsdWVzRnJvbU9wdGlvbnNcbiAgICBpZiAoZGVmYXVsdFZhbHVlKSByZXR1cm4gZGVmYXVsdFZhbHVlXG4gICAgaWYgKGRlZmF1bHRWYWx1ZXMpIHJldHVybiBkZWZhdWx0VmFsdWVzXG5cbiAgICBpZiAoYXR0cmlidXRlICYmIG1vZGVsKSB7XG4gICAgICBpZiAoIShhdHRyaWJ1dGUgaW4gbW9kZWwpKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggYXR0cmlidXRlIG9uICR7bW9kZWwubW9kZWxDbGFzc0RhdGEoKS5uYW1lfTogJHthdHRyaWJ1dGV9YClcblxuICAgICAgcmV0dXJuIG1vZGVsW2F0dHJpYnV0ZV0oKVxuICAgIH1cbiAgfVxuXG4gIGlzQWN0aXZlKCkge1xuICAgIGlmICh0aGlzLnR0LmVuZE9mU2VsZWN0UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBhc3luYyBsb2FkRGVmYXVsdFZhbHVlc0Zyb21PcHRpb25zQ2FsbGJhY2soKSB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlcyA9IHRoaXMuZGVmYXVsdFZhbHVlcygpXG5cbiAgICBpZiAoIWRlZmF1bHRWYWx1ZXMpIHJldHVyblxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wcm9wcy5vcHRpb25zKHtcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnMuc2VhcmNoVGV4dCxcbiAgICAgIHZhbHVlczogZGVmYXVsdFZhbHVlc1xuICAgIH0pXG5cbiAgICB0aGlzLnNldFN0YXRlKHtjdXJyZW50T3B0aW9uczogdGhpcy5zdGF0ZS5jdXJyZW50T3B0aW9ucy5jb25jYXQocmVzdWx0KX0pXG4gIH1cblxuICBsb2FkT3B0aW9ucyA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7b3B0aW9uc30gPSB0aGlzLnBcbiAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMucy5zZWFyY2hUZXh0XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZE9wdGlvbnNGcm9tQXJyYXkob3B0aW9ucywgc2VhcmNoVmFsdWUpXG4gICAgfVxuXG4gICAgY29uc3QgbG9hZGVkT3B0aW9ucyA9IGF3YWl0IG9wdGlvbnMoe3NlYXJjaFZhbHVlfSlcblxuICAgIHRoaXMuc2V0U3RhdGUoe2xvYWRlZE9wdGlvbnN9KVxuICB9XG5cbiAgaGF5YVNlbGVjdE9wdGlvbih7a2V5LCBsb2FkZWRPcHRpb259KSB7XG4gICAgaWYgKGxvYWRlZE9wdGlvbi50eXBlID09IFwiZ3JvdXBcIikge1xuICAgICAgcmV0dXJuIDxPcHRpb25Hcm91cCBrZXk9e2tleX0gb3B0aW9uPXtsb2FkZWRPcHRpb259IC8+XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxPcHRpb25cbiAgICAgICAgY3VycmVudE9wdGlvblZhbHVlcz17dGhpcy5nZXRDdXJyZW50T3B0aW9uVmFsdWVzKCl9XG4gICAgICAgIGljb249e3RoaXMuaWNvbkZvck9wdGlvbihsb2FkZWRPcHRpb24pfVxuICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgb3B0aW9uPXtsb2FkZWRPcHRpb259XG4gICAgICAgIG9uT3B0aW9uQ2xpY2tlZD17dGhpcy50dC5vbk9wdGlvbkNsaWNrZWR9XG4gICAgICAgIHByZXNlbnRPcHRpb249e3RoaXMudHQucHJlc2VudE9wdGlvbn1cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgbG9hZE9wdGlvbnNGcm9tQXJyYXkob3B0aW9ucywgc2VhcmNoVmFsdWUpIHtcbiAgICBjb25zdCBsb3dlclNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWU/LnRvTG93ZXJDYXNlKClcbiAgICBjb25zdCBsb2FkZWRPcHRpb25zID0gb3B0aW9ucy5maWx0ZXIoKHt0ZXh0fSkgPT4gIWxvd2VyU2VhcmNoVmFsdWUgfHwgdGV4dD8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMobG93ZXJTZWFyY2hWYWx1ZSkpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtsb2FkZWRPcHRpb25zfSlcbiAgfVxuXG4gIG9uRGltZW5zaW9uc0NoYW5nZSA9ICh7d2luZG93fSkgPT4ge1xuICAgIHRoaXMud2luZG93V2lkdGggPSB3aW5kb3cud2lkdGhcbiAgICB0aGlzLndpbmRvd0hlaWdodCA9IHdpbmRvdy5oZWlnaHRcbiAgfVxuXG4gIG9uU2VsZWN0Q29udGFpbmVyTGF5b3V0ID0gKGUpID0+IHRoaXMuc2V0U3RhdGUoe3NlbGVjdENvbnRhaW5lckxheW91dDogT2JqZWN0LmFzc2lnbih7fSwgZGlnZyhlLCBcIm5hdGl2ZUV2ZW50XCIsIFwibGF5b3V0XCIpKX0pXG4gIG9uRW5kT2ZTZWxlY3RMYXlvdXQgPSAoZSkgPT4gdGhpcy5zZXRTdGF0ZSh7ZW5kT2ZTZWxlY3RMYXlvdXQ6IE9iamVjdC5hc3NpZ24oe30sIGRpZ2coZSwgXCJuYXRpdmVFdmVudFwiLCBcImxheW91dFwiKSl9KVxuICBvbk9wdGlvbnNDb250YWluZXJMYXlvdXQgPSAoZSkgPT4gdGhpcy5zZXRTdGF0ZSh7b3B0aW9uc0NvbnRhaW5lckxheW91dDogT2JqZWN0LmFzc2lnbih7fSwgZGlnZyhlLCBcIm5hdGl2ZUV2ZW50XCIsIFwibGF5b3V0XCIpKX0pXG5cbiAgb25TZWxlY3RDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICBjb25zdCB7b3BlbmVkfSA9IHRoaXMuc1xuXG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5PcHRpb25zKClcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaFRleHRJbnB1dENoYW5nZWREZWJvdW5jZWQgPSBkZWJvdW5jZSh0aGlzLnR0LmxvYWRPcHRpb25zLCAyMDApXG5cbiAgY2xvc2VPcHRpb25zKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaGVpZ2h0OiBudWxsLFxuICAgICAgbG9hZGVkT3B0aW9uczogdW5kZWZpbmVkLFxuICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgIG9wdGlvbnNDb250YWluZXJMYXlvdXQ6IG51bGxcbiAgICB9KVxuXG4gICAgaWYgKHRoaXMucHJvcHMub25PcHRpb25zQ2xvc2VkKSB7XG4gICAgICB0aGlzLnByb3BzLm9uT3B0aW9uc0Nsb3NlZCh7b3B0aW9uczogdGhpcy5nZXRDdXJyZW50T3B0aW9ucygpfSlcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wLm9uQmx1cikgdGhpcy5wLm9uQmx1cigpXG4gIH1cblxuICBvbkNoYW5nZVNlYXJjaFRleHQgPSAoc2VhcmNoVGV4dCkgPT4gdGhpcy5zZXRTdGF0ZSh7c2VhcmNoVGV4dH0pXG5cbiAgb3Blbk9wdGlvbnMoKSB7XG4gICAgdGhpcy5zZXRPcHRpb25zUG9zaXRpb25CZWxvdygpXG4gICAgdGhpcy5sb2FkT3B0aW9ucygpXG4gICAgdGhpcy5jYWxsT3B0aW9uc1Bvc2l0aW9uQWJvdmVJZk91dHNpZGVTY3JlZW4gPSB0cnVlXG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgaGVpZ2h0OiB0aGlzLnMuc2VsZWN0Q29udGFpbmVyTGF5b3V0LmhlaWdodCxcbiAgICAgICAgb3BlbmVkOiB0cnVlLFxuICAgICAgICBzY3JvbGxMZWZ0OiBQbGF0Zm9ybS5PUyA9PSBcIndlYlwiID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgOiBudWxsLFxuICAgICAgICBzY3JvbGxUb3A6IFBsYXRmb3JtLk9TID09IFwid2ViXCIgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIDogbnVsbCxcbiAgICAgICAgc2VhcmNoVGV4dDogXCJcIlxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c1RleHRJbnB1dCgpXG4gICAgICB9XG4gICAgKVxuXG4gICAgaWYgKHRoaXMucC5vbkZvY3VzKSB0aGlzLnAub25Gb2N1cygpXG4gIH1cblxuICBmb2N1c1RleHRJbnB1dCA9ICgpID0+IGRpZ2codGhpcy50dC5zZWFyY2hUZXh0SW5wdXRSZWYsIFwiY3VycmVudFwiKT8uZm9jdXMoKVxuXG4gIHNldE9wdGlvbnNQb3NpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgcmV0dXJuIC8vIERlYm91bmNlIGFmdGVyIHVuLW1vdW50IGhhbmRlbGluZy5cbiAgICB9XG5cbiAgICB0aGlzLmNhbGxPcHRpb25zUG9zaXRpb25BYm92ZUlmT3V0c2lkZVNjcmVlbiA9IHRydWVcbiAgICB0aGlzLnNldE9wdGlvbnNQb3NpdGlvbkJlbG93KClcbiAgfVxuXG4gIHNldE9wdGlvbnNQb3NpdGlvbkFib3ZlSWZPdXRzaWRlU2NyZWVuKCkge1xuICAgIGNvbnN0IHt3aW5kb3dIZWlnaHR9ID0gdGhpcy50dFxuICAgIGNvbnN0IHtvcHRpb25zQ29udGFpbmVyTGF5b3V0fSA9IHRoaXMuc1xuICAgIGNvbnN0IG9wdGlvbnNUb3AgPSB0aGlzLnMuZW5kT2ZTZWxlY3RMYXlvdXQudG9wXG4gICAgY29uc3Qgb3B0aW9uc1RvdGFsQm90dG9tUG9zaXRpb24gPSBvcHRpb25zQ29udGFpbmVyTGF5b3V0LmhlaWdodCArIG9wdGlvbnNUb3BcbiAgICBjb25zdCB3aW5kb3dIZWlnaHRXaXRoU2Nyb2xsID0gd2luZG93SGVpZ2h0ICsgdGhpcy5zLnNjcm9sbFRvcFxuXG4gICAgaWYgKHdpbmRvd0hlaWdodFdpdGhTY3JvbGwgPCBvcHRpb25zVG90YWxCb3R0b21Qb3NpdGlvbikge1xuICAgICAgdGhpcy5zZXRPcHRpb25zUG9zaXRpb25BYm92ZSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe29wdGlvbnNWaXNpYmlsaXR5OiBcInZpc2libGVcIn0pXG4gICAgfVxuICB9XG5cbiAgc2V0T3B0aW9uc1Bvc2l0aW9uQWJvdmUoKSB7XG4gICAgY29uc3Qge2VuZE9mU2VsZWN0TGF5b3V0fSA9IHRoaXMuc1xuXG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgb3BlbmVkOiB0cnVlLFxuICAgICAgICBvcHRpb25zUGxhY2VtZW50OiBcImFib3ZlXCIsXG4gICAgICAgIG9wdGlvbnNWaXNpYmlsaXR5OiBcInZpc2libGVcIixcbiAgICAgICAgb3B0aW9uc1dpZHRoOiBlbmRPZlNlbGVjdExheW91dC53aWR0aFxuICAgICAgfSxcbiAgICAgICgpID0+IHRoaXMuZm9jdXNUZXh0SW5wdXQoKVxuICAgIClcbiAgfVxuXG4gIHNldE9wdGlvbnNQb3NpdGlvbkJlbG93KCkge1xuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7XG4gICAgICAgIG9wZW5lZDogdHJ1ZSxcbiAgICAgICAgb3B0aW9uc1BsYWNlbWVudDogXCJiZWxvd1wiLFxuICAgICAgICBvcHRpb25zVmlzaWJpbGl0eTogXCJoaWRkZW5cIixcbiAgICAgICAgb3B0aW9uc1dpZHRoOiB0aGlzLnMuZW5kT2ZTZWxlY3RMYXlvdXQud2lkdGhcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLmZvY3VzVGV4dElucHV0KClcbiAgICApXG4gIH1cblxuICBvbkFueXRoaW5nUmVzaXplZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5zLm9wZW5lZCkge1xuICAgICAgdGhpcy5zZXRPcHRpb25zUG9zaXRpb24oKVxuICAgIH1cbiAgfVxuXG4gIG9uQW55dGhpbmdSZXNpemVkRGVib3VuY2VkID0gZGVib3VuY2UodGhpcy50dC5vbkFueXRoaW5nUmVzaXplZCwgMjUpXG5cbiAgb25Bbnl0aGluZ1Njcm9sbGVkID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnMub3BlbmVkKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgc2Nyb2xsTGVmdDogUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IDogbnVsbCxcbiAgICAgICAgc2Nyb2xsVG9wOiBQbGF0Zm9ybS5PUyA9PSBcIndlYlwiID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA6IG51bGxcbiAgICAgIH0pXG4gICAgICB0aGlzLnNldE9wdGlvbnNQb3NpdGlvbigpXG4gICAgfVxuICB9XG5cbiAgb25Bbnl0aGluZ1Njcm9sbGVkRGVib3VuY2VkID0gZGVib3VuY2UodGhpcy50dC5vbkFueXRoaW5nU2Nyb2xsZWQsIDI1KVxuXG4gIG9uUHJlc3NPdXRzaWRlT3B0aW9ucyA9ICgpID0+IHtcbiAgICAvLyBJZiBvcHRpb25zIGFyZSBvcGVuIGFuZCBhIGNsaWNrIGlzIG1hZGUgb3V0c2lkZSBvZiB0aGUgb3B0aW9ucyBjb250YWluZXJcbiAgICBpZiAodGhpcy5zLm9wZW5lZCkge1xuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKVxuICAgIH1cbiAgfVxuXG4gIG9wdGlvbnNDb250YWluZXIoKSB7XG4gICAgY29uc3Qge3NlbGVjdENvbnRhaW5lckxheW91dCwgbG9hZGVkT3B0aW9ucywgZW5kT2ZTZWxlY3RMYXlvdXQsIG9wdGlvbnNDb250YWluZXJMYXlvdXQsIG9wdGlvbnNQbGFjZW1lbnQsIG9wdGlvbnNWaXNpYmlsaXR5fSA9IHRoaXMuc1xuICAgIGxldCBsZWZ0LCB0b3BcblxuICAgIGxldCBzdHlsZSA9IHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB6SW5kZXg6IDk5OTk5LFxuICAgICAgZWxldmF0aW9uOiA5OTk5OSxcbiAgICAgIHZpc2liaWxpdHk6IG9wdGlvbnNWaXNpYmlsaXR5LFxuICAgICAgd2lkdGg6IHRoaXMucC5vcHRpb25zV2lkdGggfHwgdGhpcy5zLm9wdGlvbnNXaWR0aCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmXCIsXG4gICAgICBib3JkZXI6IFwiMXB4IHNvbGlkICM5OTlcIixcbiAgICAgIG1heEhlaWdodDogMzAwLFxuICAgICAgb3ZlcmZsb3dZOiBcImF1dG9cIlxuICAgIH1cblxuICAgIGlmICghdGhpcy5wLm9wdGlvbnNQb3J0YWwpIHtcbiAgICAgIHN0eWxlLnRvcCA9IDBcbiAgICAgIHN0eWxlLmxlZnQgPSAwXG4gICAgfSBlbHNlIGlmICghdGhpcy5wLm9wdGlvbnNBYnNvbHV0ZSkge1xuICAgICAgc3R5bGUubGVmdCA9IDBcbiAgICAgIHN0eWxlLmJvdHRvbSA9IDBcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnNQbGFjZW1lbnQgPT0gXCJiZWxvd1wiKSB7XG4gICAgICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIikge1xuICAgICAgICAvLyBvbkxheW91dCB0b3AgdmFsdWUgaXMgc29tZXRpbWVzIG5lZ2F0aXZlIHNvIHVzZSBicm93c2VyIEpTIHRvIGdldCBpdCBpbnN0ZWFkXG4gICAgICAgIHRvcCA9IGRpZ2codGhpcy50dC5lbmRPZlNlbGVjdFJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBcInRvcFwiKSArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgKyAxXG5cbiAgICAgICAgLy8gb25MYXlvdXQgbGVmdCB2YWx1ZXMgZG9lc24ndCBhbHdheXMgdXBkYXRlIHdoZW4gY2hhbmdlZFxuICAgICAgICBsZWZ0ID0gZGlnZyh0aGlzLnR0LmVuZE9mU2VsZWN0UmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIFwibGVmdFwiKSArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZWZ0ID0gdGhpcy5zLmVuZE9mU2VsZWN0TGF5b3V0LmxlZnRcbiAgICAgICAgdG9wID0gc2VsZWN0Q29udGFpbmVyTGF5b3V0LnRvcFxuICAgICAgfVxuXG4gICAgICBzdHlsZS5sZWZ0ID0gbGVmdFxuICAgICAgc3R5bGUudG9wID0gdG9wIC0gMlxuICAgIH0gZWxzZSBpZiAob3B0aW9uc1BsYWNlbWVudCA9PSBcImFib3ZlXCIpIHtcbiAgICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiKSB7XG4gICAgICAgIC8vIG9uTGF5b3V0IHRvcCB2YWx1ZSBpcyBzb21ldGltZXMgbmVnYXRpdmUgc28gdXNlIGJyb3dzZXIgSlMgdG8gZ2V0IGl0IGluc3RlYWRcbiAgICAgICAgdG9wID0gZGlnZyh0aGlzLnR0LnNlbGVjdENvbnRhaW5lclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBcInRvcFwiKSArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BcblxuICAgICAgICAvLyBvbkxheW91dCBsZWZ0IHZhbHVlcyBkb2Vzbid0IGFsd2F5cyB1cGRhdGUgd2hlbiBjaGFuZ2VkXG4gICAgICAgIGxlZnQgPSBkaWdnKHRoaXMudHQuc2VsZWN0Q29udGFpbmVyUmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIFwibGVmdFwiKSArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZWZ0ID0gZW5kT2ZTZWxlY3RMYXlvdXQubGVmdFxuICAgICAgICB0b3AgPSBzZWxlY3RDb250YWluZXJMYXlvdXQudG9wXG4gICAgICB9XG5cbiAgICAgIHN0eWxlLmxlZnQgPSBsZWZ0XG4gICAgICBzdHlsZS50b3AgPSB0b3AgLSBvcHRpb25zQ29udGFpbmVyTGF5b3V0LmhlaWdodCArIDFcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtvbnduIG9wdGlvbnMgcGxhY2VtZW50OiAke29wdGlvbnNQbGFjZW1lbnR9YClcbiAgICB9XG5cbiAgICBzdHlsZSA9IHRoaXMuc3R5bGluZ0ZvcihcIm9wdGlvbnNDb250YWluZXJcIiwgc3R5bGUsIFtsZWZ0LCB0b3AsIHN0eWxlLnZpc2liaWxpdHksIHN0eWxlLndpZHRoXSlcblxuICAgIGNvbnN0IGlkID0gaWRGb3JDb21wb25lbnQodGhpcylcblxuICAgIHJldHVybiAoXG4gICAgICA8Vmlld1xuICAgICAgICBkYXRhU2V0PXt0aGlzLmNhY2hlKFwib3B0aW9uc0NvbnRhaW5lckRhdGFTZXRcIiwge2NsYXNzOiBcIm9wdGlvbnMtY29udGFpbmVyXCIsIGlkLCByb2xlOiBcImRpYWxvZ1wifSwgW2lkXSl9XG4gICAgICAgIG9uTGF5b3V0PXt0aGlzLnR0Lm9uT3B0aW9uc0NvbnRhaW5lckxheW91dH1cbiAgICAgICAgcmVmPXt0aGlzLnR0Lm9wdGlvbnNDb250YWluZXJSZWZ9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgID5cbiAgICAgICAge2xvYWRlZE9wdGlvbnM/Lm1hcCgobG9hZGVkT3B0aW9uKSA9PlxuICAgICAgICAgIHRoaXMuaGF5YVNlbGVjdE9wdGlvbih7XG4gICAgICAgICAgICBrZXk6IGxvYWRlZE9wdGlvbi5rZXkgfHwgYGxvYWRlZC1vcHRpb24tJHtsb2FkZWRPcHRpb24udmFsdWV9YCxcbiAgICAgICAgICAgIGxvYWRlZE9wdGlvblxuICAgICAgICAgIH0pXG4gICAgICAgICl9XG4gICAgICAgIHtsb2FkZWRPcHRpb25zPy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICA8VmlldyBkYXRhU2V0PXt0aGlzLm5vT3B0aW9uc0NvbnRhaW5lckRhdGFTZXQgfHw9IHtjbGFzczogXCJuby1vcHRpb25zLWNvbnRhaW5lclwifX0+XG4gICAgICAgICAgICA8VGV4dD57dGhpcy5wLm5vT3B0aW9uc1RleHQgPyB0aGlzLnAubm9PcHRpb25zVGV4dCgpIDogdGhpcy50cmFuc2xhdGUoXCIubm9fb3B0aW9uc19mb3VuZFwiKX08L1RleHQ+XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICB9XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgb25PcHRpb25DbGlja2VkID0gKGV2ZW50LCBsb2FkZWRPcHRpb24pID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgIGNvbnN0IHtvbkNoYW5nZSwgdG9nZ2xlT3B0aW9uc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge211bHRpcGxlfSA9IHRoaXMucFxuICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5nZXRDdXJyZW50T3B0aW9ucygpXG4gICAgY29uc3QgdG9nZ2xlZCA9IHRoaXMuZ2V0VG9nZ2xlZCgpXG4gICAgY29uc3QgbmV3U3RhdGUgPSB7fVxuICAgIGNvbnN0IGV4aXN0aW5nT3B0aW9uID0gY3VycmVudE9wdGlvbnMuZmluZCgoY3VycmVudE9wdGlvbikgPT4gY3VycmVudE9wdGlvbi52YWx1ZSA9PSBsb2FkZWRPcHRpb24udmFsdWUpXG4gICAgY29uc3QgbmV3VG9nZ2xlZCA9IHsuLi50b2dnbGVkfVxuICAgIGxldCBuZXdDdXJyZW50T3B0aW9uc1xuXG4gICAgaWYgKGV4aXN0aW5nT3B0aW9uKSB7XG4gICAgICBpZiAodG9nZ2xlT3B0aW9ucykge1xuICAgICAgICBjb25zdCBjdXJyZW50VG9nZ2xlID0gdG9nZ2xlZFtsb2FkZWRPcHRpb24udmFsdWVdXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRvZ2dsZU9wdGlvbnMuZmluZEluZGV4KChlbGVtZW50KSA9PiBlbGVtZW50LnZhbHVlID09IGN1cnJlbnRUb2dnbGUpXG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+PSAodG9nZ2xlT3B0aW9ucy5sZW5ndGggLSAxKSkge1xuICAgICAgICAgIC8vIE5vIG5leHQgdG9nZ2xlZCAtIHJlbW92ZSB0b2dnbGVkIGFuZCBvcHRpb25cbiAgICAgICAgICBkZWxldGUgbmV3VG9nZ2xlZFtsb2FkZWRPcHRpb24udmFsdWVdXG5cbiAgICAgICAgICBuZXdDdXJyZW50T3B0aW9ucyA9IGN1cnJlbnRPcHRpb25zLmZpbHRlcigoY3VycmVudE9wdGlvbikgPT4gY3VycmVudE9wdGlvbi52YWx1ZSAhPSBsb2FkZWRPcHRpb24udmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQWxyZWFkeSB0b2dnbGVkIC0gc2V0IHRvIG5leHQgdG9nZ2xlXG4gICAgICAgICAgbmV3VG9nZ2xlZFtsb2FkZWRPcHRpb24udmFsdWVdID0gZGlnZyh0b2dnbGVPcHRpb25zLCBjdXJyZW50SW5kZXggKyAxLCBcInZhbHVlXCIpXG4gICAgICAgIH1cblxuICAgICAgICBuZXdTdGF0ZS50b2dnbGVkID0gbmV3VG9nZ2xlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gY3VycmVudCBvcHRpb25zXG4gICAgICAgIG5ld0N1cnJlbnRPcHRpb25zID0gY3VycmVudE9wdGlvbnMuZmlsdGVyKChjdXJyZW50T3B0aW9uKSA9PiBjdXJyZW50T3B0aW9uLnZhbHVlICE9IGxvYWRlZE9wdGlvbi52YWx1ZSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgdGhlIGNsaWNrZWQgb3B0aW9uIGlzIGRpc2FibGVkXG4gICAgICBpZiAobG9hZGVkT3B0aW9uLmRpc2FibGVkKSByZXR1cm5cblxuICAgICAgaWYgKHRvZ2dsZU9wdGlvbnMpIHtcbiAgICAgICAgLy8gU2V0IGZyZXNoIHRvZ2dsZVxuICAgICAgICBuZXdUb2dnbGVkW2xvYWRlZE9wdGlvbi52YWx1ZV0gPSB0b2dnbGVPcHRpb25zWzBdLnZhbHVlXG4gICAgICAgIG5ld1N0YXRlLnRvZ2dsZWQgPSBuZXdUb2dnbGVkXG4gICAgICB9XG5cbiAgICAgIGlmIChtdWx0aXBsZSB8fCB0b2dnbGVPcHRpb25zKSB7XG4gICAgICAgIG5ld0N1cnJlbnRPcHRpb25zID0gY3VycmVudE9wdGlvbnMuY29uY2F0KFtsb2FkZWRPcHRpb25dKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Q3VycmVudE9wdGlvbnMgPSBbbG9hZGVkT3B0aW9uXVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcInZhbHVlc1wiIGluIHRoaXMucHJvcHMgJiYgdGhpcy5wcm9wcy52YWx1ZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gY3VycmVudE9wdGlvbnMgYXJlIGNvbnRyb2xsZWQgYW5kIGEgdXNlTWVtbyBjYWxsYmFjayBpcyBoYW5kZWxpbmcgc2V0dGluZyBjdXJyZW50IG9wdGlvbnMuXG4gICAgfSBlbHNlIGlmIChuZXdDdXJyZW50T3B0aW9ucykge1xuICAgICAgbmV3U3RhdGUuY3VycmVudE9wdGlvbnMgPSBuZXdDdXJyZW50T3B0aW9uc1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSBuZXdDdXJyZW50T3B0aW9ucyB8fCBjdXJyZW50T3B0aW9uc1xuXG4gICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICBvbkNoYW5nZSh7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICB0b2dnbGVzOiBuZXdUb2dnbGVkXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLm9uQ2hhbmdlVmFsdWUpIHtcbiAgICAgIGxldCBvcHRpb25WYWx1ZVxuXG4gICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgb3B0aW9uVmFsdWUgPSBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25WYWx1ZSA9IGRpZyhvcHRpb25zLCAwLCBcInZhbHVlXCIpXG4gICAgICB9XG5cbiAgICAgIHRoaXMucC5vbkNoYW5nZVZhbHVlKG9wdGlvblZhbHVlKVxuICAgIH1cblxuICAgIGlmICghbXVsdGlwbGUpIHRoaXMuY2xvc2VPcHRpb25zKClcbiAgICB0aGlzLnNldFN0YXRlKG5ld1N0YXRlKVxuICB9XG5cbiAgc3R5bGluZ0ZvcihzdHlsaW5nTmFtZSwgc3R5bGUgPSB7fSwgY2FjaGVzID0gW10pIHtcbiAgICBsZXQgY3VzdG9tU3R5bGluZyA9IGRpZyh0aGlzLCBcInByb3BzXCIsIFwic3R5bGVzXCIsIHN0eWxpbmdOYW1lKVxuXG4gICAgaWYgKHR5cGVvZiBjdXN0b21TdHlsaW5nID09IFwiZnVuY3Rpb25cIikgY3VzdG9tU3R5bGluZyA9IGN1c3RvbVN0eWxpbmcoe3N0YXRlOiB0aGlzLnN0YXRlLCBzdHlsZX0pXG5cbiAgICBpZiAoY3VzdG9tU3R5bGluZykge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3R5bGUsIGN1c3RvbVN0eWxpbmcpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGUoYHN0eWxpbmdGb3ItJHtzdHlsaW5nTmFtZX1gLCBzdHlsZSwgY2FjaGVzKVxuICB9XG5cbiAgaWNvbkZvck9wdGlvbihvcHRpb24pIHtcbiAgICBjb25zdCB7dG9nZ2xlT3B0aW9uc30gPSB0aGlzLnByb3BzIHx8IHt9XG4gICAgY29uc3QgdG9nZ2xlZCA9IHRoaXMuZ2V0VG9nZ2xlZCgpXG5cbiAgICBpZiAodG9nZ2xlT3B0aW9ucyAmJiAob3B0aW9uLnZhbHVlIGluIHRvZ2dsZWQpKSB7XG4gICAgICBjb25zdCB0b2dnbGVkVmFsdWUgPSB0b2dnbGVkW29wdGlvbi52YWx1ZV1cbiAgICAgIGNvbnN0IHRvZ2dsZWRPcHRpb24gPSB0b2dnbGVPcHRpb25zLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQudmFsdWUgPT0gdG9nZ2xlZFZhbHVlKVxuXG4gICAgICBpZiAoIXRvZ2dsZWRPcHRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBmaW5kIGEgdG9nZ2xlIG9wdGlvbiBmb3IgdmFsdWU6ICR7dG9nZ2xlZFZhbHVlfWApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0b2dnbGVkT3B0aW9uLmljb25cbiAgICB9XG4gIH1cblxuICBwcmVzZW50T3B0aW9uID0gKG9wdGlvbiwgbW9kZSkgPT4ge1xuICAgIGNvbnN0IHt0b2dnbGVPcHRpb25zfSA9IHRoaXMucHJvcHMgfHwge31cbiAgICBjb25zdCB0b2dnbGVkID0gdGhpcy5nZXRUb2dnbGVkKClcbiAgICBjb25zdCBpY29uID0gdGhpcy5pY29uRm9yT3B0aW9uKG9wdGlvbilcbiAgICBjb25zdCB0b2dnbGVWYWx1ZSA9IHRvZ2dsZWRbb3B0aW9uLnZhbHVlXVxuICAgIGNvbnN0IHRvZ2dsZU9wdGlvbiA9IHRvZ2dsZU9wdGlvbnM/LmZpbmQoKHRvZ2dsZU9wdGlvbkkpID0+IHRvZ2dsZU9wdGlvbkkudmFsdWUgPT0gdG9nZ2xlVmFsdWUpXG4gICAgbGV0IHN0eWxlXG5cbiAgICBpZiAobW9kZSA9PSBcImN1cnJlbnRcIikge1xuICAgICAgc3R5bGUgPSB0aGlzLnN0eWxpbmdGb3IoXCJjdXJyZW50T3B0aW9uUHJlc2VudGF0aW9uVGV4dFwiLCB7ZmxleDogMSwgd2hpdGVTcGFjZTogXCJub3dyYXBcIn0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlID0gdGhpcy5zdHlsaW5nRm9yKFwib3B0aW9uUHJlc2VudGF0aW9uVGV4dFwiLCB7ZmxleDogMSwgd2hpdGVTcGFjZTogXCJub3dyYXBcIn0pXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3XG4gICAgICAgIGRhdGFTZXQ9e3tcbiAgICAgICAgICBjbGFzczogXCJvcHRpb24tcHJlc2VudGF0aW9uXCIsXG4gICAgICAgICAgdGV4dDogb3B0aW9uLnRleHQsXG4gICAgICAgICAgdG9nZ2xlSWNvbjogdG9nZ2xlT3B0aW9uPy5pY29uLFxuICAgICAgICAgIHRvZ2dsZVZhbHVlOiB0b2dnbGVPcHRpb24/LnZhbHVlLFxuICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWVcbiAgICAgICAgfX1cbiAgICAgICAgc3R5bGU9e3RoaXMub3B0aW9uUHJlc2VudGF0aW9uU3R5bGUgfHw9IHtmbGV4RGlyZWN0aW9uOiBcInJvd1wifX1cbiAgICAgID5cbiAgICAgICAge3RvZ2dsZU9wdGlvbnMgJiYgIShvcHRpb24udmFsdWUgaW4gdG9nZ2xlZCkgJiZcbiAgICAgICAgICA8Vmlld1xuICAgICAgICAgICAgZGF0YVNldD17dGhpcy50b2dnbGVJY29uUGxhY2Vob2xkZXJEYXRhU2V0IHx8PSB7Y2xhc3M6IFwidG9nZ2xlLWljb24tcGxhY2Vob2xkZXJcIn19XG4gICAgICAgICAgICBzdHlsZT17dGhpcy50b2dnbGVJY29uUGxhY2Vob2xkZXJTdHlsZSB8fD0ge3dpZHRoOiAyMH19XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7dG9nZ2xlT3B0aW9ucyAmJiAob3B0aW9uLnZhbHVlIGluIHRvZ2dsZWQpICYmXG4gICAgICAgICAgPFZpZXcgc3R5bGU9e3RoaXMudG9nZ2xlSWNvbkNvbnRhaW5lclN0eWxlIHx8PSB7YWxpZ25JdGVtczogXCJjZW50ZXJcIiwganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsIHdpZHRoOiAyMH19PlxuICAgICAgICAgICAgPEZvbnRBd2Vzb21lSWNvblxuICAgICAgICAgICAgICBkYXRhU2V0PXt0aGlzLnRvZ2dsZUljb25EYXRhU2V0IHx8PSB7Y2xhc3M6IFwidG9nZ2xlLWljb25cIn19XG4gICAgICAgICAgICAgIG5hbWU9e2ljb259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvVmlldz5cbiAgICAgICAgfVxuICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICBpZiAobW9kZSA9PSBcImN1cnJlbnRcIiAmJiBvcHRpb24uY3VycmVudENvbnRlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uY3VycmVudENvbnRlbnQoKVxuICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uY29udGVudCgpXG4gICAgICAgICAgfSBlbHNlIGlmIChcImh0bWxcIiBpbiBvcHRpb24gJiYgUGxhdGZvcm0uT1MgIT0gXCJ3ZWJcIikge1xuICAgICAgICAgICAgcmV0dXJuIDxSZW5kZXJIdG1sIHNvdXJjZT17e2h0bWw6IGRpZ2cob3B0aW9uLCBcImh0bWxcIil9fSAvPlxuICAgICAgICAgIH0gZWxzZSBpZiAoXCJodG1sXCIgaW4gb3B0aW9uICYmIFBsYXRmb3JtLk9TID09IFwid2ViXCIpIHtcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7X19odG1sOiBkaWdnKG9wdGlvbiwgXCJodG1sXCIpfX0gLz5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXt0aGlzLm9wdGlvblByZXNlbnRhdGlvblRleHREYXRhU2V0IHx8PSB7Y2xhc3M6IFwib3B0aW9uLXByZXNlbnRhdGlvbi10ZXh0XCJ9fVxuICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtvcHRpb24udGV4dH1cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSkoKX1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cblxuICBhc3luYyBzZXRDdXJyZW50RnJvbUdpdmVuVmFsdWVzKCkge1xuICAgIGNvbnN0IHtvcHRpb25zLCB2YWx1ZXN9ID0gdGhpcy5wXG4gICAgY29uc3QgY3VycmVudE9wdGlvbnMgPSBhd2FpdCBvcHRpb25zKHt2YWx1ZXN9KVxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBjdXJyZW50T3B0aW9ucz8ubWFwKChjdXJyZW50T3B0aW9uKSA9PiBjdXJyZW50T3B0aW9uLnZhbHVlKVxuICAgIGNvbnN0IHN0YXRlVmFsdWVzID0gdGhpcy5zLmN1cnJlbnRPcHRpb25zPy5tYXAoKGN1cnJlbnRPcHRpb24pID0+IGN1cnJlbnRPcHRpb24udmFsdWUpXG5cbiAgICBpZiAoYW55dGhpbmdEaWZmZXJlbnQoY3VycmVudFZhbHVlcywgc3RhdGVWYWx1ZXMpKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtjdXJyZW50T3B0aW9uc30pXG4gICAgfVxuICB9XG59KSlcbiJdfQ==
|
|
@@ -19,4 +19,4 @@ export default memo(shapeComponent(class OptionGroup extends ShapeComponent {
|
|
|
19
19
|
React.createElement(Text, null, this.props.option.text)));
|
|
20
20
|
}
|
|
21
21
|
}));
|
|
22
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbGVjdC9vcHRpb24tZ3JvdXAuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDMUIsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUMsY0FBYyxFQUFFLGNBQWMsRUFBQyxNQUFNLDRDQUE0QyxDQUFBO0FBQ3pGLE9BQU8sRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBRXZDLGVBQWUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLFdBQVksU0FBUSxjQUFjO0lBQ3pFLE1BQU0sQ0FBQyxTQUFTLEdBQUc7UUFDakIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtLQUNwQyxDQUFBO0lBRUQsTUFBTTtRQUNKLE9BQU8sQ0FDTCxvQkFBQyxJQUFJLElBQ0gsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEtBQUssRUFBQyxLQUFLLEVBQUUsMkJBQTJCLEVBQUMsRUFDdEUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEtBQUs7Z0JBQzVCLFVBQVUsRUFBRSxDQUFDO2dCQUNiLFlBQVksRUFBRSxDQUFDO2dCQUNmLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsQ0FBQztnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixVQUFVLEVBQUUsTUFBTTthQUNuQjtZQUVELG9CQUFDLElBQUksUUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2xCLENBQ0YsQ0FDUixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnQsIFNoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCB7VGV4dCwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgT3B0aW9uR3JvdXAgZXh0ZW5kcyBTaGFwZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3B0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXdcbiAgICAgICAgZGF0YVNldD17dGhpcy5yb290Vmlld0RhdGFTZXQgfHw9IHtjbGFzczogXCJoYXlhLXNlbGVjdC0tb3B0aW9uLWdyb3VwXCJ9fVxuICAgICAgICBzdHlsZT17dGhpcy5yb290Vmlld1N0eWxlIHx8PSB7XG4gICAgICAgICAgcGFkZGluZ1RvcDogNCxcbiAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDgsXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbTogNCxcbiAgICAgICAgICBwYWRkaW5nTGVmdDogOCxcbiAgICAgICAgICBjb2xvcjogXCIjMDAwXCIsXG4gICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCJcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFRleHQ+XG4gICAgICAgICAge3RoaXMucHJvcHMub3B0aW9uLnRleHR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl19
|
package/build/select/option.js
CHANGED
|
@@ -59,4 +59,4 @@ export default memo(shapeComponent(class Option extends ShapeComponent {
|
|
|
59
59
|
onPointerOut = () => this.setState({ hover: false });
|
|
60
60
|
onPress = (e) => this.p.onOptionClicked(e, this.props.option);
|
|
61
61
|
}));
|
|
62
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlbGVjdC9vcHRpb24uanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekYsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDbkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRXpCLGVBQWUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLE1BQU8sU0FBUSxjQUFjO0lBQ3BFLE1BQU0sQ0FBQyxZQUFZLEdBQUc7UUFDcEIsUUFBUSxFQUFFLEtBQUs7S0FDaEIsQ0FBQTtJQUVELE1BQU0sQ0FBQyxTQUFTLEdBQUc7UUFDakIsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDcEMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUNuQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDdEIsZUFBZSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUMxQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO1FBQ25DLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7S0FDekMsQ0FBQTtJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sRUFBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzVDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUUvRyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLFVBQVUsRUFBRSxDQUFDO2dCQUNiLFlBQVksRUFBRSxDQUFDO2dCQUNmLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsQ0FBQztnQkFDZCxLQUFLLEVBQUUsTUFBTTthQUNkLENBQUE7WUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO2dCQUN4QixLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQTtZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUE7WUFDMUIsQ0FBQztZQUVELElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUE7WUFDbkMsQ0FBQztZQUVELElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsS0FBSyxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUE7WUFDckMsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRS9CLE9BQU8sQ0FDTCxvQkFBQyxTQUFTLElBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxlQUFlO2dCQUN0QixRQUFRO2dCQUNSLFFBQVE7Z0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUs7YUFDL0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDakQsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUN4QixhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQ3BDLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFDbEMsS0FBSyxFQUFFLEtBQUssSUFFWCxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQzdCLENBQ2IsQ0FBQTtJQUNILENBQUM7SUFFRCxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQ2xELFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7SUFDbEQsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtDQUM5RCxDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7c2hhcGVDb21wb25lbnQsIFNoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvc2hhcGUtY29tcG9uZW50LmpzXCJcbmltcG9ydCB7bWVtbywgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7UHJlc3NhYmxlfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgT3B0aW9uIGV4dGVuZHMgU2hhcGVDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGRpc2FibGVkOiBmYWxzZVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjdXJyZW50T3B0aW9uVmFsdWVzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgaWNvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbk9wdGlvbkNsaWNrZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb3B0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgcHJlc2VudE9wdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9XG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgaG92ZXI6IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y3VycmVudE9wdGlvblZhbHVlcywgb3B0aW9ufSA9IHRoaXMucFxuICAgIGNvbnN0IHtob3Zlcn0gPSB0aGlzLnNcbiAgICBjb25zdCBkaXNhYmxlZCA9IEJvb2xlYW4ob3B0aW9uLmRpc2FibGVkKVxuICAgIGNvbnN0IHNlbGVjdGVkID0gQm9vbGVhbihjdXJyZW50T3B0aW9uVmFsdWVzPy5maW5kKChjdXJyZW50T3B0aW9uVmFsdWUpID0+IGN1cnJlbnRPcHRpb25WYWx1ZSA9PSBvcHRpb24udmFsdWUpKVxuXG4gICAgY29uc3Qgc3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgICBwYWRkaW5nVG9wOiA0LFxuICAgICAgICBwYWRkaW5nUmlnaHQ6IDgsXG4gICAgICAgIHBhZGRpbmdCb3R0b206IDQsXG4gICAgICAgIHBhZGRpbmdMZWZ0OiA4LFxuICAgICAgICBjb2xvcjogXCIjMDAwXCJcbiAgICAgIH1cblxuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIHN0eWxlLmN1cnNvciA9IFwiZGVmYXVsdFwiXG4gICAgICAgIHN0eWxlLm9wYWNpdHkgPSAwLjZcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0eWxlLmN1cnNvciA9IFwicG9pbnRlclwiXG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcIiM4MGIyZmZcIlxuICAgICAgfVxuXG4gICAgICBpZiAoaG92ZXIpIHtcbiAgICAgICAgc3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCJzdGVlbGJsdWVcIlxuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3R5bGVcbiAgICB9LCBbZGlzYWJsZWQsIGhvdmVyLCBzZWxlY3RlZF0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNzYWJsZVxuICAgICAgICBkYXRhU2V0PXt0aGlzLmNhY2hlKFwicHJlc3NhYmxlRGF0YVNldFwiLCB7XG4gICAgICAgICAgY2xhc3M6IFwic2VsZWN0LW9wdGlvblwiLFxuICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLnByb3BzLm9wdGlvbi52YWx1ZVxuICAgICAgICB9LCBbZGlzYWJsZWQsIHNlbGVjdGVkLCB0aGlzLnByb3BzLm9wdGlvbi52YWx1ZV0pfVxuICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uUHJlc3N9XG4gICAgICAgIG9uUG9pbnRlck92ZXI9e3RoaXMudHQub25Qb2ludGVyT3Zlcn1cbiAgICAgICAgb25Qb2ludGVyT3V0PXt0aGlzLnR0Lm9uUG9pbnRlck91dH1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgPlxuICAgICAgICB7dGhpcy5wLnByZXNlbnRPcHRpb24ob3B0aW9uLCBcIm9wdGlvblwiKX1cbiAgICAgIDwvUHJlc3NhYmxlPlxuICAgIClcbiAgfVxuXG4gIG9uUG9pbnRlck92ZXIgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtob3ZlcjogdHJ1ZX0pXG4gIG9uUG9pbnRlck91dCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe2hvdmVyOiBmYWxzZX0pXG4gIG9uUHJlc3MgPSAoZSkgPT4gdGhpcy5wLm9uT3B0aW9uQ2xpY2tlZChlLCB0aGlzLnByb3BzLm9wdGlvbilcbn0pKVxuIl19
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "haya-select",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.81",
|
|
4
4
|
"description": "Just another select component for React Native + Web.",
|
|
5
|
-
"files": [
|
|
5
|
+
"files": [
|
|
6
|
+
"build/**"
|
|
7
|
+
],
|
|
6
8
|
"main": "build/index.js",
|
|
7
9
|
"types": "build/index.d.ts",
|
|
8
10
|
"scripts": {
|
|
@@ -12,9 +14,9 @@
|
|
|
12
14
|
"test": "expo-module test",
|
|
13
15
|
"prepare": "expo-module prepare",
|
|
14
16
|
"prepublishOnly": "expo-module prepublishOnly",
|
|
15
|
-
"expo-module": "expo-module",
|
|
16
17
|
"open:ios": "xed example/ios",
|
|
17
|
-
"open:android": "open -a \"Android Studio\" example/android"
|
|
18
|
+
"open:android": "open -a \"Android Studio\" example/android",
|
|
19
|
+
"typecheck": "tsc --noEmit"
|
|
18
20
|
},
|
|
19
21
|
"keywords": [
|
|
20
22
|
"react-native",
|
|
@@ -38,9 +40,11 @@
|
|
|
38
40
|
"set-state-compare": "^1.0.61"
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
|
-
"@types/react": "~18.
|
|
43
|
+
"@types/react": "~18.3.12",
|
|
42
44
|
"expo-module-scripts": "^4.0.2",
|
|
43
|
-
"expo": "~52.0.
|
|
45
|
+
"expo": "~52.0.48",
|
|
46
|
+
"react": "18.3.1",
|
|
47
|
+
"react-native": "0.76.9"
|
|
44
48
|
},
|
|
45
49
|
"peerDependencies": {
|
|
46
50
|
"expo": "*",
|
package/build/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.js"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA;AAExC,MAAM,uBAAuB;IAC3B,aAAa,GAAG,oBAAoB,CAAA;IAEpC,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAE/D,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,aAAa,CAAC,aAAa;QACzB,IAAI,CAAC,WAAW,GAAG,aAAa,CAAA;IAClC,CAAC;IAED,eAAe,CAAC,QAAQ;QACtB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;IAC/B,CAAC;CACF;AAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACjC,UAAU,CAAC,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAA;AAC7D,CAAC;AAED,eAAe,UAAU,CAAC,gBAAgB,CAAA","sourcesContent":["const shared = {}\n\nconst t = (msgID) => {\n if (!shared._translateWarning) {\n shared._translateWarning = true\n console.log(\"HayaSelect: Translate method not set\")\n }\n\n return msgID\n}\n\nconst useTranslateFallback = () => ({t})\n\nclass HayaSelectConfiguration {\n _useTranslate = useTranslateFallback\n\n getBodyPortal() {\n if (!this._bodyPortal) throw new Error(\"bodyPortal wasn't set\")\n\n return this._bodyPortal\n }\n\n getUseTranslate() {\n return this._useTranslate\n }\n\n setBodyPortal(newBodyPortal) {\n this._bodyPortal = newBodyPortal\n }\n\n setUseTranslate(callback) {\n this._useTranslate = callback\n }\n}\n\nif (!globalThis.hayaSelectConfig) {\n globalThis.hayaSelectConfig = new HayaSelectConfiguration()\n}\n\nexport default globalThis.hayaSelectConfig\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/select/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import {anythingDifferent} from \"set-state-compare/build/diff-utils\"\nimport config from \"../config.js\"\nimport {dig, digg} from \"diggerize\"\nimport {Dimensions, Platform, Pressable, Text, TextInput, View} from \"react-native\"\nimport React, {memo, useEffect, useRef} from \"react\"\nimport {shapeComponent, ShapeComponent} from \"set-state-compare/build/shape-component.js\"\nimport debounce from \"debounce\"\nimport FontAwesomeIcon from \"react-native-vector-icons/FontAwesome\"\nimport idForComponent from \"@kaspernj/api-maker/build/inputs/id-for-component\"\nimport nameForComponent from \"@kaspernj/api-maker/build/inputs/name-for-component\"\nimport Option from \"./option\"\nimport OptionGroup from \"./option-group\"\nimport PropTypes from \"prop-types\"\nimport propTypesExact from \"prop-types-exact\"\nimport RenderHtml from \"react-native-render-html\"\nimport {Portal} from \"conjointment\"\nimport useEventListener from \"@kaspernj/api-maker/build/use-event-listener\"\nimport usePressOutside from \"outside-eye/build/use-press-outside\"\n\n/** @returns {string} */\nconst nameForComponentWithMultiple = (component) => {\n let name = nameForComponent(component)\n\n const currentOptions = component.getCurrentOptions()\n\n if (component.props.multiple && name && currentOptions.length > 0) {\n name += \"[]\"\n }\n\n return name\n}\n\nexport default memo(shapeComponent(class HayaSelect extends ShapeComponent {\n static defaultProps = {\n multiple: false,\n noOptionsText: null,\n onBlur: null,\n onFocus: null,\n optionsAbsolute: true,\n optionsPortal: true,\n optionsWidth: null,\n search: false,\n transparent: false\n }\n\n static propTypes = propTypesExact({\n attribute: PropTypes.string,\n className: PropTypes.string,\n defaultToggled: PropTypes.object,\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n defaultValues: PropTypes.array,\n defaultValuesFromOptions: PropTypes.array,\n id: PropTypes.node,\n model: PropTypes.object,\n multiple: PropTypes.bool.isRequired,\n name: PropTypes.string,\n noOptionsText: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onChangeValue: PropTypes.func,\n onFocus: PropTypes.func,\n onOptionsClosed: PropTypes.func,\n options: PropTypes.oneOfType([PropTypes.array, PropTypes.func]).isRequired,\n optionsAbsolute: PropTypes.bool.isRequired,\n optionsPortal: PropTypes.bool.isRequired,\n optionsWidth: PropTypes.number,\n placeholder: PropTypes.node,\n search: PropTypes.bool.isRequired,\n styles: PropTypes.object,\n toggled: PropTypes.object,\n toggleOptions: PropTypes.arrayOf(PropTypes.shape({\n icon: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })),\n transparent: PropTypes.bool.isRequired,\n values: PropTypes.array\n })\n\n callOptionsPositionAboveIfOutsideScreen = false\n windowWidth = Dimensions.get(\"window\").width\n windowHeight = Dimensions.get(\"window\").height\n\n setup() {\n const {t} = config.getUseTranslate()()\n\n if (this.props.values) {\n for (const value of this.props.values) {\n if (typeof value == \"undefined\") {\n throw new Error(\"HayaSelect: Undefined given as value\")\n }\n }\n }\n\n this.setInstance({\n endOfSelectRef: useRef(),\n optionsContainerRef: useRef(),\n searchTextInputRef: useRef(),\n selectContainerRef: useRef(),\n t\n })\n this.useStates({\n currentOptions: () => this.defaultCurrentOptions(),\n selectContainerLayout: null,\n endOfSelectLayout: null,\n height: null,\n loadedOptions: () => this.defaultLoadedOptions(),\n opened: false,\n optionsContainerLayout: null,\n optionsPlacement: undefined,\n optionsTop: undefined,\n optionsVisibility: undefined,\n optionsWidth: undefined,\n scrollLeft: Platform.OS == \"web\" ? document.documentElement.scrollLeft : null,\n scrollTop: Platform.OS == \"web\" ? document.documentElement.scrollTop : null,\n searchText: \"\",\n toggled: () => this.defaultToggled()\n })\n\n useEventListener(Dimensions, \"change\", this.tt.onDimensionsChange)\n usePressOutside(this.tt.optionsContainerRef, this.tt.onPressOutsideOptions)\n\n if (Platform.OS == \"web\") {\n useEventListener(window, \"resize\", this.tt.onAnythingResizedDebounced)\n useEventListener(window, \"scroll\", this.tt.onAnythingScrolledDebounced)\n }\n\n useEffect(() => {\n if (this.tt.callOptionsPositionAboveIfOutsideScreen && this.s.optionsContainerLayout) {\n this.callOptionsPositionAboveIfOutsideScreen = false\n this.setOptionsPositionAboveIfOutsideScreen()\n }\n }, [this.tt.callOptionsPositionAboveIfOutsideScreen, this.s.optionsContainerLayout])\n\n useEffect(() => {\n const currentOptionIds = this.s.currentOptions?.map((currentOption) => currentOption.value)\n\n if (this.props.values && anythingDifferent(currentOptionIds, this.props.values) && typeof this.props.options == \"function\") {\n this.setCurrentFromGivenValues()\n }\n }, [this.props.values])\n }\n\n translate(msgID) {\n if (msgID.startsWith(\".\")) {\n return this.t(`haya_select${msgID}`)\n } else {\n return this.t(msgID)\n }\n }\n\n defaultCurrentOptions() {\n const {defaultValue, defaultValues, values} = this.props\n const {options} = this.p\n\n if (!Array.isArray(options)) return []\n\n return options.filter(({value}) =>\n (defaultValue && value == defaultValue) ||\n (defaultValues && defaultValues.includes(value)) ||\n (values && values.includes(value))\n )\n }\n\n defaultLoadedOptions() {\n const {options} = this.p\n\n if (typeof options == \"function\") {\n return undefined\n } else if (Array.isArray(options)) {\n return options\n }\n\n throw new Error(`Unknown type of options: ${typeof options}`)\n }\n\n defaultToggled = () => (\"toggled\" in this.props) ? this.p.toggled : this.props.defaultToggled || {}\n getToggled = () => (\"toggled\" in this.props) ? this.p.toggled : this.s.toggled\n getValues = () => (\"values\" in this.props) ? this.p.values : this.s.currentOptions.map((currentOption) => currentOption.value)\n getCurrentOptions = () => {\n if (\"values\" in this.props && typeof this.props.values != \"undefined\") {\n if (Array.isArray(this.props.options) && this.props.values) {\n return this.p.values.map((value) => this.p.options.find((option) => option.value == value))\n } else if (this.s.loadedOptions && this.props.values) {\n return this.p.values.map((value) => {\n let foundOption = this.s.loadedOptions.find((option) => option.value == value)\n\n if (!foundOption) {\n foundOption = this.s.currentOptions.find((option) => option.value == value)\n\n if (!foundOption) {\n console.error(\n `Couldn't find option: ${value} in loadedOptions or state currentOptions`,\n {stateLoadedOptions: this.s.loadedOptions, stateCurrentOptions: this.s.currentOptions, propsOptions: this.props.options}\n )\n }\n }\n\n return foundOption\n })\n } else if (typeof this.props.options == \"function\" && this.props.values) {\n // Options haven't been loaded yet.\n } else if (this.props.values) {\n return this.p.values.map((value) => ({value}))\n }\n }\n\n return this.s.currentOptions\n }\n\n getCurrentOptionValues() {\n if (\"values\" in this.props) {\n return this.p.values\n }\n\n return this.getCurrentOptions().map((option) => option.value)\n }\n\n componentDidMount() {\n const {attribute, defaultValue, defaultValues, defaultValuesFromOptions, model, options} = this.props\n\n if (((defaultValue || defaultValues || defaultValuesFromOptions) || (attribute && model)) && typeof options == \"function\") {\n this.loadDefaultValuesFromOptionsCallback()\n }\n }\n\n componentDidUpdate() {\n const newState = {}\n\n if (\"toggled\" in this.props) {\n const newToggled = this.p.toggled\n\n if (anythingDifferent(this.state.toggled, newToggled)) {\n newState.toggled = newToggled\n }\n }\n\n if (Object.keys(newState).length > 0) {\n this.setState(newState)\n }\n }\n\n render() {\n const {endOfSelectRef} = this.tt\n const {transparent} = this.p\n const {className, placeholder, toggleOptions} = this.props\n const {opened, optionsPlacement} = this.s\n const currentOptions = this.getCurrentOptions()\n const id = idForComponent(this)\n\n const selectContainerStyleActual = this.stylingFor(\"selectContainer\", {\n flexDirection: \"row\",\n alignItems: \"center\",\n backgroundColor: transparent ? undefined : \"#fff\",\n border: transparent ? undefined : \"1px solid #999\",\n borderRadius: transparent ? undefined : 4,\n color: \"#000\",\n cursor: \"pointer\",\n paddingTop: 5,\n paddingBottom: 5,\n paddingLeft: 5\n }, [transparent])\n\n if (opened) {\n // Prevent select from changing size once the content is replaced with search text once opened\n selectContainerStyleActual.height = this.s.height\n\n if (optionsPlacement == \"above\") {\n selectContainerStyleActual.borderTopLeftRadius = 0\n selectContainerStyleActual.borderTopRightRadius = 0\n selectContainerStyleActual.borderBottomRightRadius = selectContainerStyleActual.borderRadius\n selectContainerStyleActual.borderBottomLeftRadius = selectContainerStyleActual.borderRadius\n\n delete selectContainerStyleActual.borderRadius\n } else if (optionsPlacement == \"below\") {\n selectContainerStyleActual.borderTopLeftRadius = selectContainerStyleActual.borderRadius\n selectContainerStyleActual.borderTopRightRadius = selectContainerStyleActual.borderRadius\n selectContainerStyleActual.borderBottomRightRadius = 0\n selectContainerStyleActual.borderBottomLeftRadius = 0\n\n delete selectContainerStyleActual.borderRadius\n }\n }\n\n return (\n <View\n dataSet={this.cache(\"rootViewDataSet\", {\n class: className,\n component: \"haya-select\",\n id,\n opened,\n optionsPlacement,\n toggles: Boolean(toggleOptions)\n }, [className, id, opened, optionsPlacement, Boolean(toggleOptions)])}\n style={this.stylingFor(\"main\")}\n >\n <Pressable\n dataSet={this.selectContainerDataSet ||= {class: \"select-container\"}}\n onLayout={this.tt.onSelectContainerLayout}\n onPress={this.tt.onSelectClicked}\n ref={this.tt.selectContainerRef}\n style={selectContainerStyleActual}\n >\n <View\n dataSet={this.currentSelectedDataSet ||= {class: \"current-selected\"}}\n style={this.stylingFor(\"currentSelected\", this.currentSelectedStyle ||= {width: \"calc(100% - 25px)\", flexWrap: \"wrap\", overflow: \"hidden\"})}\n >\n {opened &&\n <TextInput\n dataSet={this.searchTextInputDataSet ||= {class: \"search-text-input\"}}\n onChange={this.tt.onSearchTextInputChangedDebounced}\n onChangeText={this.tt.onChangeSearchText}\n placeholder={this.translate(\".search_dot_dot_dot\")}\n ref={this.tt.searchTextInputRef}\n style={this.stylingFor(\"searchTextInput\", this.searchTextInputStyle ||= {\n width: \"100%\",\n border: 0,\n outline: \"none\",\n padding: 0\n })}\n value={this.state.searchText}\n />\n }\n {!opened &&\n <>\n {currentOptions.length == 0 &&\n <Text numberOfLines={1} style={this.stylingFor(\"nothingSelected\", this.nothingSelectedStyle ||= {color: \"grey\"})}>\n {placeholder || this.translate(\".nothing_selected\")}\n </Text>\n }\n {currentOptions.length == 0 && Platform.OS == \"web\" &&\n <input\n id={idForComponent(this)}\n name={nameForComponentWithMultiple(this)}\n type=\"hidden\"\n value=\"\"\n />\n }\n {currentOptions.map((currentOption) =>\n <View\n dataSet={this.currentOptionDataSet ||= {class: \"current-option\"}}\n key={currentOption.key || `current-value-${currentOption.value}`}\n style={this.stylingFor(\"currentOption\", {marginRight: 6})}\n >\n {currentOption.type == \"group\" &&\n <View style={this.stylingFor(\"currentOptionGroup\", this.currentOptionGroupStyle ||= {fontWeight: \"bold\"})}>\n <Text style={this.stylingFor(\"currentOptionGroupText\")}>\n {currentOption.text}\n </Text>\n </View>\n }\n {currentOption.type != \"group\" &&\n <>\n {Platform.OS == \"web\" && nameForComponentWithMultiple(this) &&\n <input\n id={idForComponent(this)}\n name={nameForComponentWithMultiple(this)}\n type=\"hidden\"\n value={digg(currentOption, \"value\")}\n />\n }\n {this.presentOption(currentOption, \"current\")}\n </>\n }\n </View>\n )}\n </>\n }\n </View>\n <View\n dataSet={this.chevronContainerDataSet ||= {class: \"chevron-container\"}}\n style={this.stylingFor(\"chevronContainer\", this.chevronContainerStyle ||= {\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n marginLeft: \"auto\",\n marginRight: 8\n })}\n >\n <FontAwesomeIcon name={opened ? \"chevron-up\" : \"chevron-down\"} style={this.stylingFor(\"chevron\", this.chevronStyle ||= {fontSize: 12})} />\n </View>\n </Pressable>\n <View\n dataSet={this.endOfSelectDataSet ||= {class: \"end-of-select\"}}\n onLayout={this.tt.onEndOfSelectLayout}\n ref={endOfSelectRef}\n />\n {opened && this.p.optionsPortal &&\n <Portal>\n {this.optionsContainer()}\n </Portal>\n }\n {opened && !this.p.optionsPortal &&\n <View>\n {this.optionsContainer()}\n </View>\n }\n </View>\n )\n }\n\n defaultValues () {\n const {attribute, defaultValue, defaultValues, defaultValuesFromOptions, model} = this.props\n\n if (defaultValuesFromOptions) return defaultValuesFromOptions\n if (defaultValue) return defaultValue\n if (defaultValues) return defaultValues\n\n if (attribute && model) {\n if (!(attribute in model)) throw new Error(`No such attribute on ${model.modelClassData().name}: ${attribute}`)\n\n return model[attribute]()\n }\n }\n\n isActive() {\n if (this.tt.endOfSelectRef.current) {\n return true\n }\n\n return false\n }\n\n async loadDefaultValuesFromOptionsCallback() {\n const defaultValues = this.defaultValues()\n\n if (!defaultValues) return\n\n const result = await this.props.options({\n searchValue: this.s.searchText,\n values: defaultValues\n })\n\n this.setState({currentOptions: this.state.currentOptions.concat(result)})\n }\n\n loadOptions = async () => {\n const {options} = this.p\n const searchValue = this.s.searchText\n\n if (Array.isArray(options)) {\n return this.loadOptionsFromArray(options, searchValue)\n }\n\n const loadedOptions = await options({searchValue})\n\n this.setState({loadedOptions})\n }\n\n hayaSelectOption({key, loadedOption}) {\n if (loadedOption.type == \"group\") {\n return <OptionGroup key={key} option={loadedOption} />\n }\n\n return (\n <Option\n currentOptionValues={this.getCurrentOptionValues()}\n icon={this.iconForOption(loadedOption)}\n key={key}\n option={loadedOption}\n onOptionClicked={this.tt.onOptionClicked}\n presentOption={this.tt.presentOption}\n />\n )\n }\n\n loadOptionsFromArray(options, searchValue) {\n const lowerSearchValue = searchValue?.toLowerCase()\n const loadedOptions = options.filter(({text}) => !lowerSearchValue || text?.toLowerCase()?.includes(lowerSearchValue))\n\n this.setState({loadedOptions})\n }\n\n onDimensionsChange = ({window}) => {\n this.windowWidth = window.width\n this.windowHeight = window.height\n }\n\n onSelectContainerLayout = (e) => this.setState({selectContainerLayout: Object.assign({}, digg(e, \"nativeEvent\", \"layout\"))})\n onEndOfSelectLayout = (e) => this.setState({endOfSelectLayout: Object.assign({}, digg(e, \"nativeEvent\", \"layout\"))})\n onOptionsContainerLayout = (e) => this.setState({optionsContainerLayout: Object.assign({}, digg(e, \"nativeEvent\", \"layout\"))})\n\n onSelectClicked = (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n const {opened} = this.s\n\n if (opened) {\n this.closeOptions()\n } else {\n this.openOptions()\n }\n }\n\n onSearchTextInputChangedDebounced = debounce(this.tt.loadOptions, 200)\n\n closeOptions() {\n this.setState({\n height: null,\n loadedOptions: undefined,\n opened: false,\n optionsContainerLayout: null\n })\n\n if (this.props.onOptionsClosed) {\n this.props.onOptionsClosed({options: this.getCurrentOptions()})\n }\n\n if (this.p.onBlur) this.p.onBlur()\n }\n\n onChangeSearchText = (searchText) => this.setState({searchText})\n\n openOptions() {\n this.setOptionsPositionBelow()\n this.loadOptions()\n this.callOptionsPositionAboveIfOutsideScreen = true\n this.setState(\n {\n height: this.s.selectContainerLayout.height,\n opened: true,\n scrollLeft: Platform.OS == \"web\" ? document.documentElement.scrollLeft : null,\n scrollTop: Platform.OS == \"web\" ? document.documentElement.scrollTop : null,\n searchText: \"\"\n },\n () => {\n this.focusTextInput()\n }\n )\n\n if (this.p.onFocus) this.p.onFocus()\n }\n\n focusTextInput = () => digg(this.tt.searchTextInputRef, \"current\")?.focus()\n\n setOptionsPosition() {\n if (!this.isActive()) {\n return // Debounce after un-mount handeling.\n }\n\n this.callOptionsPositionAboveIfOutsideScreen = true\n this.setOptionsPositionBelow()\n }\n\n setOptionsPositionAboveIfOutsideScreen() {\n const {windowHeight} = this.tt\n const {optionsContainerLayout} = this.s\n const optionsTop = this.s.endOfSelectLayout.top\n const optionsTotalBottomPosition = optionsContainerLayout.height + optionsTop\n const windowHeightWithScroll = windowHeight + this.s.scrollTop\n\n if (windowHeightWithScroll < optionsTotalBottomPosition) {\n this.setOptionsPositionAbove()\n } else {\n this.setState({optionsVisibility: \"visible\"})\n }\n }\n\n setOptionsPositionAbove() {\n const {endOfSelectLayout} = this.s\n\n this.setState(\n {\n opened: true,\n optionsPlacement: \"above\",\n optionsVisibility: \"visible\",\n optionsWidth: endOfSelectLayout.width\n },\n () => this.focusTextInput()\n )\n }\n\n setOptionsPositionBelow() {\n this.setState(\n {\n opened: true,\n optionsPlacement: \"below\",\n optionsVisibility: \"hidden\",\n optionsWidth: this.s.endOfSelectLayout.width\n },\n () => this.focusTextInput()\n )\n }\n\n onAnythingResized = () => {\n if (this.s.opened) {\n this.setOptionsPosition()\n }\n }\n\n onAnythingResizedDebounced = debounce(this.tt.onAnythingResized, 25)\n\n onAnythingScrolled = () => {\n if (this.s.opened) {\n this.setState({\n scrollLeft: Platform.OS == \"web\" ? document.documentElement.scrollLeft : null,\n scrollTop: Platform.OS == \"web\" ? document.documentElement.scrollTop : null\n })\n this.setOptionsPosition()\n }\n }\n\n onAnythingScrolledDebounced = debounce(this.tt.onAnythingScrolled, 25)\n\n onPressOutsideOptions = () => {\n // If options are open and a click is made outside of the options container\n if (this.s.opened) {\n this.closeOptions()\n }\n }\n\n optionsContainer() {\n const {selectContainerLayout, loadedOptions, endOfSelectLayout, optionsContainerLayout, optionsPlacement, optionsVisibility} = this.s\n let left, top\n\n let style = {\n position: \"absolute\",\n zIndex: 99999,\n elevation: 99999,\n visibility: optionsVisibility,\n width: this.p.optionsWidth || this.s.optionsWidth,\n backgroundColor: \"#fff\",\n border: \"1px solid #999\",\n maxHeight: 300,\n overflowY: \"auto\"\n }\n\n if (!this.p.optionsPortal) {\n style.top = 0\n style.left = 0\n } else if (!this.p.optionsAbsolute) {\n style.left = 0\n style.bottom = 0\n } else if (optionsPlacement == \"below\") {\n if (Platform.OS == \"web\") {\n // onLayout top value is sometimes negative so use browser JS to get it instead\n top = digg(this.tt.endOfSelectRef.current.getBoundingClientRect(), \"top\") + document.documentElement.scrollTop + 1\n\n // onLayout left values doesn't always update when changed\n left = digg(this.tt.endOfSelectRef.current.getBoundingClientRect(), \"left\") + document.documentElement.scrollLeft\n } else {\n left = this.s.endOfSelectLayout.left\n top = selectContainerLayout.top\n }\n\n style.left = left\n style.top = top - 2\n } else if (optionsPlacement == \"above\") {\n if (Platform.OS == \"web\") {\n // onLayout top value is sometimes negative so use browser JS to get it instead\n top = digg(this.tt.selectContainerRef.current.getBoundingClientRect(), \"top\") + document.documentElement.scrollTop\n\n // onLayout left values doesn't always update when changed\n left = digg(this.tt.selectContainerRef.current.getBoundingClientRect(), \"left\") + document.documentElement.scrollLeft\n } else {\n left = endOfSelectLayout.left\n top = selectContainerLayout.top\n }\n\n style.left = left\n style.top = top - optionsContainerLayout.height + 1\n } else {\n throw new Error(`Unkonwn options placement: ${optionsPlacement}`)\n }\n\n style = this.stylingFor(\"optionsContainer\", style, [left, top, style.visibility, style.width])\n\n const id = idForComponent(this)\n\n return (\n <View\n dataSet={this.cache(\"optionsContainerDataSet\", {class: \"options-container\", id, role: \"dialog\"}, [id])}\n onLayout={this.tt.onOptionsContainerLayout}\n ref={this.tt.optionsContainerRef}\n style={style}\n >\n {loadedOptions?.map((loadedOption) =>\n this.hayaSelectOption({\n key: loadedOption.key || `loaded-option-${loadedOption.value}`,\n loadedOption\n })\n )}\n {loadedOptions?.length === 0 &&\n <View dataSet={this.noOptionsContainerDataSet ||= {class: \"no-options-container\"}}>\n <Text>{this.p.noOptionsText ? this.p.noOptionsText() : this.translate(\".no_options_found\")}</Text>\n </View>\n }\n </View>\n )\n }\n\n onOptionClicked = (event, loadedOption) => {\n event.preventDefault()\n event.stopPropagation()\n\n const {onChange, toggleOptions} = this.props\n const {multiple} = this.p\n const currentOptions = this.getCurrentOptions()\n const toggled = this.getToggled()\n const newState = {}\n const existingOption = currentOptions.find((currentOption) => currentOption.value == loadedOption.value)\n const newToggled = {...toggled}\n let newCurrentOptions\n\n if (existingOption) {\n if (toggleOptions) {\n const currentToggle = toggled[loadedOption.value]\n const currentIndex = toggleOptions.findIndex((element) => element.value == currentToggle)\n\n if (currentIndex >= (toggleOptions.length - 1)) {\n // No next toggled - remove toggled and option\n delete newToggled[loadedOption.value]\n\n newCurrentOptions = currentOptions.filter((currentOption) => currentOption.value != loadedOption.value)\n } else {\n // Already toggled - set to next toggle\n newToggled[loadedOption.value] = digg(toggleOptions, currentIndex + 1, \"value\")\n }\n\n newState.toggled = newToggled\n } else {\n // Remove from current options\n newCurrentOptions = currentOptions.filter((currentOption) => currentOption.value != loadedOption.value)\n }\n } else {\n // Don't do anything if the clicked option is disabled\n if (loadedOption.disabled) return\n\n if (toggleOptions) {\n // Set fresh toggle\n newToggled[loadedOption.value] = toggleOptions[0].value\n newState.toggled = newToggled\n }\n\n if (multiple || toggleOptions) {\n newCurrentOptions = currentOptions.concat([loadedOption])\n } else {\n newCurrentOptions = [loadedOption]\n }\n }\n\n if (\"values\" in this.props && this.props.values !== undefined) {\n // currentOptions are controlled and a useMemo callback is handeling setting current options.\n } else if (newCurrentOptions) {\n newState.currentOptions = newCurrentOptions\n }\n\n const options = newCurrentOptions || currentOptions\n\n if (onChange) {\n onChange({\n event,\n options,\n toggles: newToggled\n })\n }\n\n if (this.props.onChangeValue) {\n let optionValue\n\n if (multiple) {\n optionValue = options.map((option) => option.value)\n } else {\n optionValue = dig(options, 0, \"value\")\n }\n\n this.p.onChangeValue(optionValue)\n }\n\n if (!multiple) this.closeOptions()\n this.setState(newState)\n }\n\n stylingFor(stylingName, style = {}, caches = []) {\n let customStyling = dig(this, \"props\", \"styles\", stylingName)\n\n if (typeof customStyling == \"function\") customStyling = customStyling({state: this.state, style})\n\n if (customStyling) {\n return Object.assign(style, customStyling)\n }\n\n return this.cache(`stylingFor-${stylingName}`, style, caches)\n }\n\n iconForOption(option) {\n const {toggleOptions} = this.props || {}\n const toggled = this.getToggled()\n\n if (toggleOptions && (option.value in toggled)) {\n const toggledValue = toggled[option.value]\n const toggledOption = toggleOptions.find((element) => element.value == toggledValue)\n\n if (!toggledOption) {\n throw new Error(`Couldn't find a toggle option for value: ${toggledValue}`)\n }\n\n return toggledOption.icon\n }\n }\n\n presentOption = (option, mode) => {\n const {toggleOptions} = this.props || {}\n const toggled = this.getToggled()\n const icon = this.iconForOption(option)\n const toggleValue = toggled[option.value]\n const toggleOption = toggleOptions?.find((toggleOptionI) => toggleOptionI.value == toggleValue)\n let style\n\n if (mode == \"current\") {\n style = this.stylingFor(\"currentOptionPresentationText\", {flex: 1, whiteSpace: \"nowrap\"})\n } else {\n style = this.stylingFor(\"optionPresentationText\", {flex: 1, whiteSpace: \"nowrap\"})\n }\n\n return (\n <View\n dataSet={{\n class: \"option-presentation\",\n text: option.text,\n toggleIcon: toggleOption?.icon,\n toggleValue: toggleOption?.value,\n value: option.value\n }}\n style={this.optionPresentationStyle ||= {flexDirection: \"row\"}}\n >\n {toggleOptions && !(option.value in toggled) &&\n <View\n dataSet={this.toggleIconPlaceholderDataSet ||= {class: \"toggle-icon-placeholder\"}}\n style={this.toggleIconPlaceholderStyle ||= {width: 20}}\n />\n }\n {toggleOptions && (option.value in toggled) &&\n <View style={this.toggleIconContainerStyle ||= {alignItems: \"center\", justifyContent: \"center\", width: 20}}>\n <FontAwesomeIcon\n dataSet={this.toggleIconDataSet ||= {class: \"toggle-icon\"}}\n name={icon}\n />\n </View>\n }\n {(() => {\n if (mode == \"current\" && option.currentContent) {\n return option.currentContent()\n } else if (option.content) {\n return option.content()\n } else if (\"html\" in option && Platform.OS != \"web\") {\n return <RenderHtml source={{html: digg(option, \"html\")}} />\n } else if (\"html\" in option && Platform.OS == \"web\") {\n return <div dangerouslySetInnerHTML={{__html: digg(option, \"html\")}} />\n } else {\n return (\n <Text\n dataSet={this.optionPresentationTextDataSet ||= {class: \"option-presentation-text\"}}\n style={style}\n >\n {option.text}\n </Text>\n )\n }\n })()}\n </View>\n )\n }\n\n async setCurrentFromGivenValues() {\n const {options, values} = this.p\n const currentOptions = await options({values})\n const currentValues = currentOptions?.map((currentOption) => currentOption.value)\n const stateValues = this.s.currentOptions?.map((currentOption) => currentOption.value)\n\n if (anythingDifferent(currentValues, stateValues)) {\n this.setState({currentOptions})\n }\n }\n}))\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"option-group.js","sourceRoot":"","sources":["../../src/select/option-group.jsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,OAAO,CAAA;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,4CAA4C,CAAA;AACzF,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAA;AAEvC,eAAe,IAAI,CAAC,cAAc,CAAC,MAAM,WAAY,SAAQ,cAAc;IACzE,MAAM,CAAC,SAAS,GAAG;QACjB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;KACpC,CAAA;IAED,MAAM;QACJ,OAAO,CACL,oBAAC,IAAI,IACH,OAAO,EAAE,IAAI,CAAC,eAAe,KAAK,EAAC,KAAK,EAAE,2BAA2B,EAAC,EACtE,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK;gBAC5B,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE,MAAM;aACnB;YAED,oBAAC,IAAI,QACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAClB,CACF,CACR,CAAA;IACH,CAAC;CACF,CAAC,CAAC,CAAA","sourcesContent":["import {memo} from \"react\"\nimport PropTypes from \"prop-types\"\nimport React from \"react\"\nimport {shapeComponent, ShapeComponent} from \"set-state-compare/build/shape-component.js\"\nimport {Text, View} from \"react-native\"\n\nexport default memo(shapeComponent(class OptionGroup extends ShapeComponent {\n static propTypes = {\n option: PropTypes.object.isRequired\n }\n\n render() {\n return (\n <View\n dataSet={this.rootViewDataSet ||= {class: \"haya-select--option-group\"}}\n style={this.rootViewStyle ||= {\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 8,\n color: \"#000\",\n fontWeight: \"bold\"\n }}\n >\n <Text>\n {this.props.option.text}\n </Text>\n </View>\n )\n }\n}))\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"option.js","sourceRoot":"","sources":["../../src/select/option.jsx"],"names":[],"mappings":"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","sourcesContent":["import {shapeComponent, ShapeComponent} from \"set-state-compare/build/shape-component.js\"\nimport {memo, useMemo} from \"react\"\nimport {Pressable} from \"react-native\"\nimport PropTypes from \"prop-types\"\nimport React from \"react\"\n\nexport default memo(shapeComponent(class Option extends ShapeComponent {\n static defaultProps = {\n disabled: false\n }\n\n static propTypes = {\n currentOptionValues: PropTypes.array,\n disabled: PropTypes.bool.isRequired,\n icon: PropTypes.string,\n onOptionClicked: PropTypes.func.isRequired,\n option: PropTypes.object.isRequired,\n presentOption: PropTypes.func.isRequired\n }\n\n setup() {\n this.useStates({\n hover: false\n })\n }\n\n render() {\n const {currentOptionValues, option} = this.p\n const {hover} = this.s\n const disabled = Boolean(option.disabled)\n const selected = Boolean(currentOptionValues?.find((currentOptionValue) => currentOptionValue == option.value))\n\n const style = useMemo(() => {\n const style = {\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 8,\n color: \"#000\"\n }\n\n if (disabled) {\n style.cursor = \"default\"\n style.opacity = 0.6\n } else {\n style.cursor = \"pointer\"\n }\n\n if (selected) {\n style.backgroundColor = \"#80b2ff\"\n }\n\n if (hover) {\n style.backgroundColor = \"steelblue\"\n }\n\n return style\n }, [disabled, hover, selected])\n\n return (\n <Pressable\n dataSet={this.cache(\"pressableDataSet\", {\n class: \"select-option\",\n disabled,\n selected,\n value: this.props.option.value\n }, [disabled, selected, this.props.option.value])}\n onPress={this.tt.onPress}\n onPointerOver={this.tt.onPointerOver}\n onPointerOut={this.tt.onPointerOut}\n style={style}\n >\n {this.p.presentOption(option, \"option\")}\n </Pressable>\n )\n }\n\n onPointerOver = () => this.setState({hover: true})\n onPointerOut = () => this.setState({hover: false})\n onPress = (e) => this.p.onOptionClicked(e, this.props.option)\n}))\n"]}
|