{"version":3,"file":"sdk-textbox.mjs","sources":["../../../projects/sdk-textbox/src/lib/components/calendar/calendar.component.ts","../../../projects/sdk-textbox/src/lib/components/calendar/calendar.component.html","../../../projects/sdk-textbox/src/lib/sdk-textbox.component.ts","../../../projects/sdk-textbox/src/lib/sdk-textbox.component.html","../../../projects/sdk-textbox/src/lib/sdk-textbox.module.ts","../../../projects/sdk-textbox/src/public-api.ts","../../../projects/sdk-textbox/src/sdk-textbox.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DatePipe, isPlatformBrowser } from '@angular/common';\n\n@Component({\n\tselector: 'calendar',\n\ttemplateUrl: './calendar.component.html',\n\tstyleUrls: ['./calendar.component.scss']\n})\n\nexport class CalendarComponent implements OnInit {\n\t@Input() date: string = \"\";\n\t@Input() show: boolean = false;\n\t@Input() height: string = \"180px\";\n\t@Input() width: string = \"180px\";\n\t@Input() fontSize: string = \"1.0em\";\n\t@Output() setDateEvent: EventEmitter<any> = new EventEmitter();\n\n\t/**************************************************************************\n\t* Component Variables\n\t**************************************************************************/\n\t@ViewChild(\"calendar\") calendar!: ElementRef | undefined;\n\t@ViewChild(\"yearText\") yearText: ElementRef | undefined;\n\n\tpublic showCalendar: boolean = true;\n\tpublic showMonths: boolean = false;\n\tpublic showYears: boolean = false;\n\n\tpublic calendarHtml: string = \"\";\n\n\tpublic year: number = 0;\n\tpublic month: string = \"\";\n\tpublic monthNumber: number = 0;\n\tpublic dayNumber: number = 0;\n\tpublic months: string[] = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\tpublic days: string[] = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\n\tpublic calDays: any;\n\n\tprivate newData: string = \"\";\n\n\tconstructor(private datePipe: DatePipe) {}\n\n\tpublic ngOnInit() {\n\t\tthis.setCalendar();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.setStyle();\n\t\t}, 1);\n\t}\n\n\tpublic ngOnChanges() {\n\t\tthis.newData = this.date;\n\t}\n\n\tpublic setDate(date: string) {\n\t\tthis.setDateEvent.emit(date);\n\t}\n\n\tpublic getToday() {\n\t\tthis.newData = new Date().toString();\n\t\tthis.setCalendar();\n\t}\n\n\tpublic getMonth() {\n\t\tthis.showMonths = true;\n\t\tthis.showCalendar = false;\n\t}\n\n\tpublic setMonth(month: any) {\n\t\tthis.showCalendar = true;\n\t\tthis.showMonths = false;\n\n\t\tthis.newData = new Date(this.year, month, this.dayNumber).toString();\n\t\tthis.setCalendar();\n\t}\n\n\tpublic getYear() {\n\t\tthis.showYears = true;\n\t\tthis.showCalendar = false;\n\t}\n\n\tpublic setYear() {\n\t\tif (this.yearText?.nativeElement.value !== \"\" && this.yearText?.nativeElement.value.length === 4) {\n\t\t\tthis.showCalendar = true;\n\t\t\tthis.showYears = false;\n\n\t\t\tthis.newData = new Date(this.yearText?.nativeElement.value, this.monthNumber - 1, this.dayNumber).toString();\n\t\t\tthis.setCalendar();\n\t\t}\n\t}\n\n\tpublic onKeyDown(event: any) {\n\t\tlet text = event.target.value;\n\n\t\tif (event.key === \"Enter\") {\n\t\t\tthis.setYear();\n\t\t} else if (\n\t\t\tevent.key === \"Backspace\"\n\t\t\t|| event.key === \"Tab\"\n\t\t\t|| event.key === \"ArrowLeft\"\n\t\t\t|| event.key === \"ArrowRight\"\n\t\t\t|| event.key === \"Meta\"\n\t\t\t|| event.key === \"Control\"\n\t\t) {\n\t\t\t// DO NOTHING\n\t\t} else {\n\t\t\tif (!(event.metaKey && event.key === \"v\") && !(event.metaKey && event.key === \"c\")) {\n\t\t\t\tif (!event.key.match(/[0-9]/)\n\t\t\t\t\t|| text.length >= 4\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**************************************************************************\n\t* Protected Methods\n\t**************************************************************************/\n\tprivate setCalendar() {\n\t\tlet dt = (this.newData && this.newData !== \"\") ? new Date(this.newData) : new Date();\n\n\t\tthis.year = dt.getFullYear();\n\t\tthis.month = this.months[dt.getMonth()];\n\t\tthis.monthNumber = (dt.getMonth() + 1);\n\t\tthis.dayNumber = dt.getDate();\n\n\t\tlet fistDay = new Date(this.year, dt.getMonth(), 1).getDay();\n\t\tlet totalDays = this.getTotalDays(dt.getFullYear(), dt.getMonth() + 1);\n\t\tlet weeks = Math.floor(totalDays / 7);\n\n\t\tlet isToday: boolean = false;\n\t\tlet isSelected: boolean = false;\n\n\t\tif (fistDay > 0) weeks = weeks + 1;\n\t\tif ((totalDays + fistDay) > (weeks * 7)) weeks = weeks + 1;\n\n\t\tlet plotDay: any = 1;\n\n\t\tthis.calDays = [];\n\n\t\tfor (let w = 0; w < weeks; w++) {\n\t\t\tfor (let d = 0; d < 7; d++) {\n\t\t\t\tlet currentDay = ((7 * w) + (d + 1));\n\n\t\t\t\tif (currentDay < (fistDay + 1)) {\n\t\t\t\t\tthis.calDays.push({ date: \"\", day: \"\"});\n\t\t\t\t} else {\n\t\t\t\t\tif (plotDay <= totalDays) {\n\t\t\t\t\t\tif (this.datePipe.transform(new Date(this.year, this.monthNumber - 1, plotDay), 'yyyy-MM-dd') === this.datePipe.transform(new Date(), 'yyyy-MM-dd')) {\n\t\t\t\t\t\t\tisToday = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisToday = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.datePipe.transform(new Date(this.year, this.monthNumber - 1, plotDay), 'yyyy-MM-dd') === this.datePipe.transform(this.date, 'yyyy-MM-dd')) {\n\t\t\t\t\t\t\tisSelected = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisSelected = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.calDays.push({ date: this.datePipe.transform(new Date(this.year, this.monthNumber - 1, plotDay), 'yyyy-MM-dd'), day: plotDay.toString(), today: isToday, selected: isSelected });\n\t\t\t\t\t\t\n\t\t\t\t\t\tplotDay++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.calDays.push({ date: \"\", day: \"\"});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getTotalDays(year: any, month: any) {\n\t\treturn new Date(year, month, 0).getDate();\n\t}\n\n\tprivate setStyle() {\n\t\tlet element = this.calendar?.nativeElement;\n\n\t\tif (element) {\n\t\t\telement.style.setProperty(\"--height\", this.height);\n\t\t\telement.style.setProperty(\"--width\", this.width);\n\t\t\telement.style.setProperty(\"--font-size\", this.fontSize);\n\t\t}\n\t}\n}","<div #calendar *ngIf=\"show\" class=\"sdk-textbox-calendar\" [style.height]=\"((calDays.length * 30) + 30) + 'px'\">\n    <div class=\"frame\" *ngIf=\"showCalendar\">\n        <div class=\"header\">\n            <div class=\"month\" (click)=\"getMonth()\">{{ month }}</div>\n            <div class=\"today\" (click)=\"getToday()\">Today</div>\n            <div class=\"year\" (click)=\"getYear()\">{{ year }}</div>\n        </div>\n        <div class=\"calendar\">\n            <div class=\"grid\">\n                <div class=\"label\">Sun</div>\n                <div class=\"label\">Mon</div>\n                <div class=\"label\">Tue</div>\n                <div class=\"label\">Wed</div>\n                <div class=\"label\">Thu</div>\n                <div class=\"label\">Fri</div>\n                <div class=\"label\">Sat</div>\n                <div class=\"item\" [ngClass]=\"{ today: day.today, selected: day.selected  }\" *ngFor=\"let day of calDays; let i = index\" (mousedown)=\"setDate(day.date)\">{{ day.day }}</div>\n            </div>\n        </div>\n    </div>\n    \n    <table *ngIf=\"showMonths\" class=\"table\">\n        <tbody>\n            <tr>\n                <td (click)=\"setMonth(0)\">Jan</td>\n                <td (click)=\"setMonth(1)\">Feb</td>\n                <td (click)=\"setMonth(2)\">Mar</td>\n                <td (click)=\"setMonth(3)\">Apr</td>\n            </tr>\n            <tr>\n                <td (click)=\"setMonth(4)\">May</td>\n                <td (click)=\"setMonth(5)\">Jun</td>\n                <td (click)=\"setMonth(6)\">Jul</td>\n                <td (click)=\"setMonth(7)\">Aug</td>\n            </tr>\n            <tr>\n                <td (click)=\"setMonth(8)\">Sep</td>\n                <td (click)=\"setMonth(9)\">Oct</td>\n                <td (click)=\"setMonth(10)\">Nov</td>\n                <td (click)=\"setMonth(11)\">Dec</td>\n            </tr>\n        </tbody>\n    </table>\n\n    <table *ngIf=\"showYears\" class=\"table\">\n        <tbody>\n            <tr>\n                <td>\n                    <div class=\"year-box\">\n                        <input #yearText class=\"year\" type=\"number\" (keydown)=\"onKeyDown($event)\" [value]=\"year\" />\n                        <button class=\"set\" (click)=\"setYear()\">SET</button>\n                    </div>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { DatePipe, formatCurrency, formatNumber } from '@angular/common';\n\n@Component({\n\tselector: 'sdk-textbox',\n\ttemplateUrl: './sdk-textbox.component.html',\n\tstyleUrls: ['./sdk-textbox.component.scss']\n})\n\nexport class SDKTextboxComponent {\n    /**************************************************************************\n    * Input/Output Parameters\n    **************************************************************************/\n\t@Input() validCharacters: string = \"\";\n\t@Input() value: string = \"\";\n\t@Input() hint: string = \"\";\n\t@Input() pattern: string = \"\";\n\t@Input() locale: string = \"en-US\";\n\t@Input() multiLine: boolean = false;\n\t@Input() border: string | undefined;\n\t@Input() padding: string | undefined;\n\t@Input() margin: string | undefined;\n\t@Input() height: string | undefined;\n\t@Input() width: string | undefined;\n\t@Input() style: string | undefined;\n\t@Input() class: string | undefined;\n\t@Input() showCalendarIcon: boolean = true;\n\t@Input() calHeight: string = \"180px\";\n\t@Input() calWidth: string = \"180px\";\n\t@Input() calFontSize: string = \"1.0em\";\n\t@Output() blurCallBackEvent: EventEmitter<any> = new EventEmitter();\n\t@Output() changeCallBackEvent: EventEmitter<any> = new EventEmitter();\n\t@Output() enterCallBackEvent: EventEmitter<any> = new EventEmitter();\n\n    /**************************************************************************\n    * Component Variables\n    **************************************************************************/\n\t@ViewChild(\"component\") component: ElementRef | undefined;\n\t@ViewChild(\"text\") text: ElementRef | undefined;\n\t@ViewChild(\"calendar\") calendar: ElementRef | undefined;\n\n\tprotected calendarDate: string = \"\";\n\tprotected showCalendar: boolean = false;\n\tprotected lockCalendar: boolean = false;\n\n\tprivate pArray: any = [];\n\tprivate fArray: any = [];\n\n    //******************************************************************************\n    //  Component Life-cycle Methods\n    //******************************************************************************\n\tprotected ngOnInit() {\n\t\tif (this.validCharacters) {\n\t\t\tthis.validCharacters = this.validCharacters.toString().toLocaleLowerCase();\n\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (!this.pattern || this.pattern === \"\") this.pattern = \"YYYY-MM-DD\";\n\n\t\t\t\t\tlet divider = this.pattern.replace(/[ymdYMD]/g, \"\").substring(0, 1);\n\t\t\t\t\tlet dividerArray = this.pattern.split(divider);\n\n\t\t\t\t\tthis.hint = this.pattern;\n\t\t\t\t\tthis.createPattern(dividerArray[0].replace(/[ymdYMD]/g, \"#\") + divider + dividerArray[1].replace(/[ymdYMD]/g, \"#\") + divider + dividerArray[2].replace(/[ymdYMD]/g, \"#\"));\n\n\t\t\t\t\tif (this.value && this.value !== \"\") {\n\t\t\t\t\t\tlet datePipe = new DatePipe(this.locale);\n\t\t\t\t\t\tlet pattern = this.pattern!.replace(/[yY]/g, \"y\").replace(/[mM]/g, \"M\").replace(/[dD]/g, \"d\");\n\t\t\t\t\t\tlet value = this.value.split(\"T\")[0];\n\n\t\t\t\t\t\tthis.value = datePipe.transform(value, pattern) || \"\";\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (!this.width) {\n\t\t\t\t\t\t\tthis.text!.nativeElement.style.width = `${this.pattern!.length * 10}px`;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.component!.nativeElement.parentNode.hasAttribute(\"nocomponent\")) {\n\t\t\t\t\t\t\tthis.showCalendarIcon = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 1);\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"email\":\n\t\t\t\t\tthis.hint = \"name@company.com\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"custom\":\n\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t&& this.pattern.indexOf(\"#\") > -1\n\t\t\t\t\t\t&& !this.pattern.startsWith(\"[\")\n\t\t\t\t\t\t&& !this.pattern.endsWith(\"]\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.hint = this.pattern;\n\t\t\t\t\t\tthis.createPattern();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected ngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.validCharacters === \"calendar\" && this.component && this.text) {\n\t\t\t\tthis.component.nativeElement.style.width = (this.text.nativeElement.clientWidth + 25) + \"px\";\n\t\t\t}\n\t\t}, 100);\n\t}\n\n    //*************************************************************************\n    //  Protected Methods\n    //*************************************************************************\n\tprotected onKeyDown(event: any) {\n\t\tthis.showCalendar = false;\n\n\t\tif (event.key === \"Enter\" && !event.shiftKey) {\n\t\t\tthis.text!.nativeElement.blur();\n\n\t\t\tif (this.enterCallBackEvent.observed) {\n\t\t\t\tthis.enterCallBackEvent.emit(event.target.value);\n\t\t\t}\n\t\t} else if (\n\t\t\tevent.key === \"Backspace\"\n\t\t\t|| event.key === \"Tab\"\n\t\t\t|| event.key === \"ArrowLeft\"\n\t\t\t|| event.key === \"ArrowRight\"\n\t\t\t|| event.key === \"Meta\"\n\t\t\t|| event.key === \"Control\"\n\t\t) {\n\t\t\t// DO NOTHING\n\t\t} else {\n\t\t\tlet text = this.removeSelection(event);\n\n\t\t\tif (!(event.metaKey && event.key === \"v\") && !(event.metaKey && event.key === \"c\")) {\n\t\t\t\tswitch (this.validCharacters) {\n\t\t\t\t\tcase \"alpha\":\n\t\t\t\t\t\tif (!event.key.match(/[a-zA-Z]/)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"numeric\":\n\t\t\t\t\t\tif (!event.key.match(/[0-9]/)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"alphanumeric\":\n\t\t\t\t\t\tif (!event.key.match(/[a-zA-Z0-9]/)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"decimal\":\n\t\t\t\t\tcase \"currency\":\n\t\t\t\t\t\tif (!event.key.match(/[-0-9.]/)\n\t\t\t\t\t\t\t|| (event.key === \".\" && text.match(/[.]/g))\n\t\t\t\t\t\t\t|| (event.key === \"-\" && (event.target.selectionStart !== 0 || text.match(/[-]/g)))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet periodArray = text.toString().split(\".\");\n\n\t\t\t\t\t\tif (this.validCharacters === \"currency\" && periodArray.length > 1 && periodArray[1].length >= 2) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"calendar\":\n\t\t\t\t\t\tif (!event.key.match(/[0-9]/)\n\t\t\t\t\t\t\t|| text.replace(/[^0-9]/g, \"\").length === this.pattern!.replace(/[^ymdYMD]/g, \"\").length\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"email\":\n\t\t\t\t\t\tif (!event.key.match(/[a-zA-Z0-9._%+-@]/)\n\t\t\t\t\t\t\t|| (event.key === \"@\" && text.match(/[@]/g))\n\t\t\t\t\t\t\t|| (!text.match(/[@]/g) && text.length >= 64)\n\t\t\t\t\t\t\t|| (text.match(/[@]/g) && text.length >= 254)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet atArray = text.toString().split(\"@\");\n\n\t\t\t\t\t\tif (atArray.length > 1\n\t\t\t\t\t\t\t&& event.target.selectionStart > atArray[0].length\n\t\t\t\t\t\t\t&& !event.key.match(/[a-zA-Z0-9-.]/)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"latitude\":\n\t\t\t\t\t\tlet latrx = /^([\\-]?|[\\-]?[1-9]|[\\-]?[1-8][0-9]|[\\-]?90)(?:[.]\\d{0,15})?$/;\n\t\t\t\t\t\tlet lattext = text + event.key;\n\n\t\t\t\t\t\tif (!lattext.match(new RegExp(latrx))) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"longitude\":\n\t\t\t\t\t\tlet longrx = /^([\\-]?|[\\-]?[1-9]|[\\-]?[1-9]\\d|[\\-]?[1][0-7]\\d|[\\-]?180)(?:[.]\\d{0,15})?$/;\n\t\t\t\t\t\tlet longtext = text + event.key;\n\n\t\t\t\t\t\tif (!longtext.match(new RegExp(longrx))) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"custom\":\n\t\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t\t&& this.pattern.indexOf(\"#\") > -1\n\t\t\t\t\t\t\t&& !this.pattern.startsWith(\"[\")\n\t\t\t\t\t\t\t&& !this.pattern.endsWith(\"]\")\n\t\t\t\t\t\t\t&& (!event.key.match(/[0-9]/) || text.length === this.pattern.length)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t\t&& this.pattern.startsWith(\"[\")\n\t\t\t\t\t\t\t&& this.pattern.endsWith(\"]\")\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (!event.key.match(new RegExp(this.pattern, \"g\"))) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t\t&& this.pattern.startsWith(\"^\")\n\t\t\t\t\t\t\t&& this.pattern.endsWith(\"$\")\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tlet newText = text + event.key;\n\n\t\t\t\t\t\t\tif (!newText.match(new RegExp(this.pattern))) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onBlur(event: any) {\n\t\tlet text = event.target.value;\n\n\t\tif (this.validCharacters && text && text !== \"\") {\n\t\t\ttext = this.cleanText(text);\n\t\t\ttext = this.formatText(text);\n\n\t\t\tevent.target.value = text;\n\t\t}\n\n\t\tif (this.validCharacters) {\n\t\t\tthis.validCharacters = this.validCharacters.toString().toLocaleLowerCase();\n\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (!this.lockCalendar) {\n\t\t\t\t\t\tthis.showCalendar = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (this.blurCallBackEvent.observed) {\n\t\t\tthis.blurCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\t}\n\n\tprotected onInput(event: any) {\n\t\tif (this.validCharacters === \"decimal\"\n\t\t\t|| this.validCharacters === \"currency\"\n\t\t) {\n\t\t\tthis.setNumericText(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"calendar\") {\n\t\t\tthis.setCalendarText(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"email\") {\n\t\t\tthis.setEmailText(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"latitude\") {\n\t\t\tthis.setLatitude(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"longitude\") {\n\t\t\tthis.setLongitude(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"custom\" && this.pArray.length > 0) {\n\t\t\tthis.setCustomText(event);\n\t\t}\n\n\t\tif (this.changeCallBackEvent.observed) {\n\t\t\tthis.changeCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\t}\n\n\tprotected onCut(event: any) {\n\t\tlet textLeft = event.target.value.toString().substring(0, event.target.selectionStart);\n\t\tlet textRight = event.target.value.toString().substring(event.target.selectionEnd);\n\n\t\tlet text = textLeft + textRight;\n\n\t\tlet clipboardData = event.clipboardData || event.originalEvent.clipboardData;\n\t\tclipboardData.items.add(text, 'text/plain');\n\t}\n\n\tprotected onPaste(event: any) {\n\t\tlet clipboardData = event.clipboardData || event.originalEvent.clipboardData;\n\t\tlet text = clipboardData.getData('text');\n\n\t\tlet textLeft = event.target.value.toString().substring(0, event.target.selectionStart);\n\t\tlet textRight = event.target.value.toString().substring(event.target.selectionEnd);\n\n\t\ttext = textLeft + text + textRight;\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\t\t\t(this.validCharacters === \"custom\" && this.pattern.startsWith(\"^\") && this.pattern.endsWith(\"$\"))\n\t\t\t|| this.validCharacters === \"latitude\"\n\t\t\t|| this.validCharacters === \"longitude\"\n\t\t) {\n\t\t\tevent.target.value = \"\";\n\t\t} else {\n\t\t\ttext = this.cleanText(text);\n\n\t\t\tevent.target.value = text;\n\t\t}\n\n\t\tif (this.changeCallBackEvent.observed) {\n\t\t\tthis.changeCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\t}\n\n\tprotected showComponent(event: any) {\n\t\tif (this.validCharacters) {\n\t\t\tthis.validCharacters = this.validCharacters.toString().toLocaleLowerCase();\n\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (!this.component!.nativeElement.parentNode.hasAttribute(\"nocomponent\")) {\n\t\t\t\t\t\tthis.calendarDate = this.text!.nativeElement.value;\n\t\t\t\t\t\tthis.showCalendar = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected setDate(date: any) {\n\t\tthis.text!.nativeElement.value = this.formatText(date);\n\n\t\tif (this.changeCallBackEvent.observed) {\n\t\t\tthis.changeCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\n\t\tthis.showCalendar = false;\n\t}\n\n    //*************************************************************************\n    //  Private Methods\n    //*************************************************************************\n\tprivate setNumericText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tnewText = text.toString().replace(/[^-0-9.]/g, \"\");\n\t\tnewText = newText.toString().replace(/\\B(?=([0-9]{3})+(?![0-9]))/g, \",\");\n\n\t\tlet periodArray = newText.toString().split(\".\");\n\n\t\tif (periodArray.length > 1) {\n\t\t\tnewText = periodArray[0] + \".\" + periodArray[1].replace(/[,]/g, \"\");\n\t\t}\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate setCalendarText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tnewText = text.toString().replace(/[^0-9]/g, \"\");\n\n\t\tfor (let x = 0; x < this.pArray.length; x++) {\n\t\t\tnewText = newText.replace(new RegExp(this.pArray[x]), this.fArray[x]);\n\t\t}\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate setEmailText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tnewText = text.toString().replace(/[^a-zA-Z0-9._%+-@]/g, \"\");\n\n\t\tlet atArray = newText.toString().split(\"@\");\n\n\t\tif (atArray.length > 1) {\n\t\t\tnewText = atArray[0].substring(0, 63) + \"@\" + atArray.slice(1).toString().replace(/[^a-zA-Z0-9-.]/g, \"\");\n\t\t} else {\n\t\t\tnewText = newText.substring(0, 63);\n\t\t}\n\n\t\tnewText = newText.substring(0, 253);\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate setLatitude(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = text;\n\n\t\tevent.preventDefault();\n\n\t\tif (Number(text) < -90) {\n\t\t\tnewText = -90;\n\t\t}\n\t\tif (Number(text) > 90) {\n\t\t\tnewText = 90;\n\t\t}\n\n\t\tevent.target.value = newText;\n\t}\n\n\tprivate setLongitude(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = text;\n\n\t\tevent.preventDefault();\n\n\t\tif (Number(text) < -180) {\n\t\t\tnewText = -180;\n\t\t}\n\t\tif (Number(text) > 180) {\n\t\t\tnewText = 180;\n\t\t}\n\n\t\tevent.target.value = newText;\n\t}\n\t\n\tprivate setCustomText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tif (text === \"+1 \") text = \"\";\n\t\tnewText = text.toString().replace(/[^0-9]/g, \"\");\n\n\t\tfor (let x = 0; x < this.pArray.length; x++) {\n\t\t\tnewText = newText.replace(new RegExp(this.pArray[x]), this.fArray[x]);\n\t\t}\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate removeSelection(event: any): any {\n\t\tlet textLeft = event.target.value.toString().substring(0, event.target.selectionStart);\n\t\tlet textRight = event.target.value.toString().substring(event.target.selectionEnd + 1);\n\n\t\treturn textLeft + textRight;\n\t}\n\n\tprivate cleanText(text: any): any {\n\t\tif (this.validCharacters?.toString().startsWith(\"[\")) {\n\t\t\tlet format = \"[^\" + this.validCharacters?.toString().split(\"[\")[1];\n\n\t\t\ttext = text.toString().replace(new RegExp(format, \"g\"), \"\");\n\t\t} else {\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"alpha\":\n\t\t\t\t\ttext = text.toString().replace(/[^a-zA-Z]/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"numeric\":\n\t\t\t\t\ttext = text.toString().replace(/[^0-9]/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"alphanumeric\":\n\t\t\t\t\ttext = text.toString().replace(/[^a-zA-Z0-9]/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"decimal\":\n\t\t\t\tcase \"currency\":\n\t\t\t\t\ttext = text.toString().replace(/[^0-9.-]|(?:\\/[.].*)[.]|(?!^)-/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (this.pattern) {\n\t\t\t\t\t\tlet re = \"[^0-9\" + this.encodeText(Array.from(new Set(this.pattern.replace(/[a-zA-Z0-9]/g, \"\").split(\"\"))).join(\"\")) + \"]\";\n\n\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"email\":\n\t\t\t\t\ttext = text.toString().replace(/[^a-zA-Z0-9._%+-@]/g, \"\");\n\n\t\t\t\t\tlet atArray = text.toString().split(\"@\");\n\n\t\t\t\t\tif (atArray.length > 1) {\n\t\t\t\t\t\tlet periodArray = atArray[1].toString().split(\".\");\n\n\t\t\t\t\t\tif (periodArray.length > 1) {\n\t\t\t\t\t\t\tlet type = periodArray.slice(periodArray.length - 1);\n\t\t\t\t\t\t\ttype = type.toString().replace(/[^a-zA-Z]/g, \"\");\n\n\t\t\t\t\t\t\tperiodArray.pop();\n\t\t\t\t\t\t\ttext = atArray[0] + \"@\" + periodArray.join(\".\") + \".\" + type;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"latitude\":\n\t\t\t\tcase \"longitude\":\n\t\t\t\t\tlet re = \"(\" + this.pattern + \")\";\n\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"$1\");\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"custom\":\n\t\t\t\t\tif (this.pattern) {\n\t\t\t\t\t\tif (this.pattern.indexOf(\"#\") > -1 && !this.pattern.startsWith(\"[\") && !this.pattern.endsWith(\"]\")) {\n\t\t\t\t\t\t\tlet re = \"[^0-9\" + this.encodeText(Array.from(new Set(this.pattern.split(\"\"))).join(\"\")) + \"]\";\n\t\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re.replace(\"#\", \"\"), \"g\"), \"\");\n\t\t\t\t\t\t\ttext = text.substring(0, this.pattern.length);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern.startsWith(\"[\") && this.pattern.endsWith(\"]\")) {\n\t\t\t\t\t\t\tlet re = this.pattern.replace(\"[\", \"[^\");\n\n\t\t\t\t\t\t\tif (this.pattern.startsWith(\"[^\")) {\n\t\t\t\t\t\t\t\tre = this.pattern.replace(\"[^\", \"[\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern.startsWith(\"^\") && this.pattern.endsWith(\"$\")) {\n\t\t\t\t\t\t\tlet re = \"(\" + this.pattern + \")\";\n\t\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"$1\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tprivate formatText(text: any): any {\n\t\tif (this.validCharacters === \"currency\") {\n\t\t\ttext = formatCurrency(parseFloat(text), this.locale, this.pattern ?? '$');\n\t\t} else if (this.validCharacters === \"custom\" || this.validCharacters === \"latitude\" || this.validCharacters === \"longitude\") {\n\t\t\t// DO NOTHING\n\t\t} else if (this.validCharacters === \"calendar\") {\n\t\t\tconst datepipe: DatePipe = new DatePipe(this.locale)\n\n\t\t\tlet pattern = this.pattern!.replace(/[yY]/g, \"y\").replace(/[mM]/g, \"M\").replace(/[dD]/g, \"d\");\n\n\t\t\ttry {\n\t\t\t\ttext = datepipe.transform(text, pattern, undefined, this.locale);\n\t\t\t\tthis.text!.nativeElement.style.backgroundColor = \"\";\n\t\t\t} catch {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.text!.nativeElement.style.backgroundColor = \"rgb(255, 210, 217)\";\n\t\t\t\t\tthis.text!.nativeElement.focus();\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.pattern) {\n\t\t\t\ttext = formatNumber(parseFloat(text), this.locale, this.pattern);\n\t\t\t}\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tprivate createPattern(pattern: string = \"\") {\n\t\tif (pattern === \"\") {\n\t\t\tpattern = this.pattern?.trim() ?? \"\";\n\t\t}\n\t\tlet ws: any = pattern.replace(/([\\#])\\1+/g, \"#\");\n\n\t\tlet wsPattern = \"\";\n\t\tlet breakArray = [];\n\t\tlet cnt = 1;\n\t\tlet wsBreak = \"\";\n\n\t\tfor (let x = 0; x < ws.length; x++) {\n\t\t\tif (ws[x] === \"#\") {\n\t\t\t\twsPattern += `$${cnt}`;\n\t\t\t\tcnt++;\n\t\t\t} else {\n\t\t\t\twsPattern += ws[x];\n\t\t\t}\n\n\t\t\twsBreak = ws[x];\n\n\t\t\tif (ws[x] === \" \" || ws[x] === \"-\" || ws[x] === \".\" || ws[x] === \"/\" || ws[x] === \"_\") {\n\t\t\t\tbreakArray.push(wsBreak);\n\t\t\t\twsBreak = \"\";\n\t\t\t}\n\t\t}\n\n\t\tlet charArray = [];\n\t\tlet chars = \"\";\n\n\t\tfor (let x = 0; x < pattern.length; x++) {\n\t\t\tif (pattern[x] === \"#\") {\n\t\t\t\tchars += \"#\";\n\t\t\t} else {\n\t\t\t\tif (chars !== \"\") {\n\t\t\t\t\tcharArray.push(chars);\n\t\t\t\t}\n\t\t\t\tchars = \"\";\n\t\t\t}\n\t\t}\n\n\t\t// Add any remaining chars.\n\t\tif (chars !== \"\") {\n\t\t\tcharArray.push(chars);\n\t\t}\n\n\t\tlet patternArray = [];\n\n\t\tfor (let x = 0; x < charArray.length; x++) {\n\t\t\tpatternArray.push(`[0-9]{1,${charArray[x].length}}`);\n\t\t}\n\n\t\tthis.pArray = [];\n\t\tthis.fArray = [];\n\t\tlet wsFilter = ws;\n\t\tlet wspFilter = wsPattern;\n\t\tlet f = \"\";\n\t\tlet p = \"\";\n\n\t\tfor (let l = 0; l < patternArray.length; l++) {\n\t\t\tf = wsFilter.split(breakArray[l])[0];\n\t\t\twsFilter = wsFilter.substring(f.length + 1);\n\t\t\tp = wspFilter.split(breakArray[l])[0];\n\t\t\twspFilter = wspFilter.substring(p.length + 1);\n\n\t\t\tfor (let x = l; x < patternArray.length; x++) {\n\t\t\t\tif (this.pArray[x] === undefined) this.pArray.push(\"\");\n\t\t\t\tif (this.fArray[x] === undefined) this.fArray.push(\"\");\n\n\t\t\t\tlet m = (l > 0) ? \"*\" : \"\";\n\n\t\t\t\t// build left-side (pArray)\n\t\t\t\tif (f.startsWith(\"#\") && f.endsWith(\"#\")) { // number only\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += this.encodeText(f).replace(\"#\", m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\") + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && !f.endsWith(\"#\")) { // wrapper\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else if (x === (l + 1)) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\" + this.encodeText(breakArray[l]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += this.encodeText(f).replace(\"#\", m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\") + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && f.endsWith(\"#\")) { // starts with non-digit\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\" + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (f.startsWith(\"#\") && !f.endsWith(\"#\")) { // ends with non-digit\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\" + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// build right-side (fArray)\n\t\t\t\tif (f.startsWith(\"#\") && f.endsWith(\"#\")) { // number only\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && !f.endsWith(\"#\")) { // wrapper\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p.replace(/[^$0-9]/g, \"\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && f.endsWith(\"#\")) { // starts with non-digit\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (f.startsWith(\"#\") && !f.endsWith(\"#\")) { // ends with non-digit\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p.replace(/[^$0-9]/g, \"\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate encodeText(text: any): any {\n\t\treturn text.replace(/[|{}\\\\()[\\]^$+*?.+]/g, '\\\\$&').replace(/\\s/, \"\\\\s\");\n\t}\n}\n","<div #component class=\"sdk_textbox\" style=\"position: relative; padding: 0;\">\n    <div *ngIf=\"!multiLine\" [ngStyle]=\"{ 'margin': margin ?? '0', 'border': 'unset', 'height': height ?? 'unset', 'width': width ?? 'unset' }\">\n        <input #text type=\"text\" [ngStyle]=\"{ 'padding': padding ?? '5px', 'margin': '0', 'border': border ?? '1px solid rgb(200, 200, 200)', 'height': '100%', 'width': '100%' }\" [class]=\"class\" [style]=\"style\" [placeholder]=\"hint\" (keydown)=\"onKeyDown($event)\" (focus)=\"text.select()\" (blur)=\"onBlur($event)\" (input)=\"onInput($event)\" (cut)=\"onCut($event)\" (paste)=\"onPaste($event)\" (click)=\"!showCalendarIcon ? showComponent($event) : false\" [value]=\"value\" />\n        <i *ngIf=\"validCharacters === 'calendar' && showCalendarIcon\" class=\"sdk-icon\" (click)=\"showComponent($event); text.focus(); lockCalendar = true\" (mouseout)=\"lockCalendar = false; showCalendar ? text.focus() : false;\">calendar_month</i>\n        <calendar *ngIf=\"showCalendar && validCharacters?.toLocaleLowerCase() === 'calendar'\" #calendar [date]=\"calendarDate\" [show]=\"showCalendar\" [height]=\"calHeight\" [width]=\"calWidth\" [fontSize]=\"calFontSize\" (setDateEvent)=\"setDate($event)\" (mouseover)=\"lockCalendar = true\" (mouseout)=\"lockCalendar = false; text.focus()\"></calendar>\n    </div>\n    <div *ngIf=\"multiLine\" [ngStyle]=\"{ 'margin': margin ?? '0', 'border': 'unset', 'height': height ?? 'unset', 'width': width ?? 'unset' }\">\n        <textarea #text [ngStyle]=\"{ 'padding': padding ?? '5px', 'margin': '0', 'border': border ?? '1px solid rgb(200, 200, 200)', 'height':'100%', 'width': '100%' }\" [class]=\"class\" [style]=\"style\" [placeholder]=\"hint\" (keydown)=\"onKeyDown($event)\" (focus)=\"text.select()\" (blur)=\"onBlur($event)\" (input)=\"onInput($event)\" (cut)=\"onCut($event)\" (paste)=\"onPaste($event)\" (click)=\"!showCalendarIcon ? showComponent($event) : false\" [value]=\"value\"></textarea>\n    </div>\n</div>\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n\nimport { SDKTextboxComponent } from './sdk-textbox.component';\n\nimport { CalendarComponent } from './components/calendar/calendar.component';\n\n@NgModule({\n  declarations: [\n    SDKTextboxComponent,\n    CalendarComponent\n  ],\n  imports: [\n    CommonModule,\n  ],\n  exports: [\n    SDKTextboxComponent\n  ],\n  providers: [\n    DatePipe\n  ],\n  schemas: [\n    NO_ERRORS_SCHEMA\n  ]\n})\nexport class SDKTextboxModule { }\n","/*\n * Public API Surface of sdk-textbox\n */\n\nexport { SDKTextboxModule } from './lib/sdk-textbox.module';\nexport { SDKTextboxComponent } from './lib/sdk-textbox.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CalendarComponent"],"mappings":";;;;;MASa,iBAAiB,CAAA;AA+B7B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QA9B7B,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;QACtB,IAAM,CAAA,MAAA,GAAW,OAAO,CAAC;QACzB,IAAK,CAAA,KAAA,GAAW,OAAO,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAW,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;QAQxD,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAE3B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QACjB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAM,CAAA,MAAA,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACxG,QAAA,IAAA,CAAA,IAAI,GAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAIlE,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;KAEa;IAEnC,QAAQ,GAAA;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,UAAU,CAAC,MAAK;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;SAChB,EAAE,CAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;KACzB;AAEM,IAAA,OAAO,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAEM,QAAQ,GAAA;QACd,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;KACnB;IAEM,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC1B;AAEM,IAAA,QAAQ,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrE,IAAI,CAAC,WAAW,EAAE,CAAC;KACnB;IAEM,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC1B;IAEM,OAAO,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACjG,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7G,IAAI,CAAC,WAAW,EAAE,CAAC;SACnB;KACD;AAEM,IAAA,SAAS,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAE9B,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;SACf;AAAM,aAAA,IACN,KAAK,CAAC,GAAG,KAAK,WAAW;eACtB,KAAK,CAAC,GAAG,KAAK,KAAK;eACnB,KAAK,CAAC,GAAG,KAAK,WAAW;eACzB,KAAK,CAAC,GAAG,KAAK,YAAY;eAC1B,KAAK,CAAC,GAAG,KAAK,MAAM;AACpB,eAAA,KAAK,CAAC,GAAG,KAAK,SAAS,EACzB;;SAED;aAAM;YACN,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;gBACnF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AACzB,uBAAA,IAAI,CAAC,MAAM,IAAI,CAAC,EAClB;oBACD,KAAK,CAAC,cAAc,EAAE,CAAC;iBACvB;aACD;SACD;KACD;AAED;;AAE2E;IACnE,WAAW,GAAA;AAClB,QAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AAErF,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAE9B,QAAA,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;QACvE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAEtC,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,UAAU,GAAY,KAAK,CAAC;QAEhC,IAAI,OAAO,GAAG,CAAC;AAAE,YAAA,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,KAAK,KAAK,GAAG,CAAC,CAAC;AAAE,YAAA,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAE3D,IAAI,OAAO,GAAQ,CAAC,CAAC;AAErB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAElB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC/B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3B,gBAAA,IAAI,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAErC,IAAI,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE;AAC/B,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC;iBACxC;qBAAM;AACN,oBAAA,IAAI,OAAO,IAAI,SAAS,EAAE;AACzB,wBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC,EAAE;4BACpJ,OAAO,GAAG,IAAI,CAAC;yBACf;6BAAM;4BACN,OAAO,GAAG,KAAK,CAAC;yBAChB;AAED,wBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;4BACnJ,UAAU,GAAG,IAAI,CAAC;yBAClB;6BAAM;4BACN,UAAU,GAAG,KAAK,CAAC;yBACnB;wBAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AAEtL,wBAAA,OAAO,EAAE,CAAC;qBACV;yBAAM;AACN,wBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC;qBACxC;iBACD;aACD;SACD;KACD;IAEO,YAAY,CAAC,IAAS,EAAE,KAAU,EAAA;AACzC,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;KAC1C;IAEO,QAAQ,GAAA;AACf,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;QAE3C,IAAI,OAAO,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxD;KACD;+GA/KW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,6YCT9B,m3EAyDA,EAAA,MAAA,EAAA,CAAA,43FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDhDa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACC,UAAU,EAAA,QAAA,EAAA,m3EAAA,EAAA,MAAA,EAAA,CAAA,43FAAA,CAAA,EAAA,CAAA;6EAMX,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAKgB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACE,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;MEZT,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAOI;;AAE2E;QACrE,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAM,CAAA,MAAA,GAAW,OAAO,CAAC;QACzB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAQ3B,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;QACjC,IAAS,CAAA,SAAA,GAAW,OAAO,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAW,OAAO,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAW,OAAO,CAAC;AAC7B,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAC5D,QAAA,IAAA,CAAA,kBAAkB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAS3D,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAEhC,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QACjB,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;AAgvBzB,KAAA;;;;IA3uBU,QAAQ,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAE3E,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC3B,gBAAA,KAAK,UAAU;oBACd,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE;AAAE,wBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;AAEtE,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACpE,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAE/C,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;oBAE1K,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;wBACpC,IAAI,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACzC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC9F,wBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAErC,wBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;qBACtD;oBAED,UAAU,CAAC,MAAK;AACf,wBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,4BAAA,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,CAAC,OAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC;yBACxE;AAED,wBAAA,IAAI,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;AACzE,4BAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;yBAC9B;qBACD,EAAE,CAAC,CAAC,CAAC;oBAEN,MAAM;AAEP,gBAAA,KAAK,OAAO;AACX,oBAAA,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;oBAC/B,MAAM;AAEP,gBAAA,KAAK,QAAQ;oBACZ,IAAI,IAAI,CAAC,OAAO;2BACZ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,2BAAA,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;2BAC7B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC7B;AACD,wBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;wBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;qBACrB;oBACD,MAAM;aACP;SACD;KACD;IAES,eAAe,GAAA;QACxB,UAAU,CAAC,MAAK;AACf,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;gBACvE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,IAAI,IAAI,CAAC;aAC7F;SACD,EAAE,GAAG,CAAC,CAAC;KACR;;;;AAKS,IAAA,SAAS,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAEhC,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACjD;SACD;AAAM,aAAA,IACN,KAAK,CAAC,GAAG,KAAK,WAAW;eACtB,KAAK,CAAC,GAAG,KAAK,KAAK;eACnB,KAAK,CAAC,GAAG,KAAK,WAAW;eACzB,KAAK,CAAC,GAAG,KAAK,YAAY;eAC1B,KAAK,CAAC,GAAG,KAAK,MAAM;AACpB,eAAA,KAAK,CAAC,GAAG,KAAK,SAAS,EACzB;;SAED;aAAM;YACN,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;AACnF,gBAAA,QAAQ,IAAI,CAAC,eAAe;AAC3B,oBAAA,KAAK,OAAO;wBACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;4BACjC,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,SAAS;wBACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;4BAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,cAAc;wBAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;4BACpC,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,SAAS,CAAC;AACf,oBAAA,KAAK,UAAU;wBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;AAC3B,gCAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCACxC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAClF;4BACD,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAE7C,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;4BAChG,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,UAAU;wBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;+BACzB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,MAAM,EACvF;4BACD,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,OAAO;wBACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;AACrC,gCAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzC,gCAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AAC1C,gCAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,EAC5C;4BACD,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEzC,wBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;+BAClB,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM;+BAC/C,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EACnC;4BACD,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,UAAU;wBACd,IAAI,KAAK,GAAG,8DAA8D,CAAC;AAC3E,wBAAA,IAAI,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AAE/B,wBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;4BACtC,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,WAAW;wBACf,IAAI,MAAM,GAAG,4EAA4E,CAAC;AAC1F,wBAAA,IAAI,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AAEhC,wBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;4BACxC,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,MAAM;AAEP,oBAAA,KAAK,QAAQ;wBACZ,IAAI,IAAI,CAAC,OAAO;+BACZ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,+BAAA,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7B,+BAAA,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gCAC1B,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EACpE;4BACD,KAAK,CAAC,cAAc,EAAE,CAAC;yBACvB;wBAED,IAAI,IAAI,CAAC,OAAO;AACZ,+BAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;+BAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC5B;AACD,4BAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE;gCACpD,KAAK,CAAC,cAAc,EAAE,CAAC;6BACvB;yBACD;wBAED,IAAI,IAAI,CAAC,OAAO;AACZ,+BAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;+BAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC5B;AACD,4BAAA,IAAI,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AAE/B,4BAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;gCAC7C,KAAK,CAAC,cAAc,EAAE,CAAC;6BACvB;yBACD;wBAED,MAAM;AAEP,oBAAA;wBACC,MAAM;iBACP;aACD;SACD;KACD;AAES,IAAA,MAAM,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAE9B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;AAChD,YAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAE7B,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SAC1B;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAE3E,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC3B,gBAAA,KAAK,UAAU;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACvB,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;qBAC1B;oBAED,MAAM;aACP;SACD;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC5D;KACD;AAES,IAAA,OAAO,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;AAClC,eAAA,IAAI,CAAC,eAAe,KAAK,UAAU,EACrC;AACD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC3B;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC5B;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACzB;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACxB;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,WAAW,EAAE;AACzC,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACzB;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC1B;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC9D;KACD;AAES,IAAA,KAAK,CAAC,KAAU,EAAA;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACvF,QAAA,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEnF,QAAA,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;QAEhC,IAAI,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;QAC7E,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;KAC5C;AAES,IAAA,OAAO,CAAC,KAAU,EAAA;QAC3B,IAAI,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;QAC7E,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACvF,QAAA,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEnF,QAAA,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;QAEnC,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IACC,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;eAC7F,IAAI,CAAC,eAAe,KAAK,UAAU;AACnC,eAAA,IAAI,CAAC,eAAe,KAAK,WAAW,EACtC;AACD,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;SACxB;aAAM;AACN,YAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAE5B,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SAC1B;AAED,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC9D;KACD;AAES,IAAA,aAAa,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAE3E,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC3B,gBAAA,KAAK,UAAU;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,SAAU,CAAC,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;wBAC1E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AACnD,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;qBACzB;oBAED,MAAM;aACP;SACD;KACD;AAES,IAAA,OAAO,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEvD,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC9D;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC1B;;;;AAKO,IAAA,cAAc,CAAC,KAAU,EAAA;AAChC,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACnD,QAAA,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAEzE,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEhD,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACpE;AAED,QAAA,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,GAAG,WAAW,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC;AAEpD,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,QAAA,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;AACrC,QAAA,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;KACnC;AAEO,IAAA,eAAe,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAEjD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE;AAED,QAAA,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,GAAG,WAAW,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC;AAEpD,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,QAAA,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;AACrC,QAAA,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;KACnC;AAEO,IAAA,YAAY,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAE7D,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE5C,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;SACzG;aAAM;YACN,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnC;QAED,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEpC,QAAA,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,GAAG,WAAW,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC;AAEpD,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,QAAA,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;AACrC,QAAA,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;KACnC;AAEO,IAAA,WAAW,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,EAAE,CAAC;SACd;AACD,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,GAAG,EAAE,CAAC;SACb;AAED,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;KAC7B;AAEO,IAAA,YAAY,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACxB,OAAO,GAAG,CAAC,GAAG,CAAC;SACf;AACD,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;YACvB,OAAO,GAAG,GAAG,CAAC;SACd;AAED,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;KAC7B;AAEO,IAAA,aAAa,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;QAC9C,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,IAAI,IAAI,KAAK,KAAK;YAAE,IAAI,GAAG,EAAE,CAAC;AAC9B,QAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAEjD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE;AAED,QAAA,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,MAAM,GAAG,WAAW,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC;AAEpD,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,QAAA,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;AACrC,QAAA,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;KACnC;AAEO,IAAA,eAAe,CAAC,KAAU,EAAA;QACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvF,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAEvF,OAAO,QAAQ,GAAG,SAAS,CAAC;KAC5B;AAEO,IAAA,SAAS,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACrD,YAAA,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnE,YAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5D;aAAM;AACN,YAAA,QAAQ,IAAI,CAAC,eAAe;AAC3B,gBAAA,KAAK,OAAO;AACX,oBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;oBACjD,MAAM;AAEP,gBAAA,KAAK,SAAS;AACb,oBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC9C,MAAM;AAEP,gBAAA,KAAK,cAAc;AAClB,oBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;oBACpD,MAAM;AAEP,gBAAA,KAAK,SAAS,CAAC;AACf,gBAAA,KAAK,UAAU;AACd,oBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;oBACtE,MAAM;AAEP,gBAAA,KAAK,UAAU;AACd,oBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,wBAAA,IAAI,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AAE3H,wBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;qBACxD;oBACD,MAAM;AAEP,gBAAA,KAAK,OAAO;AACX,oBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;oBAE1D,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEzC,oBAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,wBAAA,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEnD,wBAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,4BAAA,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrD,4BAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;4BAEjD,WAAW,CAAC,GAAG,EAAE,CAAC;AAClB,4BAAA,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;yBAC7D;qBACD;oBAED,MAAM;AAEP,gBAAA,KAAK,UAAU,CAAC;AAChB,gBAAA,KAAK,WAAW;oBACf,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AAClC,oBAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;oBAE1D,MAAM;AAEP,gBAAA,KAAK,QAAQ;AACZ,oBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,wBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnG,4BAAA,IAAI,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;4BAC/F,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACzE,4BAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;yBAC9C;AAED,wBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC/D,4BAAA,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;4BAEzC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gCAClC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;6BACrC;AAED,4BAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;yBACxD;AAED,wBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;4BAC/D,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AAClC,4BAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;yBAC1D;qBACD;oBAED,MAAM;AAEP,gBAAA;oBACC,MAAM;aACP;SACD;AAED,QAAA,OAAO,IAAI,CAAC;KACZ;AAEO,IAAA,UAAU,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE;AACxC,YAAA,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;SAC1E;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,IAAI,IAAI,CAAC,eAAe,KAAK,WAAW,EAAE;;SAE5H;AAAM,aAAA,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU,EAAE;YAC/C,MAAM,QAAQ,GAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEpD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAE9F,YAAA,IAAI;AACH,gBAAA,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;aACpD;AAAC,YAAA,MAAM;gBACP,UAAU,CAAC,MAAK;oBACf,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,oBAAoB,CAAC;AACtE,oBAAA,IAAI,CAAC,IAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBACjC,EAAE,CAAC,CAAC,CAAC;aACN;SACD;aAAM;AACN,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,gBAAA,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACjE;SACD;AAED,QAAA,OAAO,IAAI,CAAC;KACZ;IAEO,aAAa,CAAC,UAAkB,EAAE,EAAA;AACzC,QAAA,IAAI,OAAO,KAAK,EAAE,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACrC;QACD,IAAI,EAAE,GAAQ,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAEjD,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,OAAO,GAAG,EAAE,CAAC;AAEjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClB,gBAAA,SAAS,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;AACvB,gBAAA,GAAG,EAAE,CAAC;aACN;iBAAM;AACN,gBAAA,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACnB;AAED,YAAA,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhB,YAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACtF,gBAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO,GAAG,EAAE,CAAC;aACb;SACD;QAED,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,KAAK,GAAG,EAAE,CAAC;AAEf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACvB,KAAK,IAAI,GAAG,CAAC;aACb;iBAAM;AACN,gBAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AACjB,oBAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACtB;gBACD,KAAK,GAAG,EAAE,CAAC;aACX;SACD;;AAGD,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AACjB,YAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;QAED,IAAI,YAAY,GAAG,EAAE,CAAC;AAEtB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,YAAY,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAG,CAAA,CAAA,CAAC,CAAC;SACrD;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,GAAG,EAAE,CAAC;AAEX,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,YAAA,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAE9C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;AAAE,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvD,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;AAAE,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEvD,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;;AAG3B,gBAAA,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzC,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;qBAClD;yBAAM;wBACN,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBACtI;iBACD;AACD,gBAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;qBAClD;yBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACzB,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrG;yBAAM;wBACN,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBACtI;iBACD;AACD,gBAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC1C,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;qBAClD;yBAAM;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrG;iBACD;AACD,gBAAA,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC1C,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;qBAClD;yBAAM;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrG;iBACD;;AAGD,gBAAA,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzC,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACpB;yBAAM;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC5C;iBACD;AACD,gBAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC3C,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;qBAC5C;yBAAM;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC5C;iBACD;AACD,gBAAA,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC1C,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACpB;yBAAM;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC5C;iBACD;AACD,gBAAA,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC1C,oBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACZ,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;qBAC5C;yBAAM;AACN,wBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC5C;iBACD;aACD;SACD;KACD;AAEO,IAAA,UAAU,CAAC,IAAS,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACzE;+GApxBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,k0BCThC,m9DAUA,EAAA,MAAA,EAAA,CAAA,2bAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACC,aAAa,EAAA,QAAA,EAAA,m9DAAA,EAAA,MAAA,EAAA,CAAA,2bAAA,CAAA,EAAA,CAAA;8BASd,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAKiB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACH,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBACM,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;MEdT,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAhBzB,mBAAmB;YACnB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAGjB,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AASV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAPhB,SAAA,EAAA;YACT,QAAQ;AACT,SAAA,EAAA,OAAA,EAAA,CAPC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAYH,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,QAAQ;AACT,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;ACxBD;;AAEG;;ACFH;;AAEG;;;;"}