{"version":3,"file":"ngx-qrcode-styling-his.mjs","sources":["../../../projects/ngx-qrcode-styling/src/lib/ngx-qrcode-styling.templates.ts","../../../projects/ngx-qrcode-styling/src/lib/ngx-qrcode-styling.helper.ts","../../../projects/ngx-qrcode-styling/src/lib/ngx-qrcode-styling.service.ts","../../../projects/ngx-qrcode-styling/src/lib/ngx-qrcode-styling.component.ts","../../../projects/ngx-qrcode-styling/src/lib/ngx-qrcode-styling.module.ts","../../../projects/ngx-qrcode-styling/src/public_api.ts","../../../projects/ngx-qrcode-styling/src/ngx-qrcode-styling-his.ts"],"sourcesContent":["import { Options } from \"./ngx-qrcode-styling.options\";\r\n\r\nexport const Templates = (name: string) => {\r\n    switch (name) {\r\n        case 'default':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#202020',\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                }\r\n            } as Options;\r\n        case 'ocean':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'dots',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#36CDA5'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#1582AE'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#0277BD'\r\n                        }]\r\n                    }\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersSquareOptions: {\r\n                    type: 'square'\r\n                }\r\n            } as Options;\r\n        case 'sunflower':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'dots',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#BB8412'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#4D762E'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#2F702F'\r\n                        }]\r\n                    }\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#006B3B',\r\n                    type: 'dot'\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#006B3B',\r\n                    type: 'extra-rounded'\r\n                }\r\n            } as Options;\r\n        case 'luxury':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'classy-rounded',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#E29C0F'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#913C0C'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#732E0C'\r\n                        }]\r\n                    }\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#732E0C',\r\n                    type: 'dot'\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#732E0C',\r\n                    type: 'extra-rounded'\r\n                }\r\n            } as Options;\r\n        case 'bitcoin':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#3a3a3a',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#ff9900'\r\n                },\r\n                cornersSquareOptions: {\r\n                    type: 'extra-rounded'\r\n                }\r\n            } as Options;\r\n        case 'starbucks':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#3a3a3a',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#00643C',\r\n                    type: 'dot'\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#00643C',\r\n                    type: 'extra-rounded'\r\n                }\r\n            } as Options;\r\n        case 'angular':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#c3002f',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                }\r\n            } as Options;\r\n        case 'facebook':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#4D72A9',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                }\r\n            } as Options;\r\n        case 'beans':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#416B2C',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#60A541',\r\n                    type: 'dot'\r\n                },\r\n                cornersSquareOptions: {\r\n                    type: 'extra-rounded'\r\n                }\r\n            } as Options;\r\n        case 'green':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#006B3B',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#006B3B',\r\n                    type: 'dot'\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#006B3B',\r\n                    type: 'extra-rounded'\r\n                }\r\n            } as Options;\r\n        case 'sky':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#2c7597',\r\n                    type: 'rounded'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                },\r\n            } as Options;\r\n        case 'mosaic':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'rounded',\r\n                    gradient: {\r\n                        rotation: 190,\r\n                        type: 'linear',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#0277BD'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#943A40'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#A13535'\r\n                        }]\r\n                    }\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                }\r\n            } as Options;\r\n        case 'coffee':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#5E4F39',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#FAEDE7\",\r\n                }\r\n            } as Options;\r\n        case 'vintage':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#2D7363',\r\n                    type: 'extra-rounded'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#E7E5C5\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#BE8C49',\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#2D7363',\r\n                }\r\n            } as Options;\r\n        case 'stamp':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#2a3c16',\r\n                    type: 'square'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#9cc66e\",\r\n                },\r\n                cornersDotOptions: {\r\n                    color: '#4c692c',\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#2a3c16',\r\n                }\r\n            } as Options;\r\n        case 'chess':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#F4EAA5',\r\n                    type: 'dots'\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#494B49\",\r\n                }\r\n            } as Options;\r\n        case 'jungle':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'classy-rounded',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#84b931'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#537234'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#537234'\r\n                        }]\r\n                    }\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#434343',\r\n                    gradient: {\r\n                    type: 'radial',\r\n                    colorStops: [{\r\n                        offset: 0,\r\n                        color: '#84b931'\r\n                    }, {\r\n                        offset: 1,\r\n                        color: '#537234'\r\n                    }, {\r\n                        offset: 2,\r\n                        color: '#537234'\r\n                    }]\r\n                    }\r\n                }\r\n            } as Options;\r\n        case 'arabic':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'classy-rounded',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#393939'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#393939'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#393939'\r\n                        }]\r\n                    }\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#434343',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#393939'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#72a28b'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#72a28b'\r\n                        }]\r\n                    }\r\n                }\r\n            } as Options;\r\n        case 'tea':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'extra-rounded',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#72b0b4'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#035558'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#035558'\r\n                        }]\r\n                    }\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#434343',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#72b0b4'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#035558'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#035558'\r\n                        }]\r\n                    }\r\n                }\r\n            } as Options;\r\n        case 'grape':\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    type: 'rounded',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#7076ae'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#2a3240'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#2a3240'\r\n                        }]\r\n                    }\r\n                },\r\n                cornersSquareOptions: {\r\n                    color: '#434343',\r\n                    gradient: {\r\n                        type: 'radial',\r\n                        colorStops: [{\r\n                            offset: 0,\r\n                            color: '#7b7cb5'\r\n                        }, {\r\n                            offset: 1,\r\n                            color: '#2a3240'\r\n                        }, {\r\n                            offset: 2,\r\n                            color: '#2a3240'\r\n                        }]\r\n                    }\r\n                }\r\n            } as Options;\r\n        default:\r\n            return {\r\n                data: '',\r\n                qrOptions: {\r\n                    errorCorrectionLevel: 'Q'\r\n                },\r\n                dotsOptions: {\r\n                    color: '#202020',\r\n                },\r\n                backgroundOptions: {\r\n                    color: \"#ffffff\",\r\n                }\r\n            } as Options;\r\n    }\r\n}","import QRCodeStyling from 'qr-code-styling'\r\nimport { AsyncSubject } from 'rxjs';\r\n\r\nimport { Templates } from './ngx-qrcode-styling.templates'\r\nimport { Options } from './ngx-qrcode-styling.options'\r\n\r\n/**\r\n * HAS_OWN_PROPERTY\r\n * Fix issue vs ng v 6-7-8\r\n * Optional chaining (?.) just have on ng v 9++\r\n * eg: HAS_OWN_PROPERTY(config, 'frameOptions.style') // output: boolean\r\n * @param obj \r\n * @param propertyPath \r\n * @returns \r\n */\r\nconst HAS_OWN_PROPERTY = (obj: any, propertyPath: string) => {\r\n    const properties = propertyPath.split(\".\");\r\n    for (let  i = 0; i < properties.length; i++) {\r\n        let prop = properties[i];\r\n        if (!obj.hasOwnProperty(prop)) {\r\n            return false;\r\n        } else {\r\n            obj = obj[prop];\r\n        }\r\n    }\r\n    return true;\r\n};\r\n\r\n/**\r\n * drawQrcode\r\n * @param config \r\n * @param container \r\n * @returns \r\n */\r\nexport function drawQrcode(config: Options, container: HTMLElement | HTMLVideoElement | HTMLCanvasElement | SVGElement | any): AsyncSubject<any> {\r\n    \r\n    // Reject\r\n    if (!config || !container) return;\r\n\r\n    const subject = new AsyncSubject();\r\n    const element = document.createElement(\"div\");\r\n    \r\n    /**\r\n     * QRCODE_NONE_FRAME\r\n     * @returns \r\n     */\r\n    const QRCODE_NONE_FRAME = () => {\r\n        if (HAS_OWN_PROPERTY(config, 'frameOptions')) {\r\n            return false;\r\n        } else {\r\n            const encodeConfig = () => {\r\n                let deep = config && JSON.parse(JSON.stringify(config)); // deep\r\n                return Object.assign({data: (window as any).unescape(encodeURIComponent(deep && deep.data || ''))}, deep);\r\n            }\r\n            // removeChild\r\n            while (container.firstChild) {\r\n                container.removeChild(container.lastChild);\r\n            }\r\n            const CR = new QRCodeStyling(encodeConfig() as Options);\r\n            // append to container\r\n            CR.append(container);\r\n            return true;\r\n        }\r\n    }\r\n\r\n    const styleName = HAS_OWN_PROPERTY(config, 'frameOptions.style') ? config.frameOptions.style : 'F_020';\r\n    const height = HAS_OWN_PROPERTY(config, 'frameOptions.height') ? config.frameOptions.height : 300;\r\n    const width = HAS_OWN_PROPERTY(config, 'frameOptions.width') ? config.frameOptions.width : 300;\r\n    const x = HAS_OWN_PROPERTY(config, 'frameOptions.x') ? config.frameOptions.x : 50;\r\n    const y = HAS_OWN_PROPERTY(config, 'frameOptions.y') ? config.frameOptions.y : 50;\r\n\r\n    /**\r\n     * ADD_FRAME_SVG_TO_ELEMENT\r\n     * @returns\r\n     */\r\n    const ADD_FRAME_SVG_TO_ELEMENT = () => {\r\n        const http = fetch(`https://raw.githubusercontent.com/id1945/ngx-qrcode-styling/master/svg/${styleName}.svg`, { method: 'GET' })\r\n        return new Promise((resolve, reject) => {\r\n            http.then(response => response.text()).then(result => {\r\n                if (result !== \"404: Not Found\") {\r\n                    upgradeSvg(result);\r\n                }\r\n                resolve(result);\r\n            }).catch(error => {\r\n                console.error(error);\r\n                reject(error);\r\n            });\r\n        });\r\n    }\r\n\r\n    const upgradeSvg = (result: string) => {\r\n        const parser = new DOMParser();\r\n        const doc = parser.parseFromString(result, \"image/svg+xml\");\r\n        if (doc) {\r\n            const svgEl = (doc.documentElement.children as any)[styleName + '_svg'];\r\n            if (!svgEl) return;\r\n            const textEls = svgEl.getElementsByClassName(\"frame-text\");\r\n            const contentEls = svgEl.getElementsByClassName(\"frame-content\");\r\n            const containerEls = svgEl.getElementsByClassName(\"frame-container\");\r\n            const updateStyle = (el: any, config: any) => {\r\n                if (el) {\r\n                    for (const key in config) {\r\n                        if ((['x', 'y', 'transform'] as any).includes(key)) {\r\n                            el.setAttribute(key, config && config[key]);\r\n                        } else if ((['textContent'] as any).includes(key)) {\r\n                            el[key] = config && config[key];\r\n                        } else {\r\n                            el.style[key] = config && config[key];\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n\r\n            const createElementNS = (config: any) => {\r\n                const svgNS = \"http://www.w3.org/2000/svg\";\r\n                const newText = document.createElementNS(svgNS, \"text\");\r\n                updateStyle(newText, config);\r\n                svgEl.appendChild(newText);\r\n            }\r\n\r\n            if (HAS_OWN_PROPERTY(config, 'frameOptions.texts')) {\r\n                Object.assign([], config.frameOptions.texts).forEach((text: any, i: any) => {\r\n                    const el = Object.assign([], textEls)[i];\r\n                    el ? updateStyle(el, text) : createElementNS(text);\r\n                });\r\n            }\r\n\r\n            if (HAS_OWN_PROPERTY(config, 'frameOptions.containers')) {\r\n                Object.assign([], containerEls).forEach((el: any, i: any) => {\r\n                    updateStyle(el, config.frameOptions.containers[i]);\r\n                });\r\n            }\r\n\r\n            if (HAS_OWN_PROPERTY(config, 'frameOptions.contents')) {\r\n                Object.assign([], contentEls).forEach((el: any, i: any) => {\r\n                    updateStyle(el, config.frameOptions.contents[i]);\r\n                });\r\n            }\r\n\r\n            element.appendChild(doc.documentElement);\r\n        }\r\n    }\r\n\r\n    /**\r\n     * UPDATE_POSITION_QRCODE_ON_FRAME\r\n     * @returns HTMLElement\r\n     */\r\n    const UPDATE_POSITION_QRCODE_ON_FRAME = () => {\r\n        const addsvg = element.querySelector('.addsvg');\r\n        addsvg && addsvg.setAttribute(\"transform\", `translate(${x},${y})`);\r\n        return addsvg as HTMLElement;\r\n    }\r\n\r\n    /**\r\n     * UPDATE_ROTATE_SCALE_QRCODE_ON_FRAME\r\n     * @param svg\r\n     * @returns void\r\n     */\r\n    const UPDATE_ROTATE_SCALE_QRCODE_ON_FRAME = (svg: HTMLElement) => {\r\n        if (HAS_OWN_PROPERTY(config, 'rotate') && svg) {\r\n            Object.assign([], svg.childNodes[0].childNodes).forEach((node: any) => {\r\n                if (node.nodeName === 'rect') {\r\n                    node.style.transformOrigin = `50% 50%`;\r\n                    node.style.transform = `rotate(${config && config.rotate || 0}deg)`;\r\n                }\r\n            });\r\n        }\r\n        if (HAS_OWN_PROPERTY(config, 'scale') && svg) {\r\n            Object.assign([], svg.childNodes[0].childNodes).forEach((node: any) => {\r\n                if (node.nodeName === 'rect') {\r\n                    node.style.scale = config && config.scale || 0;\r\n                }\r\n            });\r\n        }\r\n    }\r\n\r\n    /**\r\n     * CREATE_QRCODE_INTO_FRAME\r\n     * @param addsvg \r\n     * @returns \r\n     */\r\n    const CREATE_QRCODE_INTO_FRAME = (addsvg: HTMLElement) => {\r\n        const defaultConfig = () => {\r\n            let deep = config && JSON.parse(JSON.stringify(config)); // deep\r\n            deep = Object.assign({}, deep, { type: 'svg', data: (window as any).unescape(encodeURIComponent(deep && deep.data || '')) });\r\n            delete deep.frameOptions;\r\n            delete deep.template;\r\n            return deep;\r\n        }\r\n        // removeChild\r\n        while (container.firstChild) {\r\n            container.removeChild(container.lastChild);\r\n        }\r\n        const CR = new QRCodeStyling(defaultConfig() as Options);\r\n        return HAS_OWN_PROPERTY(CR, '_svgDrawingPromise') && CR._svgDrawingPromise.then(() => {\r\n            CR.append(addsvg);\r\n        }).catch((error: any) => console.error(error))\r\n    }\r\n\r\n    /**\r\n     * QRCODE_TYPE_SVG\r\n     * @returns \r\n     */\r\n    const QRCODE_TYPE_SVG = () => {\r\n        if (config && config.type === 'svg') {\r\n            UPDATE_SIZE_SVG();\r\n            container.appendChild(element);\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    /**\r\n     * CREATE_CANVAS_WITH_SIZE\r\n     * @returns \r\n     */\r\n    const CREATE_CANVAS_WITH_SIZE = () => {\r\n        const canvas = document.createElement('canvas');\r\n        canvas.height = height;\r\n        canvas.width = width;\r\n        container.appendChild(canvas);\r\n        return canvas;\r\n    }\r\n\r\n    /**\r\n     * ELEMENT_CONVERT_TO_BASE64\r\n     * @param s1 \r\n     * @returns \r\n     */\r\n    const ELEMENT_CONVERT_TO_BASE64 = (s1: HTMLElement) => {\r\n        let b64 = \"data:image/svg+xml;base64,\";\r\n        const xml = s1 && new XMLSerializer().serializeToString(s1);\r\n        return b64 += xml && btoa(unescape(encodeURIComponent(xml)));\r\n    }\r\n\r\n    /**\r\n     * UPDATE_SIZE_SVG\r\n     * @returns \r\n     */\r\n    const UPDATE_SIZE_SVG = () => {\r\n        const s1 = element.querySelector(`#${styleName}_svg`);\r\n        s1 && s1.setAttribute('height', `${height}px`);\r\n        s1 && s1.setAttribute('width', `${width}px`);\r\n        return s1 as HTMLElement;\r\n    }\r\n\r\n    /**\r\n     * BASE64_TO_BLOB\r\n     * @param base64Image \r\n     * @returns \r\n     */\r\n    const BASE64_TO_BLOB = (base64Image: string) => {\r\n        // Split into two parts\r\n        const parts = base64Image.split(\";base64,\");\r\n        // Hold the content type\r\n        const imageType = parts[0].split(\":\")[1];\r\n        // Decode Base64 string\r\n        const decodedData = window.atob(parts[1]);\r\n        // Create UNIT8ARRAY of size same as row data length\r\n        const uInt8Array = new Uint8Array(decodedData.length);\r\n        // Insert all character code into uInt8Array\r\n        for (let i = 0; i < decodedData.length; ++i) {\r\n            uInt8Array[i] = decodedData.charCodeAt(i);\r\n        }\r\n        // Return BLOB image after conversion\r\n        return new Blob([uInt8Array], { type: imageType });\r\n    }\r\n\r\n    /**\r\n     * CREATE_IMAGE\r\n     */\r\n    const CREATE_IMAGE = () => {\r\n        const img = new Image();\r\n        const ctx = CREATE_CANVAS_WITH_SIZE().getContext(\"2d\");\r\n        img.onload = function () {\r\n            ctx && ctx.drawImage(img, 0, 0);\r\n        };\r\n        const blob = BASE64_TO_BLOB(ELEMENT_CONVERT_TO_BASE64(UPDATE_SIZE_SVG()));\r\n        const blobUrl = URL.createObjectURL(blob);\r\n        img.src = blobUrl;\r\n    }\r\n\r\n    /**\r\n     * MAIN\r\n     */\r\n    (async function () {\r\n        if (QRCODE_NONE_FRAME()) {\r\n            subject.next({ config, container });\r\n            subject.complete();\r\n            return // Mode qrcode basic\r\n        } else {\r\n            await ADD_FRAME_SVG_TO_ELEMENT();\r\n            const ADDSVG = UPDATE_POSITION_QRCODE_ON_FRAME();\r\n            await CREATE_QRCODE_INTO_FRAME(ADDSVG);\r\n            UPDATE_ROTATE_SCALE_QRCODE_ON_FRAME(ADDSVG);\r\n            if (QRCODE_TYPE_SVG()) {\r\n                // Mode qrcode + frame type svg\r\n                subject.next({ config, container });\r\n                subject.complete();\r\n            } else {\r\n                // Mode qrcode + frame type canvas\r\n                CREATE_IMAGE();\r\n                subject.next({ config, container });\r\n                subject.complete();\r\n            }\r\n        }\r\n    })();\r\n\r\n    return subject;\r\n}\r\n\r\n\r\n/**\r\n * defaultTemplate\r\n * @param config \r\n * @returns \r\n */\r\nexport const defaultTemplate = (config?: Options): Options => {\r\n    let deep = config && JSON.parse(JSON.stringify(config));\r\n    return HAS_OWN_PROPERTY(config, 'template') ? Object.assign({}, Templates(config.template.toLocaleLowerCase()), deep) : deep;\r\n};\r\n\r\n/**\r\n * deepUpdate\r\n * @param config \r\n * @param configUpdate \r\n * @returns \r\n */\r\nexport const deepUpdate = async (config: Options, configUpdate: Options): Promise<Options> => {\r\n    const origin = config && JSON.parse(JSON.stringify(config));\r\n    let clone = Object.assign({}, origin, configUpdate);\r\n    const keys = ['frameOptions', 'qrOptions', 'imageOptions', 'dotsOptions', 'cornersSquareOptions', 'cornersDotOptions', 'backgroundOptions'];\r\n    for await (const key of keys) {\r\n        if (HAS_OWN_PROPERTY(configUpdate, key)) {\r\n            const update = { \r\n                [key]: Object.assign({}, origin && origin[key], (configUpdate as any)[key])\r\n            };\r\n            clone = Object.assign({}, clone, update);\r\n        }\r\n    }\r\n    return clone;\r\n};\r\n","import { Injectable } from '@angular/core'\r\nimport { AsyncSubject, throwError } from 'rxjs';\r\n\r\nimport { Options } from './ngx-qrcode-styling.options'\r\nimport { deepUpdate, defaultTemplate, drawQrcode } from './ngx-qrcode-styling.helper'\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NgxQrcodeStylingService {\r\n\r\n  /**\r\n   * create\r\n   * @param config \r\n   * @param container \r\n   * @returns \r\n   */\r\n  public create(config: Options, container: HTMLElement | HTMLVideoElement | HTMLCanvasElement | SVGElement | any): AsyncSubject<any> {\r\n    return drawQrcode(defaultTemplate(config), container);\r\n  }\r\n\r\n  /**\r\n   * update\r\n   * @param config \r\n   * @param configUpdate \r\n   * @param container \r\n   * @returns \r\n   */\r\n  public update(config: Options, configUpdate: Options, container: HTMLElement | HTMLVideoElement | HTMLCanvasElement | SVGElement | any): AsyncSubject<any> {\r\n    const subject = new AsyncSubject();\r\n    (async function () {\r\n      const conf = await deepUpdate(defaultTemplate(config), defaultTemplate(configUpdate));\r\n      drawQrcode(conf, container).subscribe(s => {\r\n        subject.next(s);\r\n        subject.complete();\r\n      });\r\n    })();\r\n    return subject;\r\n  }\r\n\r\n  /**\r\n   * download image\r\n   * @param fileName eg: demo.png\r\n   * @param container \r\n   * @param timeout \r\n   * @returns \r\n   */\r\n  public download(fileName: string, container: HTMLElement | HTMLVideoElement | HTMLCanvasElement | SVGElement | any, timeout = 100): AsyncSubject<any> {\r\n    const subject = new AsyncSubject();\r\n    setTimeout(() => {\r\n      const canvas = container && container.querySelector('canvas')\r\n      if (canvas) {\r\n        const typeImg = fileName ? fileName.split('.').slice(-1).toString() : 'png';\r\n        const dataURL = canvas.toDataURL('image/' + typeImg);\r\n        const link = document.createElement('a');\r\n        link.download = fileName;\r\n        link.href = dataURL;\r\n        link.click();\r\n        link.remove();\r\n        subject.next({ fileName, container });\r\n      } else {\r\n        subject.error(throwError('Container not found!'));\r\n      }\r\n      subject.complete();\r\n    }, timeout);\r\n    return subject;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewEncapsulation } from '@angular/core'\r\nimport { AsyncSubject } from 'rxjs';\r\n\r\nimport {\r\n  CornerDotType,\r\n  CornerSquareType,\r\n  DotType,\r\n  DrawType,\r\n  ErrorCorrectionLevel,\r\n  FrameStyle,\r\n  Gradient,\r\n  Mode,\r\n  Options,\r\n  ShapeType,\r\n  TemplateType,\r\n  TypeNumber,\r\n  UnknownObject,\r\n} from './ngx-qrcode-styling.options'\r\nimport { NgxQrcodeStylingService } from './ngx-qrcode-styling.service'\r\n\r\n@Component({\r\n  selector: 'ngx-qrcode-styling',\r\n  template: '<ng-content></ng-content>',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgxQrcodeStylingComponent implements OnInit {\r\n\r\n  /**\r\n   * Options\r\n   */\r\n  @Input()\r\n  public config!: Options;\r\n\r\n  /**\r\n   * TemplateType\r\n   */\r\n  @Input()\r\n  public template: TemplateType = 'default';\r\n\r\n  /**\r\n   * DrawType\r\n   */\r\n  @Input()\r\n  public type!: DrawType;\r\n\r\n  /**\r\n   * ShapeType\r\n   */\r\n  @Input()\r\n  public shape!: ShapeType;\r\n\r\n  /**\r\n   * number\r\n   */\r\n  @Input()\r\n  public width!: number;\r\n\r\n  /**\r\n   * number\r\n   */\r\n  @Input()\r\n  public height!: number;\r\n\r\n  /**\r\n   * number\r\n   */\r\n  @Input()\r\n  public margin!: number;\r\n\r\n  /**\r\n   * string\r\n   */\r\n  @Input()\r\n  public data!: string;\r\n\r\n  /**\r\n   * string\r\n   */\r\n  @Input()\r\n  public image!: string;\r\n\r\n  /**\r\n   * number\r\n   */\r\n  @Input()\r\n  public scale: number = 0;\r\n\r\n  /**\r\n   * string\r\n   */\r\n  @Input()\r\n  public rotate: number = 0;\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  public frameOptions!: {\r\n    style?: FrameStyle;\r\n    height?: number;\r\n    width?: number;\r\n    x?: number;\r\n    y?: number;\r\n    texts?: UnknownObject[];\r\n    contents?: UnknownObject[];\r\n    containers?: UnknownObject[];\r\n  };\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  qrOptions!: {\r\n    typeNumber?: TypeNumber;\r\n    mode?: Mode;\r\n    errorCorrectionLevel?: ErrorCorrectionLevel;\r\n  };\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  imageOptions!: {\r\n    hideBackgroundDots?: boolean;\r\n    imageSize?: number;\r\n    crossOrigin?: string;\r\n    margin?: number;\r\n  };\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  dotsOptions!: {\r\n    type?: DotType;\r\n    color?: string;\r\n    gradient?: Gradient;\r\n  };\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  cornersSquareOptions!: {\r\n    type?: CornerSquareType;\r\n    color?: string;\r\n    gradient?: Gradient;\r\n  };\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  cornersDotOptions!: {\r\n    type?: CornerDotType;\r\n    color?: string;\r\n    gradient?: Gradient;\r\n  };\r\n\r\n  /**\r\n   * object\r\n   */\r\n  @Input()\r\n  backgroundOptions!: {\r\n    round?: number;\r\n    color?: string;\r\n    gradient?: Gradient;\r\n  };\r\n\r\n  constructor(\r\n    private canvas: ElementRef,\r\n    private service: NgxQrcodeStylingService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.canvas) {\r\n\r\n      /**\r\n       * @Input override\r\n       */\r\n      if (this.template)\r\n        this.config = {\r\n          ...this.config,\r\n          template: this.template\r\n        };\r\n\r\n      if (this.type)\r\n        this.config = {\r\n          ...this.config,\r\n          type: this.type\r\n        };\r\n\r\n      if (this.shape)\r\n        this.config = {\r\n          ...this.config,\r\n          shape: this.shape\r\n        };\r\n\r\n      if (this.width)\r\n        this.config = {\r\n          ...this.config,\r\n          width: this.width\r\n        };\r\n\r\n      if (this.height)\r\n        this.config = {\r\n          ...this.config,\r\n          height: this.height\r\n        };\r\n\r\n      if (this.margin)\r\n        this.config = {\r\n          ...this.config,\r\n          margin: this.margin\r\n        };\r\n\r\n      if (this.data)\r\n        this.config = {\r\n          ...this.config,\r\n          data: this.data\r\n        };\r\n\r\n      if (this.image)\r\n        this.config = {\r\n          ...this.config,\r\n          image: this.image\r\n        };\r\n\r\n      if (this.scale)\r\n        this.config = {\r\n          ...this.config,\r\n          scale: this.scale\r\n        };\r\n\r\n      if (this.rotate)\r\n        this.config = {\r\n          ...this.config,\r\n          rotate: this.rotate\r\n        };\r\n\r\n      if (this.frameOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          frameOptions: this.frameOptions\r\n        };\r\n\r\n      if (this.qrOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          qrOptions: this.qrOptions\r\n        };\r\n\r\n      if (this.imageOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          imageOptions: this.imageOptions\r\n        };\r\n\r\n      if (this.dotsOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          dotsOptions: this.dotsOptions\r\n        };\r\n\r\n      if (this.cornersSquareOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          cornersSquareOptions: this.cornersSquareOptions\r\n        };\r\n\r\n      if (this.cornersDotOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          cornersDotOptions: this.cornersDotOptions\r\n        };\r\n\r\n      if (this.backgroundOptions)\r\n        this.config = {\r\n          ...this.config,\r\n          backgroundOptions: this.backgroundOptions\r\n        };\r\n\r\n      this.create(this.config);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * create\r\n   * @param config \r\n   * @returns \r\n   */\r\n  public create(config: Options): AsyncSubject<any> {\r\n    return this.service.create(config, this.canvas.nativeElement);\r\n  }\r\n\r\n  /**\r\n   * update\r\n   * @param config \r\n   * @param configUpdate \r\n   * @returns \r\n   */\r\n  public update(config: Options, configUpdate: Options): AsyncSubject<any> {\r\n    return this.service.update(config, configUpdate, this.canvas.nativeElement);\r\n  }\r\n\r\n  /**\r\n   * download image\r\n   * @param fileName eg: demo.png\r\n   * @param timeout \r\n   * @returns \r\n   */\r\n  public download(fileName: string, timeout = 100): AsyncSubject<any> {\r\n    return this.service.download(fileName, this.canvas.nativeElement, timeout);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NgxQrcodeStylingComponent } from './ngx-qrcode-styling.component';\r\nimport { NgxQrcodeStylingService } from './ngx-qrcode-styling.service';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NgxQrcodeStylingComponent\r\n  ],\r\n  exports: [\r\n    NgxQrcodeStylingComponent\r\n  ],\r\n})\r\nexport class NgxQrcodeStylingModule { }\r\n","/*\r\n * Public API Surface of ngx-qrcode-styling\r\n */\r\n\r\nexport * from './lib/ngx-qrcode-styling.templates';\r\nexport * from './lib/ngx-qrcode-styling.options';\r\nexport * from './lib/ngx-qrcode-styling.service';\r\nexport * from './lib/ngx-qrcode-styling.component';\r\nexport * from './lib/ngx-qrcode-styling.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.NgxQrcodeStylingService"],"mappings":";;;;;AAEa,MAAA,SAAS,GAAG,CAAC,IAAY,KAAI;AACtC,IAAA,QAAQ,IAAI;AACR,QAAA,KAAK,SAAS;YACV,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,OAAO;YACR,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,IAAI,EAAE,QAAQ;AACjB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,WAAW;YACZ,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,QAAQ;YACT,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,SAAS;YACV,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,WAAW;YACZ,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,SAAS;YACV,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,UAAU;YACX,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,OAAO;YACR,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,OAAO;YACR,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,KAAK;YACN,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,SAAS;AAClB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,QAAQ;YACT,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,QAAQ,EAAE;AACN,wBAAA,QAAQ,EAAE,GAAG;AACb,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,QAAQ;YACT,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,SAAS;YACV,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,eAAe;AACxB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,OAAO;YACR,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,QAAQ;AACjB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,OAAO;YACR,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,QAAQ;YACT,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE;AACV,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACD,qBAAA;AACJ,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,QAAQ;YACT,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,KAAK;YACN,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;aACO,CAAC;AACjB,QAAA,KAAK,OAAO;YACR,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AAClB,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,QAAQ,EAAE;AACN,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,EAAE;AACC,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,KAAK,EAAE,SAAS;6BACnB,CAAC;AACL,qBAAA;AACJ,iBAAA;aACO,CAAC;AACjB,QAAA;YACI,OAAO;AACH,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,SAAS,EAAE;AACP,oBAAA,oBAAoB,EAAE,GAAG;AAC5B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACf,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA;aACO,CAAC;AACpB,KAAA;AACL;;ACpfA;;;;;;;;AAQG;AACH,MAAM,gBAAgB,GAAG,CAAC,GAAQ,EAAE,YAAoB,KAAI;IACxD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,IAAA,KAAK,IAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAA,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC3B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAAM,aAAA;AACH,YAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;AAKG;AACa,SAAA,UAAU,CAAC,MAAe,EAAE,SAAgF,EAAA;;AAGxH,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO;AAElC,IAAA,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAE9C;;;AAGG;IACH,MAAM,iBAAiB,GAAG,MAAK;AAC3B,QAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;AAC1C,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAAM,aAAA;YACH,MAAM,YAAY,GAAG,MAAK;AACtB,gBAAA,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAG,MAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAC,EAAE,IAAI,CAAC,CAAC;AAC9G,aAAC,CAAA;;YAED,OAAO,SAAS,CAAC,UAAU,EAAE;AACzB,gBAAA,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9C,aAAA;YACD,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,YAAY,EAAa,CAAC,CAAC;;AAExD,YAAA,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACrB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACL,KAAC,CAAA;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC;IACvG,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC;IAClG,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC;IAC/F,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;IAClF,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC;AAElF;;;AAGG;IACH,MAAM,wBAAwB,GAAG,MAAK;AAClC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,0EAA0E,SAAS,CAAA,IAAA,CAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAChI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAG;gBACjD,IAAI,MAAM,KAAK,gBAAgB,EAAE;oBAC7B,UAAU,CAAC,MAAM,CAAC,CAAC;AACtB,iBAAA;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;AACpB,aAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAG;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,CAAC;AAClB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AACP,KAAC,CAAA;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,MAAc,KAAI;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAC5D,QAAA,IAAI,GAAG,EAAE;AACL,YAAA,MAAM,KAAK,GAAI,GAAG,CAAC,eAAe,CAAC,QAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;YACjE,MAAM,YAAY,GAAG,KAAK,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;AACrE,YAAA,MAAM,WAAW,GAAG,CAAC,EAAO,EAAE,MAAW,KAAI;AACzC,gBAAA,IAAI,EAAE,EAAE;AACJ,oBAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,wBAAA,IAAK,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChD,4BAAA,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,yBAAA;6BAAM,IAAK,CAAC,aAAa,CAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;4BAC/C,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC,yBAAA;AAAM,6BAAA;AACH,4BAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACL,aAAC,CAAA;AAED,YAAA,MAAM,eAAe,GAAG,CAAC,MAAW,KAAI;gBACpC,MAAM,KAAK,GAAG,4BAA4B,CAAC;gBAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACxD,gBAAA,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7B,gBAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC/B,aAAC,CAAA;AAED,YAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE;AAChD,gBAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,CAAM,KAAI;AACvE,oBAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,oBAAA,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AACvD,iBAAC,CAAC,CAAC;AACN,aAAA;AAED,YAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE;AACrD,gBAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,CAAM,KAAI;AACxD,oBAAA,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,iBAAC,CAAC,CAAC;AACN,aAAA;AAED,YAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAAE;AACnD,gBAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,CAAM,KAAI;AACtD,oBAAA,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,iBAAC,CAAC,CAAC;AACN,aAAA;AAED,YAAA,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC5C,SAAA;AACL,KAAC,CAAA;AAED;;;AAGG;IACH,MAAM,+BAA+B,GAAG,MAAK;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAChD,QAAA,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA,UAAA,EAAa,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;AACnE,QAAA,OAAO,MAAqB,CAAC;AACjC,KAAC,CAAA;AAED;;;;AAIG;AACH,IAAA,MAAM,mCAAmC,GAAG,CAAC,GAAgB,KAAI;QAC7D,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,EAAE;YAC3C,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAClE,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;AACvC,oBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAU,OAAA,EAAA,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC;AACvE,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;QACD,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE;YAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;AAClE,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;AAClD,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;AACL,KAAC,CAAA;AAED;;;;AAIG;AACH,IAAA,MAAM,wBAAwB,GAAG,CAAC,MAAmB,KAAI;QACrD,MAAM,aAAa,GAAG,MAAK;AACvB,YAAA,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAG,MAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7H,OAAO,IAAI,CAAC,YAAY,CAAC;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC;AACrB,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAA;;QAED,OAAO,SAAS,CAAC,UAAU,EAAE;AACzB,YAAA,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAA;QACD,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,aAAa,EAAa,CAAC,CAAC;AACzD,QAAA,OAAO,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAK;AACjF,YAAA,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtB,SAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAU,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAClD,KAAC,CAAA;AAED;;;AAGG;IACH,MAAM,eAAe,GAAG,MAAK;AACzB,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;AACjC,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC/B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAA;AAED;;;AAGG;IACH,MAAM,uBAAuB,GAAG,MAAK;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,QAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,QAAA,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9B,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAA;AAED;;;;AAIG;AACH,IAAA,MAAM,yBAAyB,GAAG,CAAC,EAAe,KAAI;QAClD,IAAI,GAAG,GAAG,4BAA4B,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC5D,QAAA,OAAO,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,KAAC,CAAA;AAED;;;AAGG;IACH,MAAM,eAAe,GAAG,MAAK;QACzB,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,SAAS,CAAM,IAAA,CAAA,CAAC,CAAC;QACtD,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAG,EAAA,MAAM,CAAI,EAAA,CAAA,CAAC,CAAC;QAC/C,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAG,EAAA,KAAK,CAAI,EAAA,CAAA,CAAC,CAAC;AAC7C,QAAA,OAAO,EAAiB,CAAC;AAC7B,KAAC,CAAA;AAED;;;;AAIG;AACH,IAAA,MAAM,cAAc,GAAG,CAAC,WAAmB,KAAI;;QAE3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;;AAE5C,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;QAEzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;QAE1C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;AAEtD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACzC,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAA;;AAED,QAAA,OAAO,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACvD,KAAC,CAAA;AAED;;AAEG;IACH,MAAM,YAAY,GAAG,MAAK;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,GAAG,YAAA;YACT,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,SAAC,CAAC;QACF,MAAM,IAAI,GAAG,cAAc,CAAC,yBAAyB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;AACtB,KAAC,CAAA;AAED;;AAEG;AACH,IAAA,CAAC,kBAAK;QACF,IAAI,iBAAiB,EAAE,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACnB,YAAA,OAAM;AACT,SAAA;AAAM,aAAA;YACH,MAAM,wBAAwB,EAAE,CAAC;AACjC,YAAA,MAAM,MAAM,GAAG,+BAA+B,EAAE,CAAC;AACjD,YAAA,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACvC,mCAAmC,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,eAAe,EAAE,EAAE;;gBAEnB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtB,aAAA;AAAM,iBAAA;;AAEH,gBAAA,YAAY,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtB,aAAA;AACJ,SAAA;KACJ,GAAG,CAAC;AAEL,IAAA,OAAO,OAAO,CAAC;AACnB,CAAC;AAGD;;;;AAIG;AACI,MAAM,eAAe,GAAG,CAAC,MAAgB,KAAa;AACzD,IAAA,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,IAAA,OAAO,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AACjI,CAAC,CAAC;AAEF;;;;;AAKG;AACI,MAAM,UAAU,GAAG,OAAO,MAAe,EAAE,YAAqB,KAAsB;AACzF,IAAA,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,IAAA,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AACpD,IAAA,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAC5I,IAAA,WAAW,MAAM,GAAG,IAAI,IAAI,EAAE;AAC1B,QAAA,IAAI,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;AACrC,YAAA,MAAM,MAAM,GAAG;gBACX,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,EAAG,YAAoB,CAAC,GAAG,CAAC,CAAC;aAC9E,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5C,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;;MC5UY,uBAAuB,CAAA;AAElC;;;;;AAKG;IACI,MAAM,CAAC,MAAe,EAAE,SAAgF,EAAA;QAC7G,OAAO,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;KACvD;AAED;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,MAAe,EAAE,YAAqB,EAAE,SAAgF,EAAA;AACpI,QAAA,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AACnC,QAAA,CAAC,kBAAK;AACJ,YAAA,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;YACtF,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AACxC,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,aAAC,CAAC,CAAC;SACJ,GAAG,CAAC;AACL,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;;;;;AAMG;AACI,IAAA,QAAQ,CAAC,QAAgB,EAAE,SAAgF,EAAE,OAAO,GAAG,GAAG,EAAA;AAC/H,QAAA,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,UAAU,CAAC,MAAK;YACd,MAAM,MAAM,GAAG,SAAS,IAAI,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC7D,YAAA,IAAI,MAAM,EAAE;gBACV,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC;gBAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;gBACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,gBAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AACvC,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACnD,aAAA;YACD,OAAO,CAAC,QAAQ,EAAE,CAAC;SACpB,EAAE,OAAO,CAAC,CAAC;AACZ,QAAA,OAAO,OAAO,CAAC;KAChB;;oHAzDU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCkBY,yBAAyB,CAAA;IAgJpC,WACU,CAAA,MAAkB,EAClB,OAAgC,EAAA;QADhC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;QAClB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;AA1I1C;;AAEG;QAEI,IAAQ,CAAA,QAAA,GAAiB,SAAS,CAAC;AA4C1C;;AAEG;QAEI,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAEzB;;AAEG;QAEI,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;KAiFrB;IAEL,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,MAAM,EAAE;AAEf;;AAEG;YACH,IAAI,IAAI,CAAC,QAAQ;gBACf,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC;YAEJ,IAAI,IAAI,CAAC,IAAI;gBACX,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;YAEJ,IAAI,IAAI,CAAC,KAAK;gBACZ,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;YAEJ,IAAI,IAAI,CAAC,KAAK;gBACZ,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;YAEJ,IAAI,IAAI,CAAC,MAAM;gBACb,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;YAEJ,IAAI,IAAI,CAAC,MAAM;gBACb,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;YAEJ,IAAI,IAAI,CAAC,IAAI;gBACX,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;YAEJ,IAAI,IAAI,CAAC,KAAK;gBACZ,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;YAEJ,IAAI,IAAI,CAAC,KAAK;gBACZ,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;YAEJ,IAAI,IAAI,CAAC,MAAM;gBACb,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;YAEJ,IAAI,IAAI,CAAC,YAAY;gBACnB,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC;YAEJ,IAAI,IAAI,CAAC,SAAS;gBAChB,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC;YAEJ,IAAI,IAAI,CAAC,YAAY;gBACnB,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC;YAEJ,IAAI,IAAI,CAAC,WAAW;gBAClB,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC;YAEJ,IAAI,IAAI,CAAC,oBAAoB;gBAC3B,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;iBAChD,CAAC;YAEJ,IAAI,IAAI,CAAC,iBAAiB;gBACxB,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;iBAC1C,CAAC;YAEJ,IAAI,IAAI,CAAC,iBAAiB;gBACxB,IAAI,CAAC,MAAM,GAAG;oBACZ,GAAG,IAAI,CAAC,MAAM;oBACd,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;iBAC1C,CAAC;AAEJ,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,SAAA;KACF;AAED;;;;AAIG;AACI,IAAA,MAAM,CAAC,MAAe,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC/D;AAED;;;;;AAKG;IACI,MAAM,CAAC,MAAe,EAAE,YAAqB,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC7E;AAED;;;;;AAKG;AACI,IAAA,QAAQ,CAAC,QAAgB,EAAE,OAAO,GAAG,GAAG,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;KAC5E;;sHAhSU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,8eAJ1B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAI1B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;oIAOQ,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAOC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAOC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAOC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAOC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAOC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAOC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAOC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAOC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAOC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAOC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAOC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAgBN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAWN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAYN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAWN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAWN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAWN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;;;MCtJK,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;oHAAtB,sBAAsB,EAAA,YAAA,EAAA,CAN/B,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAGzB,yBAAyB,CAAA,EAAA,CAAA,CAAA;oHAGhB,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;AAC1B,qBAAA;AACF,iBAAA,CAAA;;;ACZD;;AAEG;;ACFH;;AAEG;;;;"}